diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 50324f8925..bec6b43664 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,19 @@ KiCad ChangeLog 2011 Please add newer entries at the top, list the date and your name with email address. +2011-Dec-19, UPDATE Jean-Pierre Charras +================================================================================ +Pcbnew: + Enhanced algorithms to calculate board connections: + - A track is seen connected to a pad if the track end is inside the pad shape. + - Pads inside pads are now seen connected, if the center of the pad is + *inside* the other pad. + (this is made to be sure a large copper area is shared by the 2 pads, + and to keep algorithm fast). + Algorithm to calculate pads connections is still very fast. + However some other functions (drag pads, track len calculation ...) + still need the track end exactly on the pad position. + 2011-Dec-13 UPDATE Dick Hollenbeck ================================================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7050345b08..f91ae3b14a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,7 +78,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) # Set default flags for Release build. set(CMAKE_C_FLAGS_RELEASE "-Wall -O2 -DNDEBUG ") set(CMAKE_CXX_FLAGS_RELEASE "-Wall -O2 -DNDEBUG") - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-s -static-libgcc") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-s") # Set default flags for Debug build. set(CMAKE_C_FLAGS_DEBUG "-Wall -g3 -ggdb3 -DDEBUG") diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index c0d635f7eb..a45974ff95 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -156,6 +156,7 @@ set( BMAPS_MID browse_files cancel_tool cancel + change_entry_orient create_cmp_file checked_ok component_select_unit @@ -239,9 +240,10 @@ set( BMAPS_MID gbr_select_mode2 gerber_file gerber_recent_files + gerber_open_dcode_file gerbview_drill_file gerbview_clear_layers - gerber_open_dcode_file + gerbview_open_recent_drill_files general_deletions general_ratsnest glabel2label @@ -478,6 +480,7 @@ set( BMAPS_MID unzip update_module_board up + via via_sketch warning web_support diff --git a/bitmaps_png/cpp_26/change_entry_orient.cpp b/bitmaps_png/cpp_26/change_entry_orient.cpp new file mode 100644 index 0000000000..fe2cfba4fa --- /dev/null +++ b/bitmaps_png/cpp_26/change_entry_orient.cpp @@ -0,0 +1,85 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include "bitmaps.h" + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, + 0xce, 0x00, 0x00, 0x04, 0x45, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xad, 0xd6, 0xdb, 0x53, 0x1b, + 0x55, 0x1c, 0x07, 0xf0, 0x85, 0x96, 0x4d, 0x68, 0x02, 0x09, 0xe5, 0x52, 0xeb, 0x40, 0x99, 0xa9, + 0xd5, 0xb1, 0x40, 0x8a, 0x34, 0x85, 0xbd, 0xe4, 0x0a, 0x41, 0xd2, 0x4d, 0xc8, 0x86, 0x6c, 0xd8, + 0x92, 0x0b, 0x24, 0x54, 0xa0, 0x1d, 0x4a, 0x01, 0xdb, 0xa0, 0x63, 0x7d, 0x70, 0x3a, 0xe8, 0x8c, + 0x4f, 0x3e, 0xb5, 0x33, 0xb6, 0x85, 0x04, 0x8b, 0x15, 0x5a, 0x15, 0x98, 0x04, 0x9c, 0x0e, 0xa3, + 0x96, 0x7b, 0x47, 0x2c, 0x84, 0x4a, 0x8d, 0xd3, 0x07, 0x7d, 0xf2, 0x45, 0xeb, 0x1f, 0x11, 0xcf, + 0x59, 0x58, 0xd8, 0x8d, 0x09, 0x05, 0xc6, 0x87, 0xef, 0xcb, 0xee, 0x2f, 0xfb, 0xc9, 0xd9, 0xf3, + 0x3b, 0xe7, 0x2c, 0x72, 0x35, 0x2a, 0xa1, 0x41, 0xe6, 0xdf, 0x5d, 0xce, 0xfc, 0x50, 0xdf, 0x6a, + 0x57, 0x91, 0x2d, 0x8e, 0x32, 0x8c, 0xa2, 0xb2, 0xe3, 0xf1, 0x38, 0xb2, 0xdf, 0x20, 0xc8, 0xf5, + 0xf4, 0x83, 0xc4, 0x94, 0x19, 0xc5, 0x27, 0x9b, 0x10, 0x72, 0xba, 0x80, 0xbb, 0x16, 0x88, 0xa2, + 0xbf, 0x83, 0xc4, 0x61, 0x2e, 0x3f, 0x52, 0x3e, 0x24, 0xfc, 0xf5, 0x35, 0x98, 0xdb, 0xa1, 0x55, + 0xb3, 0xb5, 0x8a, 0xfd, 0x21, 0xf1, 0xb4, 0x0c, 0x62, 0xd2, 0x07, 0x72, 0x83, 0x0b, 0x1e, 0xee, + 0xe4, 0xae, 0x83, 0xd1, 0x2c, 0xf2, 0x10, 0x87, 0xcd, 0x28, 0xa7, 0x71, 0x9f, 0xd5, 0x04, 0xb1, + 0xb7, 0x1a, 0x8c, 0xca, 0x3d, 0x23, 0x64, 0xa4, 0x05, 0xe4, 0x26, 0x4a, 0x4e, 0xdc, 0x92, 0x90, + 0x13, 0xb7, 0xa5, 0xf8, 0xb8, 0x87, 0xbb, 0xf7, 0xde, 0xcf, 0xb2, 0x57, 0xfa, 0xa2, 0xe8, 0x6f, + 0x22, 0x6c, 0x56, 0xf1, 0x3d, 0xd6, 0x62, 0xa9, 0xdd, 0x0b, 0x06, 0x11, 0x94, 0x0c, 0x37, 0x67, + 0x10, 0x91, 0x9b, 0x52, 0xcd, 0xb7, 0x83, 0x72, 0xdd, 0xc8, 0xfd, 0x6c, 0xfd, 0xd0, 0xe7, 0x27, + 0x6d, 0x17, 0x4a, 0x4a, 0xd9, 0x52, 0x94, 0x2b, 0xea, 0x7d, 0x26, 0x3b, 0x02, 0x80, 0x98, 0x10, + 0xeb, 0x9a, 0x51, 0xfc, 0x20, 0xc4, 0xc0, 0x93, 0xd2, 0x52, 0x23, 0x48, 0x1a, 0x98, 0x0f, 0x2f, + 0x40, 0x6e, 0x48, 0x35, 0x63, 0x10, 0x79, 0xa0, 0x34, 0x0e, 0x84, 0xca, 0xcf, 0xb5, 0xd8, 0xf0, + 0x26, 0xc7, 0x49, 0x82, 0x65, 0x33, 0xb7, 0x8a, 0xfb, 0x7e, 0x91, 0x17, 0x00, 0xe0, 0x57, 0x11, + 0x36, 0xab, 0x78, 0xc4, 0x63, 0x2a, 0xab, 0x36, 0x27, 0x19, 0xb6, 0x81, 0x84, 0x13, 0x90, 0x60, + 0xe8, 0x54, 0xe3, 0x79, 0x1a, 0xf3, 0x32, 0xb8, 0x8e, 0x61, 0x8e, 0xb2, 0x2c, 0x7b, 0x40, 0xf4, + 0xa3, 0xee, 0x28, 0x92, 0x1f, 0x58, 0x45, 0x9f, 0x89, 0x5e, 0xe3, 0x5c, 0xf6, 0x0c, 0xe9, 0xa7, + 0xde, 0xd6, 0xb8, 0xec, 0x3a, 0x95, 0xd5, 0x2a, 0xc2, 0x38, 0x84, 0x88, 0xb8, 0x37, 0x10, 0xf8, + 0xba, 0xbe, 0x7a, 0xa0, 0xac, 0x1e, 0x04, 0x88, 0x8f, 0x26, 0xdd, 0x0e, 0xa2, 0xd2, 0x65, 0x2f, + 0x2a, 0x65, 0x59, 0x94, 0xab, 0x4d, 0xfc, 0x87, 0x81, 0x15, 0x24, 0x0f, 0x00, 0xeb, 0x09, 0xd8, + 0x1c, 0x8f, 0x95, 0x9a, 0xcd, 0x87, 0x21, 0xc0, 0x21, 0xe4, 0x94, 0x6b, 0x73, 0x24, 0x03, 0x72, + 0xfd, 0xc8, 0x7d, 0x65, 0x75, 0x70, 0x13, 0xa9, 0x27, 0xd4, 0xac, 0xed, 0x18, 0x8f, 0x24, 0x85, + 0x04, 0xd8, 0x53, 0x11, 0x36, 0x9f, 0x3d, 0x4f, 0x9c, 0x37, 0xd7, 0x41, 0xec, 0x4d, 0x93, 0x29, + 0x17, 0xc5, 0x26, 0x36, 0x10, 0x12, 0x20, 0xba, 0x51, 0x0e, 0x51, 0x39, 0x5b, 0xed, 0xc9, 0x90, + 0x94, 0x10, 0xcc, 0xb5, 0x65, 0x24, 0x17, 0x00, 0x6b, 0x42, 0xac, 0x7b, 0x2e, 0x6b, 0x11, 0x62, + 0xc5, 0xe6, 0xfe, 0x8f, 0x64, 0xda, 0x7b, 0x03, 0x52, 0xe2, 0x9b, 0x41, 0x88, 0x28, 0x8c, 0xc1, + 0x21, 0x15, 0xdb, 0x6a, 0x27, 0x9a, 0xed, 0x64, 0x05, 0x63, 0x29, 0x86, 0x5d, 0xf6, 0x9f, 0xb9, + 0xdc, 0xa9, 0x65, 0xaf, 0xc4, 0x90, 0xc3, 0x60, 0xce, 0xa2, 0x42, 0xac, 0xed, 0xbb, 0xc2, 0xe7, + 0x85, 0x96, 0x4f, 0xc3, 0x47, 0xeb, 0x3e, 0x9b, 0xcc, 0x31, 0x0c, 0x8e, 0x2b, 0x0c, 0x03, 0x5f, + 0xc0, 0x91, 0x70, 0x88, 0xc7, 0x52, 0x7c, 0x82, 0xa2, 0x24, 0x49, 0x3b, 0xf3, 0x65, 0xeb, 0xe3, + 0x83, 0x75, 0x24, 0xe7, 0x6a, 0x14, 0x5d, 0x15, 0x62, 0xbe, 0xf1, 0xd7, 0xff, 0x3e, 0x66, 0xfd, + 0x64, 0xae, 0x88, 0xea, 0x7f, 0x58, 0xce, 0xb8, 0x5b, 0x30, 0x77, 0xbd, 0x76, 0x27, 0x64, 0x57, + 0x10, 0x8f, 0x75, 0x2d, 0xe4, 0xfe, 0x21, 0xc4, 0xfc, 0x13, 0xc7, 0x5f, 0x9c, 0x69, 0x66, 0xfa, + 0x09, 0x2f, 0xdd, 0x75, 0xba, 0xb1, 0xae, 0xa2, 0x90, 0x20, 0x32, 0x77, 0x5c, 0xd0, 0xbb, 0x81, + 0x50, 0x7c, 0x8a, 0x51, 0x52, 0x43, 0x77, 0xda, 0xa7, 0x8b, 0x5e, 0x08, 0xb1, 0x4b, 0x3f, 0x2a, + 0x63, 0x9a, 0xb6, 0x3a, 0x3f, 0xee, 0xa6, 0x4d, 0x6a, 0x9b, 0x2d, 0x0f, 0x74, 0x62, 0xfa, 0xbe, + 0x21, 0x94, 0x98, 0x74, 0xc0, 0xcd, 0x11, 0xb6, 0x70, 0x3e, 0x75, 0x6b, 0xac, 0x63, 0xba, 0xf0, + 0x1f, 0x51, 0x83, 0x2c, 0xc8, 0x57, 0xf4, 0xed, 0xb5, 0x67, 0x49, 0x0f, 0xad, 0xaf, 0xa0, 0xa8, + 0xfc, 0x54, 0xd8, 0xcb, 0x90, 0x06, 0x1e, 0x91, 0xe9, 0x46, 0x46, 0xb3, 0x8d, 0xa1, 0xbb, 0x78, + 0xa7, 0xd3, 0xdb, 0xfb, 0x93, 0x2c, 0x96, 0x80, 0x3d, 0xd9, 0xc2, 0xd8, 0xe4, 0x58, 0x6a, 0x84, + 0x8c, 0xd8, 0x85, 0x08, 0x58, 0x27, 0x77, 0xcb, 0xd8, 0x36, 0x07, 0xee, 0x65, 0x34, 0xe6, 0x6b, + 0x95, 0xaa, 0xc0, 0xaa, 0x64, 0x59, 0x84, 0x2d, 0xca, 0x57, 0x75, 0x17, 0x4d, 0x14, 0xc4, 0x4e, + 0x39, 0xea, 0x0a, 0x12, 0xb1, 0xa4, 0x88, 0x04, 0x0f, 0xd3, 0x1c, 0x42, 0xf2, 0x48, 0x68, 0x98, + 0x47, 0x2a, 0x9d, 0xd6, 0xe3, 0x46, 0xa3, 0x51, 0xfa, 0xfe, 0x73, 0x24, 0x0b, 0x00, 0x4b, 0x42, + 0xac, 0x67, 0x49, 0x16, 0x35, 0x76, 0x26, 0xc7, 0x92, 0x20, 0x93, 0x36, 0x88, 0x48, 0xc8, 0xb1, + 0x3b, 0x1c, 0x62, 0x0c, 0x0e, 0x97, 0x36, 0xbe, 0xc3, 0xe0, 0x7e, 0x80, 0x78, 0x36, 0x10, 0xbe, + 0x16, 0x62, 0x89, 0xe7, 0x59, 0xcf, 0xa2, 0x6c, 0x0d, 0x62, 0x84, 0xdb, 0x61, 0x28, 0xa3, 0x4d, + 0x47, 0x78, 0x4c, 0x84, 0x1c, 0x20, 0x22, 0xf5, 0x62, 0x24, 0x04, 0x90, 0x0e, 0x06, 0xf3, 0x81, + 0x13, 0xb7, 0x89, 0x7a, 0xcd, 0xd8, 0xba, 0x8d, 0xf0, 0xb9, 0x14, 0x43, 0xe4, 0x81, 0x35, 0xc9, + 0x82, 0x10, 0xeb, 0x5d, 0x92, 0x3f, 0x35, 0x74, 0xd5, 0x58, 0x20, 0x86, 0x6d, 0x62, 0xdb, 0x08, + 0x19, 0xb6, 0x0a, 0x11, 0x85, 0x21, 0x34, 0x5c, 0xe2, 0x6c, 0x77, 0xf2, 0x08, 0xc1, 0xa6, 0x5e, + 0x27, 0x1c, 0x16, 0x95, 0xcc, 0x89, 0x46, 0xf6, 0x58, 0xbe, 0xae, 0xef, 0xae, 0xb6, 0x6e, 0x61, + 0xb0, 0xf0, 0x20, 0x16, 0xae, 0xde, 0x40, 0xc6, 0x01, 0x32, 0x3a, 0xc2, 0x21, 0xcc, 0x85, 0xc6, + 0xdd, 0x20, 0xdb, 0xe7, 0x19, 0x22, 0xeb, 0x8b, 0x4a, 0x66, 0x45, 0x0d, 0x32, 0x9f, 0xf5, 0xb8, + 0xca, 0x6d, 0xab, 0xc1, 0xcf, 0xd1, 0x9a, 0xcd, 0x05, 0x19, 0xf9, 0x58, 0xba, 0x85, 0x04, 0xbf, + 0xdc, 0x2b, 0xc2, 0xe7, 0xfa, 0x0a, 0x72, 0x28, 0x10, 0xcd, 0x98, 0xe1, 0xa1, 0x2b, 0x4f, 0xa4, + 0x7f, 0x61, 0x1e, 0xba, 0x9a, 0x60, 0x1b, 0xaa, 0xb8, 0x02, 0xa9, 0xf6, 0xeb, 0x0e, 0x0e, 0x01, + 0x73, 0x52, 0xd2, 0x74, 0xd1, 0xb9, 0x1f, 0x44, 0x88, 0x81, 0x06, 0x19, 0x04, 0xd0, 0x9f, 0x3d, + 0xcb, 0xd2, 0xcb, 0x1a, 0x17, 0xfd, 0x2a, 0xdc, 0x03, 0xe1, 0x29, 0x99, 0x8e, 0x79, 0xbd, 0x85, + 0x6f, 0x34, 0x74, 0xd9, 0xcb, 0x5d, 0x6e, 0xba, 0x0a, 0x9c, 0x37, 0xa7, 0x59, 0xf3, 0x89, 0xfd, + 0x20, 0xa9, 0xbe, 0x27, 0xb6, 0xba, 0x4e, 0xed, 0xb6, 0xe5, 0x01, 0xf9, 0x0c, 0xdc, 0xea, 0x21, + 0xa2, 0xb6, 0xa9, 0x0f, 0xfd, 0x1f, 0x88, 0x30, 0xff, 0x02, 0x94, 0x7c, 0x89, 0xd7, 0x2c, 0xef, + 0xcc, 0x31, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, +}; + +const BITMAP_OPAQUE change_entry_orient_xpm[1] = {{ png, sizeof( png ), "change_entry_orient_xpm" }}; + +//EOF diff --git a/bitmaps_png/cpp_26/gerbview_open_recent_drill_files.cpp b/bitmaps_png/cpp_26/gerbview_open_recent_drill_files.cpp new file mode 100644 index 0000000000..f74bb15a78 --- /dev/null +++ b/bitmaps_png/cpp_26/gerbview_open_recent_drill_files.cpp @@ -0,0 +1,117 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include "bitmaps.h" + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, + 0xce, 0x00, 0x00, 0x06, 0x3d, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x95, 0x5b, 0x6c, 0x5c, + 0x57, 0x15, 0x86, 0xbf, 0x7d, 0x2e, 0x73, 0xf7, 0xdc, 0xc7, 0x63, 0x4f, 0x6c, 0xc7, 0x8e, 0xc7, + 0x26, 0x69, 0x94, 0xc8, 0xce, 0x45, 0x6d, 0xa2, 0xb6, 0x0a, 0x69, 0xa9, 0xd2, 0x50, 0x68, 0xa9, + 0x10, 0x0f, 0x40, 0x44, 0x48, 0x51, 0x5f, 0x2a, 0x50, 0x8b, 0x92, 0x20, 0x21, 0x01, 0x85, 0x20, + 0xae, 0x0d, 0x2d, 0x14, 0xa4, 0x4a, 0x14, 0x8a, 0x88, 0x04, 0x0f, 0x3c, 0x34, 0xa0, 0xa6, 0xa5, + 0x4a, 0x1e, 0x48, 0xd2, 0x38, 0x24, 0x52, 0xa0, 0xbe, 0x94, 0xb8, 0x71, 0x6c, 0xc7, 0x63, 0x37, + 0x8e, 0x9d, 0xf1, 0x6d, 0xe6, 0xcc, 0xe5, 0x9c, 0x33, 0xe7, 0x6c, 0x1e, 0x32, 0x51, 0xac, 0x92, + 0x38, 0x61, 0x4b, 0x4b, 0xfb, 0x69, 0xe9, 0xdb, 0x7b, 0xfd, 0xff, 0x5a, 0x4b, 0x48, 0x29, 0xb9, + 0xd7, 0xf3, 0xef, 0x3d, 0x42, 0x0d, 0x35, 0x26, 0xbf, 0x17, 0xea, 0xec, 0xd9, 0xa9, 0x37, 0xc4, + 0xdb, 0xfc, 0x21, 0x3d, 0xad, 0x07, 0x74, 0x8f, 0x5d, 0xad, 0xd5, 0xaa, 0x25, 0x3b, 0x5f, 0xab, + 0x54, 0x66, 0xcb, 0x93, 0xc3, 0xc3, 0x8b, 0xa3, 0x97, 0x9e, 0xeb, 0x3d, 0x22, 0xf3, 0xcb, 0x73, + 0xc5, 0xbd, 0x82, 0x06, 0x9e, 0xd1, 0xbb, 0xa2, 0x5d, 0x1b, 0x8e, 0xa4, 0x37, 0x6d, 0xdd, 0xa2, + 0x96, 0xc7, 0x55, 0xb7, 0x90, 0xc7, 0x98, 0x2f, 0x59, 0xc5, 0xb2, 0xb4, 0x82, 0x7e, 0xa1, 0x87, + 0xa2, 0x5e, 0xaf, 0x16, 0x8a, 0x22, 0x1b, 0xda, 0x59, 0xf8, 0x68, 0x31, 0x37, 0x3f, 0x70, 0xf2, + 0xd0, 0xda, 0x5f, 0x2e, 0xbd, 0xfe, 0x7f, 0x81, 0x2e, 0xbd, 0x10, 0xdf, 0x17, 0xdf, 0xfc, 0xa9, + 0x43, 0xb1, 0x38, 0x99, 0xd2, 0x95, 0x41, 0x6b, 0x22, 0xef, 0x37, 0x8d, 0x50, 0x56, 0x37, 0x3b, + 0x1e, 0xf1, 0xa9, 0xcd, 0xdd, 0xc8, 0xf9, 0x49, 0x94, 0xdc, 0xd9, 0x9a, 0x7f, 0xee, 0x83, 0x6a, + 0x46, 0x9f, 0x26, 0xd5, 0xd9, 0x1a, 0x32, 0x3d, 0x1d, 0x95, 0xd9, 0x0b, 0xa7, 0xff, 0xde, 0xf1, + 0xe2, 0x87, 0x4f, 0xdf, 0x13, 0x68, 0xf0, 0x6b, 0x9e, 0x35, 0x99, 0x4f, 0x3e, 0x75, 0x5a, 0x51, + 0xe6, 0x33, 0xc6, 0x95, 0x5c, 0x31, 0xd7, 0xf0, 0x90, 0x98, 0x6e, 0xd9, 0x15, 0x6a, 0x6f, 0x5d, + 0x4d, 0x24, 0x1a, 0xe6, 0xd4, 0x7b, 0x7d, 0x3c, 0xfc, 0xf0, 0x76, 0xa4, 0xeb, 0x62, 0x5a, 0x26, + 0x0b, 0x1f, 0x9c, 0xaa, 0x25, 0x07, 0x5e, 0xab, 0x74, 0x74, 0xf8, 0x42, 0xa2, 0x79, 0x8b, 0x93, + 0x3b, 0x7e, 0xf4, 0x07, 0xdd, 0x87, 0xaf, 0x1f, 0x52, 0xee, 0xa2, 0x89, 0x08, 0x67, 0xd7, 0xff, + 0x31, 0x1a, 0xd7, 0x32, 0x7f, 0xc9, 0x6d, 0x74, 0x4e, 0x26, 0x9f, 0x0d, 0x4e, 0xa6, 0x1f, 0x09, + 0x3d, 0xb0, 0xf5, 0x01, 0xb2, 0x9d, 0x5d, 0x08, 0xa1, 0x70, 0xfa, 0x74, 0x1f, 0x3e, 0x8f, 0x0f, + 0x8f, 0xc7, 0x47, 0xc0, 0x1f, 0x24, 0xdd, 0xf3, 0xa8, 0x66, 0x3c, 0xf9, 0xdb, 0x86, 0xd1, 0x9c, + 0x30, 0x54, 0x63, 0x44, 0x4b, 0x6c, 0xda, 0xf9, 0xdc, 0xd0, 0xb3, 0xbe, 0x4f, 0x68, 0x2b, 0x81, + 0x82, 0x8d, 0x89, 0x6f, 0xa7, 0x7b, 0xb6, 0xde, 0x5f, 0xcd, 0xf5, 0x39, 0xdb, 0x76, 0x3e, 0xa1, + 0xc4, 0x1a, 0xdb, 0x44, 0x30, 0x10, 0x44, 0x88, 0x3c, 0x43, 0xfd, 0xff, 0x20, 0x9b, 0xed, 0xc4, + 0x2a, 0x8f, 0x10, 0xf0, 0x5c, 0xc7, 0x72, 0x33, 0xd4, 0x1c, 0x05, 0x21, 0x04, 0xe1, 0x48, 0x8c, + 0xa5, 0x07, 0xbf, 0x15, 0x9c, 0xe9, 0xff, 0xb9, 0xd1, 0xbc, 0xb6, 0x29, 0x5d, 0xca, 0x6e, 0x78, + 0xe3, 0xb6, 0xa5, 0xdb, 0xb7, 0xf7, 0xab, 0x3b, 0xd2, 0x29, 0xfb, 0xf1, 0x1f, 0x3d, 0x3f, 0xb8, + 0xff, 0xec, 0x5b, 0x43, 0xca, 0xf6, 0xcf, 0xf6, 0x82, 0xde, 0x05, 0x42, 0x80, 0x74, 0x97, 0x7b, + 0x09, 0xa8, 0xe7, 0xd7, 0x26, 0x98, 0x67, 0x3f, 0x86, 0xb3, 0x09, 0xd3, 0x32, 0xb1, 0x2c, 0x13, + 0xe3, 0xf8, 0x4b, 0xe5, 0x9e, 0xd4, 0xd5, 0x40, 0x49, 0x36, 0x5d, 0x17, 0x52, 0x4a, 0x5e, 0xfa, + 0xd9, 0x2f, 0x5e, 0x2c, 0x9b, 0xa5, 0x87, 0x9e, 0xd8, 0xfd, 0xe9, 0x9d, 0xfe, 0x60, 0x80, 0xbe, + 0x33, 0x7d, 0x24, 0x62, 0x3e, 0x9e, 0xea, 0xdc, 0x03, 0x52, 0x82, 0x80, 0xf7, 0x2f, 0x4b, 0x16, + 0xcb, 0x70, 0x6e, 0x30, 0x82, 0xa6, 0x2a, 0xa8, 0xaa, 0x4a, 0x6f, 0x97, 0xc9, 0xba, 0xc6, 0x22, + 0x63, 0x39, 0x58, 0xdb, 0xad, 0x10, 0x5c, 0xb5, 0x9b, 0x99, 0x86, 0xdf, 0x60, 0x5a, 0x26, 0xa6, + 0x59, 0xa5, 0x3c, 0x3d, 0xc2, 0x9a, 0x91, 0x5f, 0x99, 0xfe, 0xa6, 0xd5, 0xba, 0x9a, 0x48, 0x24, + 0x9f, 0x54, 0x15, 0xf5, 0xb5, 0xb9, 0xfc, 0xf5, 0x8e, 0xa9, 0x5c, 0x8e, 0xb1, 0xd1, 0x11, 0x4e, + 0x1c, 0x3f, 0xce, 0x60, 0xff, 0x00, 0x9f, 0x5f, 0x77, 0x09, 0x59, 0x02, 0x69, 0xc0, 0x9f, 0x8e, + 0xc3, 0xf8, 0x65, 0xf8, 0xc3, 0x51, 0x8b, 0xf9, 0x99, 0x2a, 0xfd, 0x43, 0x65, 0xc2, 0x58, 0x74, + 0x87, 0x61, 0x70, 0x08, 0xce, 0xff, 0x47, 0xb2, 0xb5, 0x71, 0x94, 0x52, 0xd3, 0xf3, 0x38, 0x4e, + 0x0d, 0xc7, 0x75, 0x90, 0xde, 0x20, 0xda, 0xe8, 0xc9, 0x6a, 0xa4, 0xb1, 0xc1, 0xab, 0x1d, 0x7b, + 0xfb, 0xed, 0x13, 0xc0, 0xf7, 0x67, 0x66, 0xae, 0x6d, 0xf3, 0x79, 0x7c, 0x8f, 0x69, 0x1e, 0x0d, + 0xaf, 0xd7, 0xc7, 0xda, 0x6c, 0x3b, 0x63, 0xc3, 0xb7, 0x8a, 0xb4, 0x39, 0x02, 0xe5, 0x00, 0x5c, + 0xe9, 0xaa, 0x57, 0x2c, 0x22, 0xf0, 0x3b, 0x92, 0x4a, 0x11, 0x5a, 0x9b, 0x61, 0x5d, 0x14, 0xc6, + 0x3e, 0x04, 0xff, 0x46, 0x89, 0x94, 0xb7, 0xa2, 0x86, 0x2e, 0x85, 0x63, 0xde, 0xde, 0xde, 0xd9, + 0xae, 0xae, 0xaf, 0x37, 0x78, 0x9c, 0xfd, 0x2f, 0x6c, 0x1f, 0x6f, 0x03, 0x98, 0x5c, 0x80, 0xd6, + 0xd8, 0xca, 0xbd, 0x16, 0x8f, 0x6a, 0xbc, 0x35, 0xb9, 0x96, 0xf1, 0x52, 0x3b, 0xbd, 0x3d, 0x1b, + 0xf9, 0xf2, 0x97, 0xbe, 0x80, 0x69, 0x96, 0x69, 0x3a, 0xff, 0x13, 0x23, 0xbd, 0x2a, 0x18, 0xba, + 0x63, 0x1f, 0xfd, 0xee, 0x1b, 0x6b, 0x7c, 0x1b, 0x9a, 0x53, 0xa3, 0x91, 0x50, 0x35, 0x73, 0xfa, + 0xa2, 0xe9, 0x54, 0x96, 0xa6, 0xd4, 0x7f, 0x5e, 0x91, 0x04, 0x75, 0x49, 0x7b, 0x02, 0x34, 0x55, + 0xa2, 0xa9, 0x82, 0x29, 0x7d, 0x33, 0xf1, 0xec, 0x36, 0x1e, 0x7d, 0xfc, 0x69, 0x62, 0xb1, 0x08, + 0x9a, 0xa6, 0x62, 0xd9, 0x16, 0x96, 0x6d, 0x62, 0x4d, 0x0f, 0xd3, 0x3d, 0xfb, 0xa6, 0xa5, 0x69, + 0x8e, 0xb6, 0x62, 0xc3, 0x4e, 0xfd, 0xb4, 0xf7, 0x9d, 0xa6, 0xee, 0xd4, 0xae, 0xf1, 0x91, 0x62, + 0xe1, 0xe0, 0xd9, 0x44, 0x38, 0x6b, 0x1c, 0x23, 0x15, 0x06, 0xaf, 0x06, 0x5e, 0x1d, 0x02, 0xc1, + 0x00, 0x3b, 0xbe, 0x3b, 0x84, 0x94, 0xe0, 0xba, 0x0e, 0x8e, 0xe3, 0x60, 0xd7, 0xec, 0x1b, 0x61, + 0x5b, 0x28, 0xef, 0xfd, 0xba, 0xb4, 0x7e, 0x35, 0xc1, 0xc2, 0xb5, 0xd9, 0xe9, 0x15, 0x1b, 0xb6, + 0x7c, 0xed, 0xca, 0xbb, 0x96, 0x1b, 0xb0, 0x5a, 0x32, 0x6a, 0x68, 0x57, 0x4b, 0xb5, 0x9c, 0xd9, + 0xf4, 0x19, 0x32, 0x31, 0xc8, 0x24, 0x04, 0xab, 0xe2, 0xd0, 0x92, 0x70, 0xa9, 0x56, 0x4b, 0x98, + 0x66, 0xf5, 0x86, 0xd3, 0x2c, 0x13, 0xdb, 0xb6, 0xb0, 0x6d, 0x8b, 0xda, 0xcc, 0x88, 0xd3, 0x1a, + 0x71, 0x84, 0xe2, 0x16, 0x30, 0xa6, 0xc6, 0x2f, 0xae, 0x08, 0xea, 0x7e, 0x79, 0xe1, 0x95, 0x99, + 0xfe, 0x81, 0x53, 0x5a, 0x38, 0xac, 0x7c, 0x6e, 0xbd, 0xed, 0x6e, 0x7f, 0x70, 0x97, 0x1d, 0xdb, + 0xb2, 0x97, 0xa6, 0xa8, 0xa4, 0x35, 0x0e, 0xd9, 0x44, 0x15, 0x7d, 0x69, 0x88, 0xaa, 0x55, 0xc5, + 0xb4, 0xaa, 0x58, 0x75, 0x98, 0x55, 0x29, 0x92, 0xbc, 0xf8, 0xe7, 0x4a, 0x2c, 0x6a, 0x07, 0xe6, + 0x26, 0xe7, 0x72, 0x85, 0x89, 0xf1, 0x7d, 0xda, 0xdd, 0x06, 0x6a, 0x21, 0x37, 0xf1, 0x95, 0x7c, + 0x32, 0x79, 0x26, 0xd5, 0x1a, 0x69, 0x97, 0xd3, 0x47, 0x2b, 0xe5, 0xfc, 0x92, 0xdb, 0x9a, 0x89, + 0x7a, 0x15, 0x73, 0x11, 0x4d, 0x07, 0xd7, 0xad, 0x60, 0x9a, 0x55, 0xa4, 0x74, 0x71, 0x5d, 0x17, + 0xc6, 0xfa, 0xec, 0xcc, 0xfc, 0x59, 0xbb, 0x79, 0x4d, 0x24, 0x54, 0x29, 0xe6, 0xcd, 0xb9, 0xe1, + 0xc1, 0x57, 0x36, 0xfe, 0xde, 0x9e, 0x58, 0x11, 0x24, 0x84, 0x10, 0x40, 0xe1, 0x5d, 0x86, 0x7f, + 0x7c, 0x5f, 0x2d, 0xfb, 0x9d, 0x74, 0x47, 0xbc, 0x65, 0x5b, 0xa2, 0xd9, 0xcd, 0x8d, 0x5f, 0x20, + 0xe2, 0x05, 0x45, 0x05, 0xf7, 0xda, 0x09, 0x6c, 0xc7, 0xc0, 0xf3, 0xd1, 0x85, 0x5a, 0x83, 0xb3, + 0x64, 0x37, 0x37, 0x47, 0xd5, 0x50, 0x93, 0x13, 0x28, 0xcc, 0x4c, 0x16, 0x27, 0x06, 0x2f, 0xbd, + 0xb3, 0xe9, 0xd5, 0xc2, 0x1b, 0xbc, 0x2a, 0xf4, 0x15, 0xcd, 0x20, 0x84, 0x50, 0x80, 0x20, 0x10, + 0xdc, 0x73, 0x9f, 0x68, 0xff, 0xe6, 0x63, 0xe9, 0xc3, 0x1d, 0x3d, 0x9d, 0x5b, 0xca, 0x72, 0xd2, + 0xe3, 0xab, 0xe5, 0x10, 0x02, 0xbc, 0x6d, 0xbb, 0x70, 0x0a, 0x51, 0xd7, 0x1b, 0xd0, 0x14, 0xc5, + 0x29, 0x53, 0x2b, 0x2f, 0x90, 0xbb, 0x38, 0x35, 0x76, 0xae, 0x7f, 0xf2, 0xe5, 0x3d, 0x6f, 0x56, + 0x8f, 0x02, 0x65, 0xc0, 0xb8, 0xeb, 0x9a, 0xa8, 0xc3, 0x02, 0xf5, 0xf0, 0xfd, 0xf5, 0x8b, 0xc1, + 0xbd, 0xbd, 0x9b, 0x95, 0x67, 0xd2, 0xcd, 0xe5, 0x36, 0x21, 0x1c, 0xd4, 0x48, 0x96, 0x85, 0x89, + 0x48, 0xa5, 0xb0, 0x60, 0xe4, 0x2b, 0x65, 0x7b, 0x76, 0x31, 0xbf, 0x38, 0x7a, 0xf0, 0x6f, 0xf3, + 0x3f, 0x3c, 0x73, 0x95, 0x3c, 0x50, 0x01, 0xca, 0x52, 0x4a, 0xeb, 0xae, 0x1a, 0x49, 0x29, 0x5d, + 0xc0, 0x70, 0xde, 0x3f, 0x50, 0x72, 0x82, 0xdd, 0x07, 0x6a, 0xf9, 0xf3, 0x01, 0x7f, 0x65, 0xa0, + 0x4d, 0x2c, 0x9e, 0xbf, 0x31, 0x21, 0xac, 0xcb, 0xc4, 0x5a, 0x82, 0x6e, 0xd1, 0x6b, 0x1f, 0x5e, + 0xbf, 0xcf, 0x3a, 0x02, 0xd8, 0x80, 0x09, 0xd8, 0x72, 0xd9, 0x2f, 0xee, 0x79, 0x95, 0x73, 0x72, + 0xc7, 0xb1, 0x73, 0xff, 0x1a, 0xd9, 0x7d, 0x7f, 0xc7, 0x55, 0x50, 0xea, 0x63, 0xa8, 0x7e, 0x3b, + 0x2e, 0x9c, 0xbb, 0x28, 0xd8, 0x7e, 0xc0, 0x15, 0x77, 0xac, 0xcc, 0xbd, 0x82, 0x3a, 0x5b, 0x53, + 0xb3, 0xba, 0xae, 0xa7, 0xfc, 0x7e, 0x1f, 0x3e, 0xaf, 0x07, 0x55, 0x55, 0x91, 0x52, 0x62, 0xdb, + 0x36, 0xd5, 0xaa, 0x49, 0xb1, 0x54, 0x62, 0x7c, 0x6a, 0xee, 0x8e, 0x20, 0x65, 0xb9, 0xc3, 0x84, + 0x10, 0x9a, 0x10, 0xc2, 0x2b, 0x84, 0xf0, 0x09, 0x21, 0x02, 0xf5, 0xf0, 0x09, 0x21, 0x7c, 0x52, + 0x0f, 0x13, 0x4e, 0xb5, 0x31, 0x35, 0x6b, 0xb0, 0x50, 0x51, 0x98, 0x5d, 0xb2, 0x99, 0x2f, 0x41, + 0xc1, 0xd4, 0xc8, 0x17, 0x6b, 0x28, 0xbe, 0x18, 0xf5, 0xfc, 0xdb, 0xc2, 0xb4, 0x65, 0x82, 0x47, + 0x81, 0x24, 0xa0, 0x2f, 0x7f, 0xc0, 0x4d, 0xa9, 0xa2, 0xb1, 0x98, 0xe6, 0xf7, 0xfb, 0x08, 0x04, + 0x02, 0x24, 0x93, 0x49, 0xf2, 0xd7, 0x67, 0x49, 0xa6, 0x52, 0xb8, 0xae, 0xc4, 0x30, 0x8a, 0xc4, + 0x62, 0x71, 0x60, 0x74, 0x35, 0x30, 0x2b, 0x84, 0x30, 0xe4, 0xc7, 0x4a, 0x75, 0xd3, 0x0c, 0x12, + 0xa8, 0xd6, 0xad, 0x18, 0xaa, 0x83, 0x6e, 0x2a, 0x21, 0x00, 0x6a, 0x35, 0xfb, 0xa0, 0xeb, 0xba, + 0x3d, 0x8a, 0xaa, 0xa0, 0xe9, 0x3a, 0x35, 0xc7, 0x91, 0x9a, 0xae, 0x03, 0x52, 0xba, 0xae, 0xeb, + 0x08, 0x21, 0x2e, 0x01, 0x25, 0xc0, 0xba, 0xb5, 0x76, 0xef, 0xa0, 0x51, 0xfd, 0xdb, 0x6a, 0x3d, + 0xb4, 0x8f, 0x01, 0xff, 0xc7, 0x90, 0x80, 0x0b, 0x38, 0x40, 0xad, 0x7e, 0xbb, 0xf2, 0x0e, 0xa2, + 0xff, 0x17, 0x66, 0x9b, 0xf9, 0x0b, 0x88, 0x97, 0x4b, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, + 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, +}; + +const BITMAP_OPAQUE gerbview_open_recent_drill_files_xpm[1] = {{ png, sizeof( png ), "gerbview_open_recent_drill_files_xpm" }}; + +//EOF diff --git a/bitmaps_png/cpp_26/via.cpp b/bitmaps_png/cpp_26/via.cpp new file mode 100644 index 0000000000..9ab36f3bee --- /dev/null +++ b/bitmaps_png/cpp_26/via.cpp @@ -0,0 +1,82 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include "bitmaps.h" + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, + 0xce, 0x00, 0x00, 0x04, 0x13, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x96, 0x5f, 0x4c, 0xd3, + 0x57, 0x14, 0xc7, 0x2f, 0xb4, 0xe0, 0x80, 0x2a, 0xfd, 0x03, 0x32, 0x05, 0x5b, 0x8a, 0x13, 0x06, + 0xb5, 0x53, 0x68, 0x69, 0x19, 0x3e, 0x68, 0xc6, 0xbf, 0x3a, 0xe8, 0x6a, 0x11, 0xda, 0x01, 0x41, + 0xec, 0x68, 0x29, 0x6d, 0x21, 0x41, 0x7d, 0xd1, 0xe8, 0x03, 0xf1, 0x85, 0x8c, 0x07, 0x89, 0x8b, + 0x89, 0x8a, 0x38, 0x5c, 0x34, 0x59, 0x9c, 0x89, 0x99, 0x31, 0x1a, 0x75, 0xc6, 0xed, 0x65, 0x84, + 0x2c, 0xcb, 0x0c, 0x66, 0x4b, 0xdc, 0xc3, 0xc6, 0xb6, 0xc4, 0x98, 0xf8, 0x07, 0x86, 0x62, 0x36, + 0x23, 0xe5, 0xee, 0x7b, 0x7e, 0xf9, 0xdd, 0xa6, 0x92, 0x6a, 0x06, 0x33, 0x3e, 0xec, 0xe1, 0x93, + 0xa6, 0xe7, 0x9e, 0x73, 0xbe, 0xf7, 0x9e, 0x7b, 0x7e, 0xe7, 0xf7, 0x63, 0x9c, 0x73, 0xf6, 0x3a, + 0x58, 0x9c, 0x33, 0x63, 0x49, 0x40, 0x01, 0x94, 0x20, 0x05, 0x2c, 0x93, 0x7f, 0xc9, 0x96, 0xfc, + 0x4a, 0x84, 0xe4, 0xe4, 0x2b, 0xcb, 0xca, 0xca, 0x1a, 0x1c, 0x0e, 0x47, 0x7f, 0x7d, 0x7d, 0xfd, + 0x71, 0xab, 0xd5, 0x7a, 0x40, 0xad, 0x56, 0xbb, 0x61, 0xaf, 0x00, 0xeb, 0xc0, 0x1b, 0xb4, 0x99, + 0x25, 0x09, 0x51, 0xa0, 0xd7, 0xeb, 0x5d, 0xdb, 0xd9, 0xd9, 0x79, 0x2d, 0x14, 0x0a, 0xcd, 0xf6, + 0xf4, 0xf4, 0xf0, 0x05, 0x44, 0x83, 0xc1, 0xe0, 0x64, 0x4d, 0x4d, 0xcd, 0x10, 0x7c, 0xeb, 0xc0, + 0x9b, 0xb4, 0xa9, 0x45, 0x09, 0x51, 0x39, 0x20, 0xb0, 0x2b, 0x1c, 0x0e, 0x3f, 0x59, 0x90, 0xfc, + 0x57, 0x30, 0x0e, 0x9e, 0xb3, 0xc3, 0x77, 0x4c, 0xaf, 0xd7, 0x07, 0x11, 0x67, 0x5e, 0x28, 0xf6, + 0x52, 0x21, 0x08, 0x9c, 0x8c, 0x4b, 0x34, 0x19, 0x89, 0x44, 0xb6, 0x03, 0x9d, 0xd8, 0x84, 0xc5, + 0x62, 0x49, 0x81, 0xdd, 0x0c, 0x86, 0xc1, 0x3c, 0xf9, 0x61, 0xfd, 0x91, 0xd1, 0x68, 0x8c, 0x60, + 0x3d, 0x2f, 0xfe, 0xde, 0xe2, 0x2f, 0xf9, 0x39, 0x50, 0xa6, 0x6d, 0x42, 0x04, 0xa5, 0x39, 0xea, + 0xf1, 0x78, 0x54, 0x71, 0xcd, 0x90, 0x06, 0xde, 0x02, 0x25, 0x80, 0xec, 0x4a, 0xf8, 0x6d, 0x01, + 0xbf, 0x93, 0x7f, 0x57, 0x57, 0xd7, 0x4d, 0x85, 0x42, 0xe1, 0x84, 0x3d, 0x23, 0xae, 0x3a, 0x2c, + 0x19, 0x68, 0x81, 0x4e, 0x60, 0xb3, 0xd9, 0x0a, 0xb1, 0xb3, 0x7b, 0x14, 0xe4, 0xf3, 0xf9, 0xbe, + 0xa2, 0x26, 0x90, 0xd7, 0xb2, 0x21, 0x51, 0x91, 0xe1, 0xd3, 0x1e, 0xce, 0x08, 0xe8, 0x46, 0x15, + 0x99, 0x0a, 0x3f, 0x6c, 0x1f, 0x82, 0x4a, 0xea, 0x40, 0x54, 0xa0, 0x1c, 0x31, 0xcf, 0x28, 0xce, + 0xed, 0x76, 0x7f, 0x0a, 0xdb, 0x06, 0xda, 0x98, 0x10, 0xa2, 0x4e, 0xd9, 0x06, 0xbc, 0x02, 0x97, + 0xcb, 0xf5, 0x85, 0x7c, 0x92, 0x29, 0xad, 0x56, 0x1b, 0x10, 0xf6, 0x8c, 0xb0, 0x6e, 0x54, 0x7d, + 0x24, 0xef, 0xa1, 0xe6, 0xc4, 0x1a, 0x2e, 0x71, 0x34, 0x6f, 0x76, 0xf9, 0xee, 0xec, 0x8b, 0x38, + 0x63, 0x3b, 0xd6, 0xd7, 0xd2, 0xa6, 0x7b, 0x7b, 0x7b, 0x0f, 0xc8, 0x25, 0x7c, 0xa2, 0x54, 0x2a, + 0xab, 0xc5, 0x5d, 0xb1, 0x67, 0x8c, 0x9d, 0x9b, 0x61, 0xec, 0xce, 0x34, 0x63, 0x77, 0xa7, 0x64, + 0x86, 0x5c, 0xae, 0xbf, 0xc9, 0xf9, 0x6c, 0x65, 0xe5, 0x63, 0x61, 0x1b, 0xcb, 0x4b, 0xb9, 0x4f, + 0xc9, 0xb5, 0xa0, 0x64, 0x74, 0x5d, 0xf4, 0x9d, 0xd1, 0xc2, 0xa8, 0x4e, 0x16, 0x4c, 0x73, 0xaf, + 0x38, 0x24, 0x77, 0x5c, 0x0a, 0x4e, 0xa5, 0xa2, 0x4e, 0xa4, 0x78, 0x93, 0xc9, 0xb4, 0x0b, 0xb6, + 0x54, 0x49, 0x28, 0xca, 0xd8, 0x77, 0xd2, 0x55, 0xc5, 0xb1, 0xd7, 0xef, 0x97, 0xee, 0xe6, 0x27, + 0x83, 0x21, 0x66, 0xdb, 0xd3, 0xa6, 0x91, 0x92, 0x16, 0xdd, 0xb0, 0xf1, 0x8a, 0x9f, 0x1d, 0x12, + 0xeb, 0xc7, 0x36, 0x49, 0xb6, 0xcc, 0x81, 0x55, 0xb7, 0x90, 0xb0, 0x0d, 0xac, 0xa0, 0x7b, 0x44, + 0xec, 0x04, 0xc5, 0xd7, 0xd6, 0xd6, 0x1e, 0xc7, 0xff, 0x4c, 0xe9, 0x6e, 0x17, 0x0a, 0x4d, 0xab, + 0x54, 0xb1, 0x76, 0x7d, 0x94, 0x9e, 0x2e, 0xd9, 0xa2, 0x49, 0x8c, 0x1b, 0x3e, 0xc9, 0x95, 0x92, + 0x96, 0xff, 0x58, 0x1d, 0x13, 0xb2, 0xdf, 0xae, 0xe3, 0xd9, 0xc3, 0xfa, 0x39, 0xcd, 0xf0, 0x9a, + 0x79, 0x45, 0x41, 0x6a, 0x0b, 0x9d, 0x88, 0x76, 0x8f, 0xb2, 0x9d, 0xa2, 0x78, 0x3c, 0x7f, 0x57, + 0xe8, 0x6a, 0x12, 0x9e, 0x68, 0x2e, 0x39, 0x99, 0xf7, 0x85, 0x42, 0x92, 0xd0, 0x64, 0x4e, 0x4e, + 0xcc, 0xde, 0x1e, 0xce, 0x92, 0x84, 0x4c, 0xdf, 0x56, 0xc6, 0x84, 0x36, 0x7e, 0xbf, 0x59, 0xb2, + 0xa9, 0x0f, 0xad, 0xfe, 0x0d, 0x09, 0x8b, 0x44, 0x3b, 0x23, 0xf6, 0x1b, 0x8a, 0x6f, 0x6c, 0x6c, + 0x1c, 0x11, 0xe2, 0x6c, 0x9e, 0xb1, 0x2f, 0x21, 0xf6, 0x47, 0x3c, 0x1f, 0x7b, 0x3c, 0x4f, 0xc9, + 0xf1, 0x52, 0x69, 0xe9, 0xec, 0x53, 0xdc, 0x1f, 0xd9, 0xae, 0xad, 0x4f, 0xbb, 0x47, 0x49, 0xb3, + 0x3e, 0xcb, 0xe7, 0x85, 0xd7, 0xad, 0xfc, 0xed, 0xaf, 0x6d, 0x7c, 0xe5, 0xe9, 0x02, 0x49, 0x48, + 0x15, 0xd0, 0x1e, 0x43, 0xc2, 0x74, 0x4a, 0xd8, 0xdc, 0xdc, 0xac, 0x40, 0xac, 0x34, 0x41, 0xaa, + 0xaa, 0xaa, 0x82, 0xb1, 0xae, 0x4b, 0xf4, 0x1c, 0xe1, 0xe8, 0x87, 0xc9, 0x31, 0x10, 0x08, 0xdc, + 0xc4, 0x7f, 0xa7, 0xfc, 0xac, 0x24, 0xe9, 0x4e, 0x1a, 0xce, 0x69, 0x46, 0xf4, 0x3c, 0xd6, 0x75, + 0x20, 0x67, 0xc4, 0xf8, 0x00, 0x6d, 0xbe, 0x5d, 0xec, 0xbc, 0xbb, 0xbb, 0xbb, 0x41, 0x2e, 0xfd, + 0x7c, 0x71, 0x71, 0xb1, 0x41, 0xcc, 0xbe, 0x84, 0x13, 0x01, 0x42, 0x76, 0x38, 0xce, 0x51, 0x80, + 0xd3, 0xe9, 0x3c, 0x26, 0x0f, 0xcd, 0x65, 0xb6, 0x1b, 0xd5, 0x3a, 0xcb, 0xc4, 0x7b, 0xbc, 0xe0, + 0xf2, 0x46, 0x9e, 0x7f, 0xd1, 0xcc, 0x4b, 0x7f, 0xd8, 0xc2, 0x4b, 0x4e, 0x97, 0x5f, 0xc2, 0x5a, + 0x03, 0x09, 0x75, 0x74, 0x74, 0xe8, 0x10, 0x7b, 0x47, 0x1e, 0x47, 0x57, 0xc5, 0x69, 0x5e, 0x3a, + 0x82, 0xe0, 0x3c, 0x20, 0x3f, 0x0f, 0x7f, 0x61, 0x4a, 0xef, 0x47, 0xd0, 0x66, 0x43, 0x6f, 0x91, + 0x51, 0xdc, 0x8f, 0x40, 0x16, 0x72, 0xc2, 0x27, 0x0b, 0x13, 0xe1, 0x2a, 0xc5, 0xa0, 0xc5, 0xa7, + 0x9b, 0x9a, 0x9a, 0x72, 0xff, 0xd5, 0xac, 0xeb, 0xef, 0xef, 0x4f, 0x45, 0xd0, 0x2d, 0x31, 0xa1, + 0x5b, 0x5b, 0x5b, 0xcf, 0xe7, 0x6c, 0x58, 0xe5, 0x4f, 0x24, 0x64, 0xb7, 0xdb, 0x0f, 0xa2, 0x64, + 0x77, 0x45, 0xb7, 0xa2, 0xe4, 0x9e, 0x45, 0x4d, 0xef, 0xbe, 0xbe, 0xbe, 0x7c, 0x3c, 0xe9, 0xd7, + 0x45, 0x82, 0x30, 0x06, 0xe6, 0x8e, 0xc1, 0x8f, 0x78, 0xd3, 0xa9, 0x36, 0xfe, 0xc1, 0x59, 0x2f, + 0x6f, 0x39, 0xd2, 0xc1, 0xfd, 0x7b, 0x02, 0x8f, 0xe3, 0x06, 0xef, 0x0c, 0x66, 0x64, 0xd7, 0x92, + 0x5f, 0x7c, 0x48, 0xe0, 0x03, 0x53, 0x09, 0xde, 0x45, 0x31, 0x50, 0xe2, 0x0b, 0x38, 0x55, 0xee, + 0x7f, 0x7e, 0xc3, 0xe2, 0x74, 0xea, 0xce, 0x7d, 0x81, 0x66, 0xf7, 0x99, 0x16, 0xde, 0x36, 0xb4, + 0x93, 0xef, 0x1c, 0xf0, 0x73, 0xcf, 0x89, 0x76, 0xbe, 0x75, 0xd0, 0x35, 0x61, 0x36, 0x9b, 0x23, + 0xa2, 0xeb, 0x5e, 0xc9, 0x37, 0xc3, 0xbb, 0xe3, 0x75, 0xda, 0x17, 0x34, 0x43, 0xc3, 0xff, 0x48, + 0xe8, 0x8c, 0xed, 0xf5, 0x08, 0x99, 0x3e, 0xb7, 0x5f, 0x80, 0xc8, 0xfb, 0x89, 0x3e, 0x48, 0x96, + 0x2c, 0x64, 0xf9, 0xa5, 0x3a, 0xb3, 0xe2, 0xb6, 0xe3, 0x4f, 0x30, 0x23, 0xb0, 0x8e, 0x57, 0x0d, + 0x42, 0x44, 0xf3, 0xa2, 0xcf, 0x2c, 0xc1, 0x3f, 0xcc, 0xc3, 0x66, 0x7a, 0x03, 0x39, 0xbc, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, +}; + +const BITMAP_OPAQUE via_xpm[1] = {{ png, sizeof( png ), "via_xpm" }}; + +//EOF diff --git a/bitmaps_png/sources/change_entry_orient.svg b/bitmaps_png/sources/change_entry_orient.svg new file mode 100644 index 0000000000..026aff0010 --- /dev/null +++ b/bitmaps_png/sources/change_entry_orient.svg @@ -0,0 +1,231 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/gerbview_open_recent_drill_files.svg b/bitmaps_png/sources/gerbview_open_recent_drill_files.svg new file mode 100644 index 0000000000..4101f09dfb --- /dev/null +++ b/bitmaps_png/sources/gerbview_open_recent_drill_files.svg @@ -0,0 +1,329 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/lang_bg.svg b/bitmaps_png/sources/lang_bg.svg new file mode 100644 index 0000000000..82321af0b2 --- /dev/null +++ b/bitmaps_png/sources/lang_bg.svg @@ -0,0 +1,76 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/via.svg b/bitmaps_png/sources/via.svg new file mode 100644 index 0000000000..8454639b7e --- /dev/null +++ b/bitmaps_png/sources/via.svg @@ -0,0 +1,124 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/base_struct.cpp b/common/base_struct.cpp index c02cbef1b4..6cd24b5f64 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -70,7 +70,6 @@ EDA_ITEM::EDA_ITEM( const EDA_ITEM& base ) m_Flags = base.m_Flags; SetTimeStamp( base.m_TimeStamp ); m_Status = base.m_Status; - m_Selected = base.m_Selected; } @@ -84,9 +83,9 @@ void EDA_ITEM::InitVars() m_List = NULL; // I am not on any list yet m_Image = NULL; // Link to an image copy for undelete or abort command m_Flags = 0; // flags for editions and other - SetTimeStamp( 0 ); // Time stamp used for logical links + SetTimeStamp( 0 ); // Time stamp used for logical links m_Status = 0; - m_Selected = 0; // Used by block commands, and selective editing + m_forceVisible = false; // true to override the visibility setting of the item. } diff --git a/common/block_commande.cpp b/common/block_commande.cpp index 4c14ce74bd..48a012d559 100644 --- a/common/block_commande.cpp +++ b/common/block_commande.cpp @@ -1,3 +1,28 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2011 Wayne Stambaugh + * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. + * + * 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, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * @file block_commande.cpp * @brief Common routines for managing on block commands. @@ -155,7 +180,7 @@ void BLOCK_SELECTOR::ClearListAndDeleteItems() */ void BLOCK_SELECTOR::PushItem( ITEM_PICKER& aItem ) { - m_ItemsSelection.PushItem( aItem ); + m_ItemsSelection.PushItem( aItem ); } @@ -181,7 +206,7 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo if( ( Block->m_Command != BLOCK_IDLE ) || ( Block->m_State != STATE_NO_BLOCK ) ) return false; - Block->m_Flags = 0; + Block->ClearFlags(); Block->m_Command = (CmdBlockType) ReturnBlockCommand( key ); if( Block->m_Command == 0 ) @@ -203,11 +228,11 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo case BLOCK_MIRROR_X: case BLOCK_MIRROR_Y: /* mirror */ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ - Block->InitData( DrawPanel, startpos ); + Block->InitData( m_canvas, startpos ); break; case BLOCK_PASTE: - Block->InitData( DrawPanel, startpos ); + Block->InitData( m_canvas, startpos ); Block->m_BlockLastCursorPosition.x = 0; Block->m_BlockLastCursorPosition.y = 0; InitBlockPasteInfos(); @@ -216,11 +241,11 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo { DisplayError( this, wxT( "No Block to paste" ), 20 ); GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; return true; } - if( !DrawPanel->IsMouseCaptured() ) + if( !m_canvas->IsMouseCaptured() ) { Block->m_ItemsSelection.ClearItemsList(); DisplayError( this, @@ -229,7 +254,7 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo } Block->m_State = STATE_BLOCK_MOVE; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, startpos, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, startpos, false ); break; default: @@ -298,7 +323,7 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC ) screen->m_BlockLocate.ClearItemsList(); } - screen->m_BlockLocate.m_Flags = 0; + screen->m_BlockLocate.ClearFlags(); screen->m_BlockLocate.m_State = STATE_NO_BLOCK; screen->m_BlockLocate.m_Command = BLOCK_ABORT; Panel->GetParent()->HandleBlockEnd( DC ); diff --git a/common/copy_to_clipboard.cpp b/common/copy_to_clipboard.cpp index ea4eb62c9c..2a28c30390 100644 --- a/common/copy_to_clipboard.cpp +++ b/common/copy_to_clipboard.cpp @@ -25,9 +25,9 @@ void EDA_DRAW_FRAME::CopyToClipboard( wxCommandEvent& event ) if( event.GetId() == ID_GEN_COPY_BLOCK_TO_CLIPBOARD ) { if( GetScreen()->IsBlockActive() ) - DrawPanel->SetCursor( wxCursor( DrawPanel->GetDefaultCursor() ) ); + m_canvas->SetCursor( wxCursor( m_canvas->GetDefaultCursor() ) ); - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); } } @@ -48,7 +48,7 @@ bool DrawPageOnClipboard( EDA_DRAW_FRAME* aFrame ) int ClipboardSizeX, ClipboardSizeY; bool DrawBlock = false; wxRect DrawArea; - BASE_SCREEN* screen = aFrame->DrawPanel->GetScreen(); + BASE_SCREEN* screen = aFrame->GetCanvas()->GetScreen(); /* scale is the ratio resolution/internal units */ float scale = 82.0 / aFrame->GetInternalUnits(); @@ -73,7 +73,7 @@ bool DrawPageOnClipboard( EDA_DRAW_FRAME* aFrame ) wxMetafileDC dc; - EDA_RECT tmp = aFrame->DrawPanel->m_ClipBox; + EDA_RECT tmp = aFrame->GetCanvas()->m_ClipBox; GRResetPenAndBrush( &dc ); const bool plotBlackAndWhite = false; GRForceBlackPen( plotBlackAndWhite ); @@ -81,10 +81,10 @@ bool DrawPageOnClipboard( EDA_DRAW_FRAME* aFrame ) dc.SetUserScale( scale, scale ); ClipboardSizeX = dc.MaxX() + 10; ClipboardSizeY = dc.MaxY() + 10; - aFrame->DrawPanel->m_ClipBox.SetX( 0 ); - aFrame->DrawPanel->m_ClipBox.SetY( 0 ); - aFrame->DrawPanel->m_ClipBox.SetWidth( 0x7FFFFF0 ); - aFrame->DrawPanel->m_ClipBox.SetHeight( 0x7FFFFF0 ); + aFrame->GetCanvas()->m_ClipBox.SetX( 0 ); + aFrame->GetCanvas()->m_ClipBox.SetY( 0 ); + aFrame->GetCanvas()->m_ClipBox.SetWidth( 0x7FFFFF0 ); + aFrame->GetCanvas()->m_ClipBox.SetHeight( 0x7FFFFF0 ); if( DrawBlock ) { @@ -94,7 +94,7 @@ bool DrawPageOnClipboard( EDA_DRAW_FRAME* aFrame ) const int maskLayer = 0xFFFFFFFF; aFrame->PrintPage( &dc, maskLayer, false ); screen->m_IsPrinting = false; - aFrame->DrawPanel->m_ClipBox = tmp; + aFrame->GetCanvas()->m_ClipBox = tmp; wxMetafile* mf = dc.Close(); if( mf ) diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 7c80f6b549..0d96ed4b4e 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -29,8 +29,8 @@ void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event ) DIALOG_PAGES_SETTINGS frame( this ); int diag = frame.ShowModal(); - if( DrawPanel && diag ) - DrawPanel->Refresh(); + if( m_canvas && diag ) + m_canvas->Refresh(); } @@ -257,7 +257,7 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event ) #endif m_Screen->SetModify(); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 4affe5615d..e57d0bba2a 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -94,7 +94,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* father, int idtype, const wxString& ti m_zoomSelectBox = NULL; m_HotkeysZoomAndGridList = NULL; - DrawPanel = NULL; + m_canvas = NULL; m_messagePanel = NULL; m_currentScreen = NULL; m_toolId = ID_NO_TOOL_SELECTED; @@ -142,7 +142,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* father, int idtype, const wxString& ti m_FramePos.x = m_FramePos.y = 0; m_FrameSize.y -= m_MsgFrameHeight; - DrawPanel = new EDA_DRAW_PANEL( this, -1, wxPoint( 0, 0 ), m_FrameSize ); + m_canvas = new EDA_DRAW_PANEL( this, -1, wxPoint( 0, 0 ), m_FrameSize ); m_messagePanel = new EDA_MSG_PANEL( this, -1, wxPoint( 0, m_FrameSize.y ), wxSize( m_FrameSize.x, m_MsgFrameHeight ) ); @@ -182,8 +182,8 @@ void EDA_DRAW_FRAME::OnActivate( wxActivateEvent& event ) { m_FrameIsActive = event.GetActive(); - if( DrawPanel ) - DrawPanel->m_CanStartBlock = -1; + if( m_canvas ) + m_canvas->m_CanStartBlock = -1; event.Skip(); // required under wxMAC } @@ -191,8 +191,8 @@ void EDA_DRAW_FRAME::OnActivate( wxActivateEvent& event ) void EDA_DRAW_FRAME::OnMenuOpen( wxMenuEvent& event ) { - if( DrawPanel ) - DrawPanel->m_CanStartBlock = -1; + if( m_canvas ) + m_canvas->m_CanStartBlock = -1; event.Skip(); } @@ -201,7 +201,7 @@ void EDA_DRAW_FRAME::OnMenuOpen( wxMenuEvent& event ) void EDA_DRAW_FRAME::OnToggleGridState( wxCommandEvent& aEvent ) { SetGridVisibility( !IsGridVisible() ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -222,10 +222,10 @@ void EDA_DRAW_FRAME::OnSelectUnits( wxCommandEvent& aEvent ) void EDA_DRAW_FRAME::OnToggleCrossHairStyle( wxCommandEvent& aEvent ) { - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); - DrawPanel->CrossHairOff( &dc ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); + m_canvas->CrossHairOff( &dc ); m_cursorShape = !m_cursorShape; - DrawPanel->CrossHairOn( &dc ); + m_canvas->CrossHairOn( &dc ); } @@ -445,9 +445,9 @@ void EDA_DRAW_FRAME::SetToolID( int aId, int aCursor, const wxString& aToolMsg ) // Keep default cursor in toolbars SetCursor( wxNullCursor ); - // Change DrawPanel cursor if requested. - if( DrawPanel && aCursor >= 0 ) - DrawPanel->SetCurrentCursor( aCursor ); + // Change m_canvas cursor if requested. + if( m_canvas && aCursor >= 0 ) + m_canvas->SetCurrentCursor( aCursor ); DisplayToolMsg( aToolMsg ); @@ -486,7 +486,7 @@ int EDA_DRAW_FRAME::ReturnBlockCommand( int key ) void EDA_DRAW_FRAME::InitBlockPasteInfos() { GetScreen()->m_BlockLocate.ClearItemsList(); - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; } @@ -508,7 +508,7 @@ void EDA_DRAW_FRAME::AdjustScrollBars( const wxPoint& aCenterPosition ) BASE_SCREEN* screen = GetScreen(); bool noRefresh = true; - if( screen == NULL || DrawPanel == NULL ) + if( screen == NULL || m_canvas == NULL ) return; double scalar = screen->GetScalingFactor(); @@ -518,7 +518,7 @@ void EDA_DRAW_FRAME::AdjustScrollBars( const wxPoint& aCenterPosition ) // Calculate the portion of the drawing that can be displayed in the // client area at the current zoom level. - clientSize = DrawPanel->GetClientSize(); + clientSize = m_canvas->GetClientSize(); // The logical size of the client window. logicalClientSize.x = wxRound( (double) clientSize.x / scalar ); @@ -693,12 +693,12 @@ SetScrollbars(%d, %d, %d, %d, %d, %d)" ), screen->m_ScrollbarNumber.x, screen->m_ScrollbarNumber.y, screen->m_ScrollbarPos.x, screen->m_ScrollbarPos.y ); - DrawPanel->SetScrollbars( screen->m_ScrollPixelsPerUnitX, - screen->m_ScrollPixelsPerUnitY, - screen->m_ScrollbarNumber.x, - screen->m_ScrollbarNumber.y, - screen->m_ScrollbarPos.x, - screen->m_ScrollbarPos.y, noRefresh ); + m_canvas->SetScrollbars( screen->m_ScrollPixelsPerUnitX, + screen->m_ScrollPixelsPerUnitY, + screen->m_ScrollbarNumber.x, + screen->m_ScrollbarNumber.y, + screen->m_ScrollbarPos.x, + screen->m_ScrollbarPos.y, noRefresh ); } diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index fbbe85fde2..18967ef793 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -63,7 +63,7 @@ BEGIN_EVENT_TABLE( EDA_DRAW_PANEL, wxScrolledWindow ) EVT_MOUSEWHEEL( EDA_DRAW_PANEL::OnMouseWheel ) EVT_MOUSE_EVENTS( EDA_DRAW_PANEL::OnMouseEvent ) EVT_CHAR( EDA_DRAW_PANEL::OnKeyEvent ) - EVT_CHAR_HOOK( EDA_DRAW_PANEL::OnKeyEvent ) + EVT_CHAR_HOOK( EDA_DRAW_PANEL::OnCharHook ) EVT_PAINT( EDA_DRAW_PANEL::OnPaint ) EVT_ERASE_BACKGROUND( EDA_DRAW_PANEL::OnEraseBackground ) EVT_SCROLLWIN( EDA_DRAW_PANEL::OnScroll ) @@ -421,15 +421,15 @@ void EDA_DRAW_PANEL::SetClipBox( wxDC& aDC, const wxRect* aRect ) clipBox.Inflate( CLIP_BOX_PADDING ); // Convert from device units to drawing units. - m_ClipBox.m_Pos = wxPoint( aDC.DeviceToLogicalX( clipBox.x ), - aDC.DeviceToLogicalY( clipBox.y ) ); - m_ClipBox.m_Size = wxSize( aDC.DeviceToLogicalXRel( clipBox.width ), - aDC.DeviceToLogicalYRel( clipBox.height ) ); + m_ClipBox.SetOrigin( wxPoint( aDC.DeviceToLogicalX( clipBox.x ), + aDC.DeviceToLogicalY( clipBox.y ) ) ); + m_ClipBox.SetSize( wxSize( aDC.DeviceToLogicalXRel( clipBox.width ), + aDC.DeviceToLogicalYRel( clipBox.height ) ) ); wxLogTrace( KICAD_TRACE_COORDS, wxT( "Device clip box=(%d, %d, %d, %d), Logical clip box=(%d, %d, %d, %d)" ), clipBox.x, clipBox.y, clipBox.width, clipBox.height, - m_ClipBox.m_Pos.x, m_ClipBox.m_Pos.y, m_ClipBox.m_Size.x, m_ClipBox.m_Size.y ); + m_ClipBox.GetX(), m_ClipBox.GetY(), m_ClipBox.GetWidth(), m_ClipBox.GetHeight() ); } @@ -574,7 +574,7 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC ) screenGridSize.x = aDC->LogicalToDeviceXRel( wxRound( gridSize.x ) ); screenGridSize.y = aDC->LogicalToDeviceYRel( wxRound( gridSize.y ) ); - org = m_ClipBox.m_Pos; + org = m_ClipBox.GetPosition(); if( screenGridSize.x < MIN_GRID_SIZE || screenGridSize.y < MIN_GRID_SIZE ) { @@ -668,7 +668,7 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC ) for( double x = (double) org.x; x <= right; x += gridSize.x ) { aDC->Blit( scaleDC.LogicalToDeviceX( wxRound( x ) ), - scaleDC.LogicalToDeviceY( m_ClipBox.m_Pos.y ), + scaleDC.LogicalToDeviceY( m_ClipBox.GetY() ), 1, tmpBM.GetHeight(), &tmpDC, 0, 0, wxCOPY, true ); } #endif @@ -1107,23 +1107,23 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) } + +void EDA_DRAW_PANEL::OnCharHook( wxKeyEvent& event ) +{ + event.Skip(); +} + void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event ) { int localkey; wxPoint pos; - localkey = event.GetKeyCode(); + localkey = event.GetKeyCode(); switch( localkey ) { - case WXK_CONTROL: - case WXK_CAPITAL: - case WXK_SHIFT: - case WXK_NUMLOCK: - case WXK_LBUTTON: - case WXK_RBUTTON: - case WXK_ALT: - return; + default: + break; case WXK_ESCAPE: m_AbortRequest = true; @@ -1132,7 +1132,6 @@ void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event ) EndMouseCapture(); else EndMouseCapture( ID_NO_TOOL_SELECTED, m_defaultCursor, wxEmptyString ); - break; } diff --git a/common/drawtxt.cpp b/common/drawtxt.cpp index 03a03f6244..46c34a8ef8 100644 --- a/common/drawtxt.cpp +++ b/common/drawtxt.cpp @@ -204,7 +204,7 @@ static int overbar_position( int size_v, int thickness ) /** * Function DrawGraphicText * Draw a graphic text (like module texts) - * @param aPanel = the current DrawPanel. NULL if draw within a 3D GL Canvas + * @param aPanel = the current m_canvas. NULL if draw within a 3D GL Canvas * @param aDC = the current Device Context. NULL if draw within a 3D GL Canvas * @param aPos = text position (according to h_justify, v_justify) * @param aColor (enum EDA_Colors) = text color diff --git a/common/sch_item_struct.cpp b/common/sch_item_struct.cpp index e39b4f9bad..e6cff77782 100644 --- a/common/sch_item_struct.cpp +++ b/common/sch_item_struct.cpp @@ -100,13 +100,13 @@ void SCH_ITEM::Place( SCH_EDIT_FRAME* aFrame, wxDC* aDC ) m_Flags = 0; screen->SetModify(); screen->SetCurItem( NULL ); - aFrame->DrawPanel->SetMouseCapture( NULL, NULL ); - aFrame->DrawPanel->EndMouseCapture(); + aFrame->GetCanvas()->SetMouseCapture( NULL, NULL ); + aFrame->GetCanvas()->EndMouseCapture(); if( aDC ) { - EDA_CROSS_HAIR_MANAGER( aFrame->DrawPanel, aDC ); // Erase schematic cursor - Draw( aFrame->DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + EDA_CROSS_HAIR_MANAGER( aFrame->GetCanvas(), aDC ); // Erase schematic cursor + Draw( aFrame->GetCanvas(), aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); } } diff --git a/common/worksheet.cpp b/common/worksheet.cpp index d6e1af2dda..c5cc93996d 100644 --- a/common/worksheet.cpp +++ b/common/worksheet.cpp @@ -1034,7 +1034,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( !screen->m_IsPrinting & g_ShowPageLimits ) { GRSetDrawMode( DC, GR_COPY ); - GRRect( &DrawPanel->m_ClipBox, DC, 0, 0, + GRRect( &m_canvas->m_ClipBox, DC, 0, 0, pageSize.x * scale, pageSize.y * scale, width, g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY ); } @@ -1052,13 +1052,13 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid yg = pageSize.y - pageInfo.GetBottomMarginMils(); #if defined(KICAD_GOST) - GRRect( &DrawPanel->m_ClipBox, DC, refx * scale, refy * scale, + GRRect( &m_canvas->m_ClipBox, DC, refx * scale, refy * scale, xg * scale, yg * scale, width, Color ); #else for( ii = 0; ii < 2; ii++ ) { - GRRect( &DrawPanel->m_ClipBox, DC, refx * scale, refy * scale, + GRRect( &m_canvas->m_ClipBox, DC, refx * scale, refy * scale, xg * scale, yg * scale, width, Color ); refx += GRID_REF_W; refy += GRID_REF_W; @@ -1085,7 +1085,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_PODPIS_LU: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_VERT, size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, false, false ); @@ -1094,7 +1094,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_SEGMENT_LU: xg = pageInfo.GetLeftMargin() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( &DrawPanel->m_ClipBox, DC, pos.x, pos.y, + GRLine( &m_canvas->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } @@ -1111,7 +1111,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_SEGMENT_LT: xg = pageInfo.GetLeftMarginMils() + WsItem->m_Endx; yg = pageInfo.GetBottomMarginMils() + WsItem->m_Endy; - GRLine( &DrawPanel->m_ClipBox, DC, pos.x, pos.y, + GRLine( &m_canvas->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } @@ -1134,11 +1134,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( ii < xg - PAS_REF / 2 ) { - GRLine( &DrawPanel->m_ClipBox, DC, ii * scale, refy * scale, + GRLine( &m_canvas->m_ClipBox, DC, ii * scale, refy * scale, ii * scale, ( refy + GRID_REF_W ) * scale, width, Color ); } - - DrawGraphicText( DrawPanel, DC, + DrawGraphicText( m_canvas, DC, wxPoint( ( ii - gxpas / 2 ) * scale, ( refy + GRID_REF_W / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, @@ -1147,11 +1146,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( ii < xg - PAS_REF / 2 ) { - GRLine( &DrawPanel->m_ClipBox, DC, ii * scale, yg * scale, + GRLine( &m_canvas->m_ClipBox, DC, ii * scale, yg * scale, ii * scale, ( yg - GRID_REF_W ) * scale, width, Color ); } - - DrawGraphicText( DrawPanel, DC, + DrawGraphicText( m_canvas, DC, wxPoint( ( ii - gxpas / 2 ) * scale, ( yg - GRID_REF_W / 2) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, @@ -1171,11 +1169,11 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( ii < yg - PAS_REF / 2 ) { - GRLine( &DrawPanel->m_ClipBox, DC, refx * scale, ii * scale, + GRLine( &m_canvas->m_ClipBox, DC, refx * scale, ii * scale, ( refx + GRID_REF_W ) * scale, ii * scale, width, Color ); } - DrawGraphicText( DrawPanel, DC, + DrawGraphicText( m_canvas, DC, wxPoint( ( refx + GRID_REF_W / 2 ) * scale, ( ii - gypas / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, @@ -1184,11 +1182,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( ii < yg - PAS_REF / 2 ) { - GRLine( &DrawPanel->m_ClipBox, DC, xg * scale, ii * scale, + GRLine( &m_canvas->m_ClipBox, DC, xg * scale, ii * scale, ( xg - GRID_REF_W ) * scale, ii * scale, width, Color ); } - - DrawGraphicText( DrawPanel, DC, + DrawGraphicText( m_canvas, DC, wxPoint( ( xg - GRID_REF_W / 2 ) * scale, ( ii - gxpas / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, @@ -1224,8 +1221,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_PODPIS: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1239,7 +1235,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = WsItem->m_Legende; if( screen->m_NumberOfScreen > 1 ) msg << screen->m_ScreenNumber; - DrawGraphicText( DrawPanel, DC, pos, Color, msg, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; @@ -1248,7 +1244,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_NumberOfScreen; - DrawGraphicText( DrawPanel, DC, pos, Color, msg, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; @@ -1257,7 +1253,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Company; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, @@ -1269,7 +1265,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Title; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, @@ -1281,14 +1277,14 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Commentaire1; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, @@ -1300,7 +1296,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Commentaire2; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1311,7 +1307,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Commentaire3; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1322,7 +1318,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Commentaire4; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1340,7 +1336,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( &DrawPanel->m_ClipBox, DC, pos.x, pos.y, + GRLine( &m_canvas->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } @@ -1361,14 +1357,14 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = screen->m_Commentaire1; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, @@ -1379,7 +1375,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_PODPIS_D: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, @@ -1390,7 +1386,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_ScreenNumber; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1404,7 +1400,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( &DrawPanel->m_ClipBox, DC, pos.x, pos.y, + GRLine( &m_canvas->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } @@ -1428,7 +1424,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += screen->m_Date; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, true ); @@ -1438,7 +1434,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += screen->m_Revision; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), @@ -1450,7 +1446,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = WsItem->m_Legende; msg += g_ProductName + wxGetApp().GetAppName(); msg += wxT( " " ) + GetBuildVersion(); - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1460,7 +1456,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += pageInfo.GetType(); - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1471,7 +1467,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_ScreenNumber << wxT( "/" ) << screen->m_NumberOfScreen; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1486,7 +1482,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = WsItem->m_Legende; msg << fname << wxT( "." ) << fext; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1497,7 +1493,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetScreenDesc(); - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1510,7 +1506,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg += screen->m_Company; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), @@ -1523,7 +1519,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += screen->m_Title; - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), @@ -1536,7 +1532,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg += screen->m_Commentaire1; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1550,7 +1546,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg += screen->m_Commentaire2; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1564,7 +1560,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg += screen->m_Commentaire3; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1578,7 +1574,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg += screen->m_Commentaire4; if( !msg.IsEmpty() ) { - DrawGraphicText( DrawPanel, DC, pos, Color, + DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); @@ -1601,7 +1597,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid GRID_REF_W - pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - GRID_REF_W - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( &DrawPanel->m_ClipBox, DC, pos.x, pos.y, + GRLine( &m_canvas->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } diff --git a/common/zoom.cpp b/common/zoom.cpp index 3938a8a736..12d1a4006e 100644 --- a/common/zoom.cpp +++ b/common/zoom.cpp @@ -22,10 +22,10 @@ void EDA_DRAW_FRAME::RedrawScreen( const wxPoint& aCenterPoint, bool aWarpPointe // Move the mouse cursor to the on grid graphic cursor position if( aWarpPointer ) - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); - DrawPanel->Refresh(); - DrawPanel->Update(); + m_canvas->Refresh(); + m_canvas->Update(); } @@ -55,7 +55,7 @@ void EDA_DRAW_FRAME::Window_Zoom( EDA_RECT& Rect ) /* Compute the best zoom */ Rect.Normalize(); - size = DrawPanel->GetClientSize(); + size = m_canvas->GetClientSize(); // Use ceil to at least show the full rect scalex = (double) Rect.GetSize().x / size.x; @@ -73,7 +73,7 @@ void EDA_DRAW_FRAME::Window_Zoom( EDA_RECT& Rect ) */ void EDA_DRAW_FRAME::OnZoom( wxCommandEvent& event ) { - if( DrawPanel == NULL ) + if( m_canvas == NULL ) return; int i; @@ -105,7 +105,7 @@ void EDA_DRAW_FRAME::OnZoom( wxCommandEvent& event ) break; case ID_ZOOM_REDRAW: - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_ZOOM_CENTER: @@ -121,7 +121,7 @@ void EDA_DRAW_FRAME::OnZoom( wxCommandEvent& event ) break; case ID_POPUP_CANCEL: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; default: @@ -149,7 +149,7 @@ void EDA_DRAW_FRAME::AddMenuZoomAndGrid( wxMenu* MasterMenu ) int maxZoomIds; int zoom; wxString msg; - BASE_SCREEN * screen = DrawPanel->GetScreen(); + BASE_SCREEN * screen = m_canvas->GetScreen(); msg = AddHotkeyName( _( "Center" ), m_HotkeysZoomAndGridList, HK_ZOOM_CENTER ); AddMenuItem( MasterMenu, ID_POPUP_ZOOM_CENTER, msg, KiBitmap( zoom_center_on_screen_xpm ) ); diff --git a/cvpcb/class_DisplayFootprintsFrame.cpp b/cvpcb/class_DisplayFootprintsFrame.cpp index 459650f36c..63d77aee33 100644 --- a/cvpcb/class_DisplayFootprintsFrame.cpp +++ b/cvpcb/class_DisplayFootprintsFrame.cpp @@ -128,7 +128,7 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( CVPCB_MAINFRAME* father, m_auimgr.AddPane( m_drawToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_drawToolBar" ) ).Right() ); - m_auimgr.AddPane( DrawPanel, + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DisplayFrame" ) ).CentrePane() ); m_auimgr.AddPane( m_messagePanel, @@ -313,7 +313,7 @@ void DISPLAY_FOOTPRINTS_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) if( m_DisplayModText > 2 ) m_DisplayModText = 0; - DrawPanel->Refresh( ); + m_canvas->Refresh( ); break; case ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH: @@ -322,7 +322,7 @@ void DISPLAY_FOOTPRINTS_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) if( m_DisplayModEdge > 2 ) m_DisplayModEdge = 0; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; default: @@ -381,25 +381,25 @@ void DISPLAY_FOOTPRINTS_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPositi case WXK_NUMPAD8: /* cursor moved up */ case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: /* cursor moved down */ case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: /* cursor moved left */ case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: /* cursor moved right */ case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; } @@ -409,13 +409,13 @@ void DISPLAY_FOOTPRINTS_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPositi { pos = screen->GetCrossHairPosition(); screen->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); screen->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, 0 ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, 0 ); } } diff --git a/cvpcb/cvframe.cpp b/cvpcb/cvframe.cpp index fe9c178614..05cda00dd4 100644 --- a/cvpcb/cvframe.cpp +++ b/cvpcb/cvframe.cpp @@ -500,36 +500,47 @@ void CVPCB_MAINFRAME::OnLeftDClick( wxListEvent& event ) } +/* Called when clicking on a component in component list window + * * Updates the filtered foorprint list, if the filtered list option is selected + * * Updates the current selected footprint in footprint list + * * Updates the footprint shown in footprint display window (if opened) + */ void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event ) { - int selection; + #define REDRAW_LIST true + #define SELECT_FULL_LIST true + int selection = -1; if( !m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) ) + m_FootprintList->SetActiveFootprintList( SELECT_FULL_LIST, REDRAW_LIST ); + + else { - m_FootprintList->SetActiveFootprintList( true, true ); - return; + selection = m_ListCmp->GetSelection(); + + if( selection < 0 ) + m_FootprintList->SetActiveFootprintList( SELECT_FULL_LIST, REDRAW_LIST ); + + else + { + if( &m_components[ selection ] == NULL ) + m_FootprintList->SetActiveFootprintList( SELECT_FULL_LIST, REDRAW_LIST ); + else + m_FootprintList->SetFootprintFilteredList( &m_components[ selection ], + m_footprints ); + } } selection = m_ListCmp->GetSelection(); if( selection < 0 ) - { - m_FootprintList->SetActiveFootprintList( true, true ); return; - } - - if( &m_components[ selection ] == NULL ) - { - m_FootprintList->SetActiveFootprintList( true, true ); - return; - } - - m_FootprintList->SetFootprintFilteredList( &m_components[ selection ], m_footprints ); // Preview of the already assigned footprint. // Find the footprint that was already choosen for this component and select it. wxString module = *(&m_components[ selection ].m_Module); + bool found = false; for( int ii = 0; ii < m_FootprintList->GetCount(); ii++ ) { wxString footprintName; @@ -539,10 +550,23 @@ void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event ) footprintName = msg.AfterFirst( wxChar( ' ' ) ); if( module.Cmp( footprintName ) == 0 ) + { m_FootprintList->SetSelection( ii, true ); - else - m_FootprintList->SetSelection( ii, false ); + found = true; + break; + } } + if( ! found ) + { + int ii = m_FootprintList->GetSelection(); + if ( ii >= 0 ) + m_FootprintList->SetSelection( ii, false ); + if( m_DisplayFootprintFrame ) + { + CreateScreenCmp(); + } + } + SendMessageToEESCHEMA(); DisplayStatus(); diff --git a/cvpcb/cvpcb_mainframe.h b/cvpcb/cvpcb_mainframe.h index bbe2125631..06ad0246b0 100644 --- a/cvpcb/cvpcb_mainframe.h +++ b/cvpcb/cvpcb_mainframe.h @@ -54,6 +54,14 @@ public: void OnLeftClick( wxListEvent& event ); void OnLeftDClick( wxListEvent& event ); + + /** + * Function OnSelectComponent + * Called when clicking on a component in component list window + * * Updates the filtered foorprint list, if the filtered list option is selected + * * Updates the current selected footprint in footprint list + * * Updates the footprint shown in footprint display window (if opened) + */ void OnSelectComponent( wxListEvent& event ); void OnQuit( wxCommandEvent& event ); diff --git a/cvpcb/dialogs/dialog_display_options.cpp b/cvpcb/dialogs/dialog_display_options.cpp index a425efd361..438927ae5e 100644 --- a/cvpcb/dialogs/dialog_display_options.cpp +++ b/cvpcb/dialogs/dialog_display_options.cpp @@ -68,7 +68,7 @@ void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::UpdateObjectSettings( void ) m_Parent->m_DisplayModText = m_TextDisplayOption->GetSelection(); m_Parent->m_DisplayPadNum = m_IsShowPadNum->GetValue(); m_Parent->m_DisplayPadFill = m_IsShowPadFill->GetValue(); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } diff --git a/cvpcb/setvisu.cpp b/cvpcb/setvisu.cpp index 795fd6218b..40a79aa167 100644 --- a/cvpcb/setvisu.cpp +++ b/cvpcb/setvisu.cpp @@ -83,14 +83,24 @@ void CVPCB_MAINFRAME::CreateScreenCmp() m_DisplayFootprintFrame->GetBoard()->m_Modules.PushBack( mod ); m_DisplayFootprintFrame->Zoom_Automatique( false ); - m_DisplayFootprintFrame->DrawPanel->Refresh(); - m_DisplayFootprintFrame->UpdateStatusBar(); /* Display new cursor coordinates and zoom value */ + m_DisplayFootprintFrame->GetCanvas()->Refresh(); + + // Display new cursor coordinates and zoom value: + m_DisplayFootprintFrame->UpdateStatusBar(); if( m_DisplayFootprintFrame->m_Draw3DFrame ) m_DisplayFootprintFrame->m_Draw3DFrame->NewDisplay(); } - else if( !IsNew ) + else if( !IsNew ) // No footprint to display. Erase old footprint, if any { + if( m_DisplayFootprintFrame->GetBoard()->m_Modules.GetCount() ) + { + m_DisplayFootprintFrame->GetBoard()->m_Modules.DeleteAll(); + m_DisplayFootprintFrame->Zoom_Automatique( false ); + m_DisplayFootprintFrame->SetStatusText( wxEmptyString, 0 ); + m_DisplayFootprintFrame->UpdateStatusBar(); + } + m_DisplayFootprintFrame->Refresh(); if( m_DisplayFootprintFrame->m_Draw3DFrame ) @@ -98,8 +108,6 @@ void CVPCB_MAINFRAME::CreateScreenCmp() } } - - /* * Draws the current highlighted footprint. */ @@ -108,15 +116,15 @@ void DISPLAY_FOOTPRINTS_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) if( !GetBoard() ) return; - DrawPanel->DrawBackGround( DC ); - GetBoard()->Draw( DrawPanel, DC, GR_COPY ); + m_canvas->DrawBackGround( DC ); + GetBoard()->Draw( m_canvas, DC, GR_COPY ); MODULE* Module = GetBoard()->m_Modules; if ( Module ) Module->DisplayInfo( this ); - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); } @@ -131,21 +139,3 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoin m_Modules->Draw( aPanel, aDC, GR_COPY ); } } - -/* dummy_functions: - * - * These functions are used in some classes. - * they are useful in Pcbnew, but have no meaning or are never used - * in CvPcb or GerbView. - * but they must exist because they appear in some classes. - * Do nothing in CvPcb. - */ -TRACK* MarkTrace( BOARD* aPcb, - TRACK* aStartSegm, - int* aSegmCount, - int* aTrackLen, - int* aLenDie, - bool aReorder ) -{ - return NULL; -} diff --git a/demos/ecc83/ecc83-pp.brd b/demos/ecc83/ecc83-pp.brd index 4804196fc8..c66347fe6d 100644 --- a/demos/ecc83/ecc83-pp.brd +++ b/demos/ecc83/ecc83-pp.brd @@ -1,788 +1,1863 @@ -PCBNEW-BOARD Version 1 date 27/8/2008-06:26:52 - -$GENERAL -LayerCount 2 -Ly 1FFF8001 -Links 20 -NoConn 0 -Di 47940 35674 66810 52560 -Ndraw 4 -Ntrack 74 -Nzone 0 -Nmodule 15 -Nnets 9 -$EndGENERAL - -$SHEETDESCR -Sheet A4 11700 8267 -Title "" -Date "27 aug 2008" -Rev "" -Comp "" -Comment1 "" -Comment2 "" -Comment3 "" -Comment4 "" -$EndSHEETDESCR - -$SETUP -InternalUnit 0.000100 INCH -UserGridSize 0.010000 0.010000 mm -ZoneGridSize 250 -Layers 2 -Layer[0] Cuivre signal -Layer[15] Composant signal -TrackWidth 340 -TrackWidthHistory 340 -TrackClearence 60 -ZoneClearence 150 -DrawSegmWidth 150 -EdgeSegmWidth 150 -ViaSize 450 -ViaDrill 250 -ViaSizeHistory 450 -MicroViaSize 200 -MicroViaDrill 80 -MicroViasAllowed 0 -TextPcbWidth 120 -TextPcbSize 600 800 -EdgeModWidth 150 -TextModSize 600 600 -TextModWidth 120 -PadSize 1100 550 -PadDrill 760 -AuxiliaryAxisOrg 0 0 -$EndSETUP - -$EQUIPOT -Na 0 "" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 1 "N-000001" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 2 "N-000004" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 3 "N-000005" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 4 "N-000007" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 5 "N-000008" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 6 "N-000009" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 7 "N-000002" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 8 "GND" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 9 "N-000006" -St ~ -$EndEQUIPOT -$MODULE 1pin -Po 50000 51000 0 15 00200000 454CC09B ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC09B -AR -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 65000 51000 0 15 00200000 454CC096 ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC096 -AR -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 65000 37000 0 15 00200000 454CC090 ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC090 -AR -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 50000 37000 0 15 00200000 454CC08A ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC08A -AR -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE ECC-83-1 -Po 58750 44750 0 15 454CBC05 48B4F266 ~~ -Li ECC-83-1 -Sc 48B4F266 -AR /48B4F266 -Op 0 0 0 -T0 500 -4500 600 600 0 120 N V 21 "U1" -T1 0 4500 600 600 0 120 N V 21 "ECC81_83" -DC 0 0 4000 500 150 21 -$PAD -Sh "1" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 1 "N-000001" -Po 1360 1872 -$EndPAD -$PAD -Sh "2" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 2 "N-000004" -Po 2208 720 -$EndPAD -$PAD -Sh "3" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 3 "N-000005" -Po 2208 -720 -$EndPAD -$PAD -Sh "4" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 4 "N-000007" -Po 1360 -1872 -$EndPAD -$PAD -Sh "5" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 4 "N-000007" -Po 0 -2320 -$EndPAD -$PAD -Sh "6" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 5 "N-000008" -Po -1360 -1872 -$EndPAD -$PAD -Sh "7" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 1 "N-000001" -Po -2208 -720 -$EndPAD -$PAD -Sh "8" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 6 "N-000009" -Po -2208 704 -$EndPAD -$PAD -Sh "9" C 800 800 0 0 0 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 7 "N-000002" -Po -1360 1872 -$EndPAD -$SHAPE3D -Na "valves/ecc83.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE ECC-83-1 -$MODULE R3 -Po 59000 38500 1800 15 00200000 4549F39D ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F39D -AR /4549F39D -Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 "R2" -T1 0 0 550 500 1800 80 N I 21 "1.5K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 3 "N-000005" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 64750 47750 2700 15 00200000 4549F3A2 ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F3A2 -AR /4549F3A2 -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R4" -T1 0 0 550 500 2700 80 N I 21 "47K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "N-000004" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 52000 47500 900 15 00200000 4549F3AD ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F3AD -AR /4549F3AD -Op 0 A 0 -T0 0 0 550 500 900 80 N V 21 "R3" -T1 0 0 550 500 900 80 N I 21 "100K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 9 "N-000006" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 53500 44000 2700 15 00200000 4549F38A ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F38A -AR /4549F38A -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R1" -T1 0 0 550 500 2700 80 N I 21 "1.5K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 1 "N-000001" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 6 "N-000009" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE C2V10 -Po 54500 38750 900 15 41854742 4549F4BE ~~ -Li C2V10 -Cd Condensateur polarise -Kw CP -Sc 4549F4BE -AR /4549F4BE -Op 0 0 0 -T0 0 1000 500 500 900 100 N V 21 "C1" -T1 0 -1000 500 500 900 100 N V 21 "10uF" -DC 0 0 1900 -1100 120 21 -$PAD -Sh "1" R 700 700 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 5 "N-000008" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 700 700 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "discret/c_vert_c2v10.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE C2V10 -$MODULE C2 -Po 53500 48000 900 15 00200000 4549F3BE ~~ -Li C2 -Cd Condensateur = 2 pas -Kw C -Sc 4549F3BE -AR /4549F3BE -Op 0 0 0 -T0 0 0 400 400 900 80 N V 21 "C2" -T1 0 0 400 400 900 80 N I 21 "680nF" -DS -1400 -400 1400 -400 120 21 -DS 1400 -400 1400 400 120 21 -DS 1400 400 -1400 400 120 21 -DS -1400 400 -1400 -400 120 21 -DS -1400 -200 -1200 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 9 "N-000006" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 6 "N-000009" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "discret/capa_2pas_5x5mm.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE C2 -$MODULE bornier2 -Po 50000 40500 900 15 3EC0ED69 4549F4A5 ~~ -Li bornier2 -Cd Bornier d'alimentation 2 pins -Kw DEV -Sc 4549F4A5 -AR /4549F4A5 -Op 0 0 0 -T0 0 -2000 600 600 900 120 N V 21 "P3" -T1 0 2000 600 600 900 120 N V 21 "POWER" -DS 2000 1000 -2000 1000 120 21 -DS 2000 1500 2000 -1500 120 21 -DS 2000 -1500 -2000 -1500 120 21 -DS -2000 -1500 -2000 1500 120 21 -DS -2000 1500 2000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 900 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 5 "N-000008" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 900 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier2 -$MODULE bornier2 -Po 64750 43500 2700 15 3EC0ED69 4549F464 ~~ -Li bornier2 -Cd Bornier d'alimentation 2 pins -Kw DEV -Sc 4549F464 -AR /4549F464 -Op 0 0 0 -T0 0 -2000 600 600 2700 120 N V 21 "P1" -T1 0 2000 600 600 2700 120 N V 21 "IN" -DS 2000 1000 -2000 1000 120 21 -DS 2000 1500 2000 -1500 120 21 -DS 2000 -1500 -2000 -1500 120 21 -DS -2000 -1500 -2000 1500 120 21 -DS -2000 1500 2000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 2 "N-000004" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier2 -$MODULE bornier2 -Po 50000 46000 900 15 3EC0ED69 4549F46C ~~ -Li bornier2 -Cd Bornier d'alimentation 2 pins -Kw DEV -Sc 4549F46C -AR /4549F46C -Op 0 0 0 -T0 0 -2000 600 600 900 120 N V 21 "P2" -T1 0 2000 600 600 900 120 N V 21 "OUT" -DS 2000 1000 -2000 1000 120 21 -DS 2000 1500 2000 -1500 120 21 -DS 2000 -1500 -2000 -1500 120 21 -DS -2000 -1500 -2000 1500 120 21 -DS -2000 1500 2000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 900 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 9 "N-000006" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 900 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 8 "GND" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier2 -$MODULE bornier2 -Po 58250 51000 1800 15 3EC0ED69 456A8ACC ~~ -Li bornier2 -Cd Bornier d'alimentation 2 pins -Kw DEV -Sc 456A8ACC -AR /456A8ACC -Op 0 0 0 -T0 0 -2000 600 600 1800 120 N V 21 "P4" -T1 0 2000 600 600 1800 120 N V 21 "CONN_2" -DS 2000 1000 -2000 1000 120 21 -DS 2000 1500 2000 -1500 120 21 -DS 2000 -1500 -2000 -1500 120 21 -DS -2000 -1500 -2000 1500 120 21 -DS -2000 1500 2000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 1800 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 4 "N-000007" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 1800 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 7 "N-000002" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier2 -$DRAWSEGMENT -Po 0 48750 52250 66250 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 66250 35750 48750 35750 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 66250 35750 66250 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 48750 35750 48750 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$TRACK -Po 0 53500 42500 53250 42500 340 -1 -De 0 0 1 0 800 -Po 0 53250 48000 53750 48000 340 -1 -De 0 0 1 0 0 -Po 0 53750 48000 54750 49000 340 -1 -De 0 0 1 0 0 -Po 0 54750 49000 54750 51250 340 -1 -De 0 0 1 0 0 -Po 0 54750 51250 55250 51750 340 -1 -De 0 0 1 0 0 -Po 0 52750 43000 52750 47500 340 -1 -De 0 0 1 0 0 -Po 0 53250 42500 52750 43000 340 -1 -De 0 0 1 0 0 -Po 0 53500 42500 54250 42500 340 -1 -De 0 0 1 0 800 -Po 0 52750 47500 53250 48000 340 -1 -De 0 0 1 0 0 -Po 0 55250 51750 55500 52000 340 -1 -De 0 0 1 0 0 -Po 0 61000 47762 61000 47762 340 -1 -De 0 0 1 0 0 -Po 0 61000 51250 61000 47762 340 -1 -De 0 0 1 0 0 -Po 0 60250 52000 61000 51250 340 -1 -De 0 0 1 0 0 -Po 0 55500 52000 60250 52000 340 -1 -De 0 0 1 0 0 -Po 0 56542 44030 55780 44030 340 -1 -De 0 0 1 0 800 -Po 0 55780 44030 54250 42500 340 -1 -De 0 0 1 0 0 -Po 0 61000 47762 61000 47512 340 -1 -De 0 0 1 0 0 -Po 0 61000 47512 60110 46622 340 -1 -De 0 0 1 0 400 -Po 0 61970 45470 62750 46250 340 -1 -De 0 0 2 0 0 -Po 0 64750 46250 64750 44500 340 -1 -De 0 0 2 0 C00 -Po 0 60958 45470 61970 45470 340 -1 -De 0 0 2 0 800 -Po 0 62750 46250 64750 46250 340 -1 -De 0 0 2 0 400 -Po 0 60500 38500 62000 38500 340 -1 -De 0 0 3 0 800 -Po 0 62000 38500 62750 39250 340 -1 -De 0 0 3 0 0 -Po 0 60958 44030 60958 43792 340 -1 -De 0 0 3 0 800 -Po 0 62750 42000 62750 39250 340 -1 -De 0 0 3 0 0 -Po 0 60958 43792 62750 42000 340 -1 -De 0 0 3 0 0 -Po 0 59000 50750 59250 51000 340 -1 -De 0 0 4 0 400 -Po 0 59000 43750 59000 50750 340 -1 -De 0 0 4 0 0 -Po 0 58750 43500 59000 43750 340 -1 -De 0 0 4 0 0 -Po 0 58750 42430 59662 42430 340 -1 -De 0 0 4 0 800 -Po 0 59662 42430 60110 42878 340 -1 -De 0 0 4 0 400 -Po 0 58750 42430 58750 43500 340 -1 -De 0 0 4 0 800 -Po 0 50000 41500 52000 41500 340 -1 -De 0 0 5 0 800 -Po 0 52000 41500 53250 40250 340 -1 -De 0 0 5 0 0 -Po 0 57390 42878 57390 40890 340 -1 -De 0 0 5 0 800 -Po 0 56250 39750 54500 39750 340 -1 -De 0 0 5 0 400 -Po 0 57390 40890 56250 39750 340 -1 -De 0 0 5 0 0 -Po 0 54500 39750 53750 39750 340 -1 -De 0 0 5 0 800 -Po 0 53750 39750 53250 40250 340 -1 -De 0 0 5 0 0 -Po 0 56296 45454 54750 47000 340 -1 -De 0 0 6 0 0 -Po 0 53500 47000 53500 45500 340 -1 -De 0 0 6 0 C00 -Po 0 53500 47000 54750 47000 340 -1 -De 0 0 6 0 800 -Po 0 56542 45454 56296 45454 340 -1 -De 0 0 6 0 800 -Po 0 57390 50860 57250 51000 340 -1 -De 0 0 7 0 400 -Po 0 57390 46622 57390 50860 340 -1 -De 0 0 7 0 800 -Po 0 65750 43000 65750 48000 340 -1 -De 0 0 8 0 0 -Po 0 64750 49000 65750 48000 340 -1 -De 0 0 8 0 0 -Po 0 64750 49250 64750 49000 340 -1 -De 0 0 8 0 800 -Po 0 56000 37500 57500 37500 340 -1 -De 0 0 8 0 0 -Po 0 57500 37500 58500 37500 340 -1 -De 0 0 8 0 0 -Po 0 58500 37500 63000 37500 340 -1 -De 0 0 8 0 0 -Po 0 63000 37500 64750 39250 340 -1 -De 0 0 8 0 0 -Po 0 64750 39250 64750 42500 340 -1 -De 0 0 8 0 400 -Po 0 50000 39500 51000 39500 340 -1 -De 0 0 8 0 800 -Po 0 49000 40250 49000 44000 340 -1 -De 0 0 8 0 0 -Po 0 51000 45000 50000 45000 340 -1 -De 0 0 8 0 400 -Po 0 50000 45000 49000 44000 340 -1 -De 0 0 8 0 800 -Po 0 50000 39500 49750 39500 340 -1 -De 0 0 8 0 800 -Po 0 49750 39500 49000 40250 340 -1 -De 0 0 8 0 0 -Po 0 64750 42500 65250 42500 340 -1 -De 0 0 8 0 800 -Po 0 65250 42500 65750 43000 340 -1 -De 0 0 8 0 0 -Po 0 52000 46000 51000 45000 340 -1 -De 0 0 8 0 800 -Po 0 54500 37750 55000 38250 340 -1 -De 0 0 8 0 800 -Po 0 57250 38250 57500 38500 340 -1 -De 0 0 8 0 400 -Po 0 55000 38250 57250 38250 340 -1 -De 0 0 8 0 0 -Po 0 54500 37750 54750 37500 340 -1 -De 0 0 8 0 800 -Po 0 54750 37500 56000 37500 340 -1 -De 0 0 8 0 0 -Po 0 51000 39500 52750 37750 340 -1 -De 0 0 8 0 0 -Po 0 52750 37750 54500 37750 340 -1 -De 0 0 8 0 400 -Po 0 52000 49000 53500 49000 340 -1 -De 0 0 9 0 C00 -Po 0 52000 49000 52000 47750 340 -1 -De 0 0 9 0 800 -Po 0 51250 47000 50000 47000 340 -1 -De 0 0 9 0 400 -Po 0 52000 47750 51250 47000 340 -1 -De 0 0 9 0 0 -$EndTRACK -$ZONE -$EndZONE -$EndBOARD +PCBNEW-BOARD Version 1 date 18/12/2011 08:41:20 + +# Created by Pcbnew(2011-12-16 BZR 3311)-testing + +$GENERAL +encoding utf-8 +LayerCount 2 +Ly 1FFF8001 +EnabledLayers 1FFF8001 +Links 20 +NoConn 0 +Di 47990 35400 67260 53510 +Ndraw 4 +Ntrack 75 +Nzone 0 +BoardThickness 630 +Nmodule 15 +Nnets 10 +$EndGENERAL + +$SHEETDESCR +Sheet A4 11700 8267 +Title "" +Date "18 dec 2011" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndSHEETDESCR + +$SETUP +InternalUnit 0.000100 INCH +Layers 2 +Layer[0] Cuivre signal +Layer[15] Composant signal +TrackWidth 340 +TrackClearence 150 +ZoneClearence 250 +TrackMinWidth 100 +DrawSegmWidth 150 +EdgeSegmWidth 150 +ViaSize 350 +ViaDrill 250 +ViaMinSize 350 +ViaMinDrill 200 +MicroViaSize 200 +MicroViaDrill 50 +MicroViasAllowed 0 +MicroViaMinSize 200 +MicroViaMinDrill 50 +TextPcbWidth 120 +TextPcbSize 600 800 +EdgeModWidth 150 +TextModSize 600 600 +TextModWidth 120 +PadSize 1100 550 +PadDrill 760 +Pad2MaskClearance 100 +AuxiliaryAxisOrg 0 0 +PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions true) (excludeedgelayer true) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 2) (pscolor true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) +$EndSETUP + +$EQUIPOT +Na 0 "" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 1 "GND" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 2 "N-000001" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 3 "N-000002" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 4 "N-000004" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 5 "N-000005" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 6 "N-000006" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 7 "N-000007" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 8 "N-000008" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 9 "N-000009" +St ~ +$EndEQUIPOT +$NCLASS +Name "Default" +Desc "Ceci est la Netclass par défaut" +Clearance 150 +TrackWidth 340 +ViaDia 350 +ViaDrill 250 +uViaDia 200 +uViaDrill 50 +AddNet "" +AddNet "GND" +AddNet "N-000001" +AddNet "N-000002" +AddNet "N-000004" +AddNet "N-000005" +AddNet "N-000006" +AddNet "N-000007" +AddNet "N-000008" +AddNet "N-000009" +$EndNCLASS +$MODULE 1pin +Po 50000 51000 0 15 00200000 454CC09B ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC09B +AR 1pin +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 65000 51000 0 15 00200000 454CC096 ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC096 +AR 1pin +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 65000 37000 0 15 00200000 454CC090 ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC090 +AR 1pin +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 50000 37000 0 15 00200000 454CC08A ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC08A +AR 1pin +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE ECC-83-1 +Po 58750 44750 0 15 454CBC05 48B4F266 ~~ +Li ECC-83-1 +Sc 48B4F266 +AR /48B4F266 +Op 0 0 0 +T0 500 -4500 600 600 0 120 N V 21 N "U1" +T1 0 4500 600 600 0 120 N V 21 N "ECC81_83" +DC 0 0 4000 500 150 21 +$PAD +Sh "1" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po 1360 1872 +$EndPAD +$PAD +Sh "2" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 4 "N-000004" +Po 2208 720 +$EndPAD +$PAD +Sh "3" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 5 "N-000005" +Po 2208 -720 +$EndPAD +$PAD +Sh "4" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 7 "N-000007" +Po 1360 -1872 +$EndPAD +$PAD +Sh "5" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 7 "N-000007" +Po 0 -2320 +$EndPAD +$PAD +Sh "6" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 8 "N-000008" +Po -1360 -1872 +$EndPAD +$PAD +Sh "7" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po -2208 -720 +$EndPAD +$PAD +Sh "8" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 9 "N-000009" +Po -2208 704 +$EndPAD +$PAD +Sh "9" C 800 800 0 0 0 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 3 "N-000002" +Po -1360 1872 +$EndPAD +$SHAPE3D +Na "valves/ecc83.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE ECC-83-1 +$MODULE R3 +Po 59000 38500 1800 15 00200000 4549F39D ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F39D +AR /4549F39D +Op 0 A 0 +T0 0 0 550 500 1800 80 N V 21 N "R2" +T1 0 0 550 500 1800 80 N I 21 N "1.5K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 5 "N-000005" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 64750 47750 2700 15 00200000 4549F3A2 ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F3A2 +AR /4549F3A2 +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R4" +T1 0 0 550 500 2700 80 N I 21 N "47K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 4 "N-000004" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 52750 48250 900 15 00200000 4549F3AD ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F3AD +AR /4549F3AD +Op 0 A 0 +T0 0 0 550 500 900 80 N V 21 N "R3" +T1 0 0 550 500 900 80 N I 21 N "100K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 6 "N-000006" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 53500 44000 2700 15 00200000 4549F38A ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F38A +AR /4549F38A +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R1" +T1 0 0 550 500 2700 80 N I 21 N "1.5K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "N-000009" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE C2V10 +Po 54500 38750 900 15 41854742 4549F4BE ~~ +Li C2V10 +Cd Condensateur polarise +Kw CP +Sc 4549F4BE +AR /4549F4BE +Op 0 0 0 +T0 0 1000 500 500 900 100 N V 21 N "C1" +T1 0 -1000 500 500 900 100 N V 21 N "10uF" +DC 0 0 1900 -1100 120 21 +$PAD +Sh "1" R 700 700 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 8 "N-000008" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 700 700 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "discret/c_vert_c2v10.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE C2V10 +$MODULE C2 +Po 54000 48250 900 15 00200000 4549F3BE ~~ +Li C2 +Cd Condensateur = 2 pas +Kw C +Sc 4549F3BE +AR /4549F3BE +Op 0 0 0 +T0 0 0 400 400 900 80 N V 21 N "C2" +T1 0 0 400 400 900 80 N I 21 N "680nF" +DS -1400 -400 1400 -400 120 21 +DS 1400 -400 1400 400 120 21 +DS 1400 400 -1400 400 120 21 +DS -1400 400 -1400 -400 120 21 +DS -1400 -200 -1200 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 6 "N-000006" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "N-000009" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "discret/capa_2pas_5x5mm.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE C2 +$MODULE bornier2 +Po 50500 40500 900 15 3EC0ED69 4549F4A5 ~~ +Li bornier2 +Cd Bornier d'alimentation 2 pins +Kw DEV +Sc 4549F4A5 +AR /4549F4A5 +Op 0 0 0 +T0 0 -2000 600 600 900 120 N V 21 N "P3" +T1 0 2000 600 600 900 120 N V 21 N "POWER" +DS 2000 1000 -2000 1000 120 21 +DS 2000 1500 2000 -1500 120 21 +DS 2000 -1500 -2000 -1500 120 21 +DS -2000 -1500 -2000 1500 120 21 +DS -2000 1500 2000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 900 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 8 "N-000008" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 900 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier2 +$MODULE bornier2 +Po 64750 43500 2700 15 3EC0ED69 4549F464 ~~ +Li bornier2 +Cd Bornier d'alimentation 2 pins +Kw DEV +Sc 4549F464 +AR /4549F464 +Op 0 0 0 +T0 0 -2000 600 600 2700 120 N V 21 N "P1" +T1 0 2000 600 600 2700 120 N V 21 N "IN" +DS 2000 1000 -2000 1000 120 21 +DS 2000 1500 2000 -1500 120 21 +DS 2000 -1500 -2000 -1500 120 21 +DS -2000 -1500 -2000 1500 120 21 +DS -2000 1500 2000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 4 "N-000004" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier2 +$MODULE bornier2 +Po 50500 46000 900 15 3EC0ED69 4549F46C ~~ +Li bornier2 +Cd Bornier d'alimentation 2 pins +Kw DEV +Sc 4549F46C +AR /4549F46C +Op 0 0 0 +T0 0 -2000 600 600 900 120 N V 21 N "P2" +T1 0 2000 600 600 900 120 N V 21 N "OUT" +DS 2000 1000 -2000 1000 120 21 +DS 2000 1500 2000 -1500 120 21 +DS 2000 -1500 -2000 -1500 120 21 +DS -2000 -1500 -2000 1500 120 21 +DS -2000 1500 2000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 900 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 6 "N-000006" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 900 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier2 +$MODULE bornier2 +Po 58250 51000 1800 15 3EC0ED69 456A8ACC ~~ +Li bornier2 +Cd Bornier d'alimentation 2 pins +Kw DEV +Sc 456A8ACC +AR /456A8ACC +Op 0 0 0 +T0 0 -2000 600 600 1800 120 N V 21 N "P4" +T1 0 2000 600 600 1800 120 N V 21 N "CONN_2" +DS 2000 1000 -2000 1000 120 21 +DS 2000 1500 2000 -1500 120 21 +DS 2000 -1500 -2000 -1500 120 21 +DS -2000 -1500 -2000 1500 120 21 +DS -2000 1500 2000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 1800 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 7 "N-000007" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 1800 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 3 "N-000002" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier2 +$DRAWSEGMENT +Po 0 48750 52250 66250 52250 50 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 66250 35750 48750 35750 50 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 66250 35750 66250 52250 50 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 48750 35750 48750 52250 50 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$TRACK +Po 0 58500 37500 63000 37500 340 -1 +De 0 0 1 0 0 +Po 0 57500 37500 58500 37500 340 -1 +De 0 0 1 0 0 +Po 0 56000 37500 57500 37500 340 -1 +De 0 0 1 0 0 +Po 0 64750 49250 64750 49000 340 -1 +De 0 0 1 0 800 +Po 0 64750 49000 65750 48000 340 -1 +De 0 0 1 0 0 +Po 0 65750 43000 65750 48000 340 -1 +De 0 0 1 0 0 +Po 0 50500 45000 49500 44333 340 -1 +De 0 0 1 0 800 +Po 0 51500 45000 52000 45500 340 -1 +De 0 0 1 0 0 +Po 0 52000 45500 52000 46000 340 -1 +De 0 0 1 0 0 +Po 0 52000 46000 52750 46750 340 -1 +De 0 0 1 0 0 +Po 0 50500 45000 51500 45000 340 -1 +De 0 0 1 0 0 +Po 0 57500 38500 57500 37500 340 -1 +De 0 0 1 0 0 +Po 0 52750 37750 54500 37750 340 -1 +De 0 0 1 0 400 +Po 0 51000 39500 52750 37750 340 -1 +De 0 0 1 0 0 +Po 0 54750 37500 56000 37500 340 -1 +De 0 0 1 0 0 +Po 0 54500 37750 54750 37500 340 -1 +De 0 0 1 0 800 +Po 0 65250 42500 65750 43000 340 -1 +De 0 0 1 0 0 +Po 0 64750 42500 65250 42500 340 -1 +De 0 0 1 0 800 +Po 0 49750 39500 49500 39750 340 -1 +De 0 0 1 0 0 +Po 0 50500 39500 49750 39500 340 -1 +De 0 0 1 0 800 +Po 0 49500 39750 49500 44333 340 -1 +De 0 0 1 0 0 +Po 0 50500 39500 51000 39500 340 -1 +De 0 0 1 0 800 +Po 0 64750 39250 64750 42500 340 -1 +De 0 0 1 0 400 +Po 0 63000 37500 64750 39250 340 -1 +De 0 0 1 0 0 +Po 0 60350 51900 61000 51250 340 -1 +De 0 0 2 0 0 +Po 0 55400 51900 60350 51900 340 -1 +De 0 0 2 0 0 +Po 0 56542 44030 55780 44030 340 -1 +De 0 0 2 0 800 +Po 0 55780 44030 54250 42500 340 -1 +De 0 0 2 0 0 +Po 0 61000 47762 61000 47512 340 -1 +De 0 0 2 0 0 +Po 0 61000 47512 60110 46622 340 -1 +De 0 0 2 0 400 +Po 0 53700 48000 53350 47650 340 -1 +De 0 0 2 0 0 +Po 0 53350 47650 53350 46350 340 -1 +De 0 0 2 0 0 +Po 0 53350 46350 52750 45750 340 -1 +De 0 0 2 0 0 +Po 0 53750 48000 53700 48000 340 -1 +De 0 0 2 0 0 +Po 0 53750 48000 54750 49000 340 -1 +De 0 0 2 0 0 +Po 0 54750 49000 54750 51250 340 -1 +De 0 0 2 0 0 +Po 0 54750 51250 55250 51750 340 -1 +De 0 0 2 0 0 +Po 0 53500 42500 53250 42500 340 -1 +De 0 0 2 0 800 +Po 0 52750 43000 52750 45750 340 -1 +De 0 0 2 0 0 +Po 0 53250 42500 52750 43000 340 -1 +De 0 0 2 0 0 +Po 0 53500 42500 54250 42500 340 -1 +De 0 0 2 0 800 +Po 0 55250 51750 55400 51900 340 -1 +De 0 0 2 0 0 +Po 0 61000 47762 61000 47762 340 -1 +De 0 0 2 0 0 +Po 0 61000 51250 61000 47762 340 -1 +De 0 0 2 0 0 +Po 0 57390 50860 57250 51000 340 -1 +De 0 0 3 0 400 +Po 0 57390 46622 57390 50860 340 -1 +De 0 0 3 0 800 +Po 0 62750 46250 64750 46250 340 -1 +De 0 0 4 0 400 +Po 0 60958 45470 61970 45470 340 -1 +De 0 0 4 0 800 +Po 0 64750 46250 64750 44500 340 -1 +De 0 0 4 0 C00 +Po 0 61970 45470 62750 46250 340 -1 +De 0 0 4 0 0 +Po 0 60958 44030 60958 43792 340 -1 +De 0 0 5 0 800 +Po 0 62750 42000 62750 39250 340 -1 +De 0 0 5 0 0 +Po 0 60958 43792 62750 42000 340 -1 +De 0 0 5 0 0 +Po 0 62000 38500 62750 39250 340 -1 +De 0 0 5 0 0 +Po 0 60500 38500 62000 38500 340 -1 +De 0 0 5 0 800 +Po 0 54000 49250 52750 49250 340 -1 +De 0 0 6 0 0 +Po 0 52750 49750 52750 49250 340 -1 +De 0 0 6 0 0 +Po 0 52750 49250 50500 47000 340 -1 +De 0 0 6 0 0 +Po 0 59000 50750 59250 51000 340 -1 +De 0 0 7 0 400 +Po 0 59000 43750 59000 50750 340 -1 +De 0 0 7 0 0 +Po 0 58750 43500 59000 43750 340 -1 +De 0 0 7 0 0 +Po 0 58750 42430 59662 42430 340 -1 +De 0 0 7 0 800 +Po 0 59662 42430 60110 42878 340 -1 +De 0 0 7 0 400 +Po 0 58750 42430 58750 43500 340 -1 +De 0 0 7 0 800 +Po 0 53750 39750 53250 40250 340 -1 +De 0 0 8 0 0 +Po 0 54500 39750 53750 39750 340 -1 +De 0 0 8 0 800 +Po 0 57390 40890 56250 39750 340 -1 +De 0 0 8 0 0 +Po 0 56250 39750 54500 39750 340 -1 +De 0 0 8 0 400 +Po 0 57390 42878 57390 40890 340 -1 +De 0 0 8 0 800 +Po 0 52000 41500 53250 40250 340 -1 +De 0 0 8 0 0 +Po 0 50500 41500 52000 41500 340 -1 +De 0 0 8 0 800 +Po 0 54000 47250 54000 45500 340 -1 +De 0 0 9 0 0 +Po 0 53500 45500 54000 45500 340 -1 +De 0 0 9 0 0 +Po 0 54000 45500 56496 45500 340 -1 +De 0 0 9 0 0 +Po 0 56496 45500 56542 45454 340 -1 +De 0 0 9 0 0 +$EndTRACK +$ZONE +$EndZONE +$CZONE_OUTLINE +ZInfo 4EED97A2 1 "GND" +ZLayer 0 +ZAux 4 E +ZClearance 250 T +ZMinThickness 150 +ZOptions 0 32 F 100 197 +ZSmoothing 0 0 +ZCorner 66000 52000 0 +ZCorner 66000 36000 0 +ZCorner 49000 36000 0 +ZCorner 49000 52000 1 +$POLYSCORNERS +65900 50322 0 0 +65876 50286 0 0 +65721 50129 0 0 +65538 50006 0 0 +65335 49920 0 0 +65203 49893 0 0 +65203 49247 0 0 +65193 49159 0 0 +65167 49075 0 0 +65128 49003 0 0 +65055 48978 0 0 +65022 49011 0 0 +65022 48945 0 0 +64997 48872 0 0 +64919 48831 0 0 +64835 48806 0 0 +64747 48797 0 0 +64659 48807 0 0 +64575 48833 0 0 +64503 48872 0 0 +64478 48945 0 0 +64750 49217 0 0 +65022 48945 0 0 +65022 49011 0 0 +64783 49250 0 0 +65055 49522 0 0 +65128 49497 0 0 +65169 49419 0 0 +65194 49335 0 0 +65203 49247 0 0 +65203 49893 0 0 +65118 49876 0 0 +65022 49875 0 0 +65022 49555 0 0 +64750 49283 0 0 +64717 49316 0 0 +64717 49250 0 0 +64445 48978 0 0 +64372 49003 0 0 +64331 49081 0 0 +64306 49165 0 0 +64297 49253 0 0 +64307 49341 0 0 +64333 49425 0 0 +64372 49497 0 0 +64445 49522 0 0 +64717 49250 0 0 +64717 49316 0 0 +64478 49555 0 0 +64503 49628 0 0 +64581 49669 0 0 +64665 49694 0 0 +64753 49703 0 0 +64841 49693 0 0 +64925 49667 0 0 +64997 49628 0 0 +65022 49555 0 0 +65022 49875 0 0 +64898 49874 0 0 +64681 49916 0 0 +64477 49998 0 0 +64292 50119 0 0 +64134 50273 0 0 +64010 50455 0 0 +63923 50658 0 0 +63877 50874 0 0 +63874 51094 0 0 +63913 51311 0 0 +63994 51516 0 0 +64114 51702 0 0 +64267 51861 0 0 +64323 51900 0 0 +61050 51900 0 0 +61346 51604 0 0 +61350 51600 0 0 +61389 51552 0 0 +61408 51530 0 0 +61408 51528 0 0 +61411 51526 0 0 +61434 51482 0 0 +61455 51445 0 0 +61455 51441 0 0 +61457 51440 0 0 +61468 51401 0 0 +61484 51353 0 0 +61484 51350 0 0 +61485 51348 0 0 +61489 51307 0 0 +61495 51257 0 0 +61495 51252 0 0 +61495 51250 0 0 +61495 47769 0 0 +61495 47765 0 0 +61495 47762 0 0 +61495 47517 0 0 +61495 47512 0 0 +61486 47421 0 0 +61486 47416 0 0 +61459 47328 0 0 +61458 47323 0 0 +61429 47270 0 0 +61415 47242 0 0 +61412 47238 0 0 +61406 47231 0 0 +61355 47166 0 0 +61351 47163 0 0 +61350 47162 0 0 +60833 46645 0 0 +60835 46551 0 0 +60807 46412 0 0 +60753 46280 0 0 +60675 46162 0 0 +60631 46118 0 0 +60733 46163 0 0 +60872 46193 0 0 +61014 46196 0 0 +61154 46172 0 0 +61286 46120 0 0 +61406 46044 0 0 +61489 45965 0 0 +61765 45965 0 0 +62396 46596 0 0 +62400 46600 0 0 +62448 46639 0 0 +62470 46658 0 0 +62471 46658 0 0 +62474 46661 0 0 +62517 46684 0 0 +62555 46705 0 0 +62558 46705 0 0 +62560 46707 0 0 +62599 46718 0 0 +62647 46734 0 0 +62649 46734 0 0 +62652 46735 0 0 +62689 46738 0 0 +62743 46745 0 0 +62749 46745 0 0 +62750 46745 0 0 +64412 46745 0 0 +64457 46776 0 0 +64564 46823 0 0 +64679 46848 0 0 +64796 46850 0 0 +64912 46830 0 0 +65022 46787 0 0 +65121 46724 0 0 +65206 46643 0 0 +65273 46547 0 0 +65321 46440 0 0 +65347 46325 0 0 +65349 46191 0 0 +65326 46076 0 0 +65281 45967 0 0 +65245 45912 0 0 +65245 45161 0 0 +65260 45152 0 0 +65377 45041 0 0 +65470 44909 0 0 +65536 44761 0 0 +65571 44604 0 0 +65574 44419 0 0 +65543 44260 0 0 +65481 44111 0 0 +65425 44026 0 0 +65425 42566 0 0 +65425 42434 0 0 +65424 41983 0 0 +65417 41950 0 0 +65404 41918 0 0 +65386 41890 0 0 +65361 41865 0 0 +65333 41846 0 0 +65302 41833 0 0 +65268 41826 0 0 +65234 41826 0 0 +64816 41825 0 0 +64773 41868 0 0 +64773 42477 0 0 +65382 42477 0 0 +65425 42434 0 0 +65425 42566 0 0 +65382 42523 0 0 +64773 42523 0 0 +64773 43132 0 0 +64816 43175 0 0 +65234 43174 0 0 +65268 43174 0 0 +65302 43167 0 0 +65333 43154 0 0 +65361 43135 0 0 +65386 43110 0 0 +65404 43082 0 0 +65417 43050 0 0 +65424 43017 0 0 +65425 42566 0 0 +65425 44026 0 0 +65392 43977 0 0 +65278 43862 0 0 +65144 43772 0 0 +64995 43709 0 0 +64836 43677 0 0 +64727 43675 0 0 +64727 43132 0 0 +64727 42523 0 0 +64727 42477 0 0 +64727 41868 0 0 +64684 41825 0 0 +64266 41826 0 0 +64232 41826 0 0 +64198 41833 0 0 +64167 41846 0 0 +64139 41865 0 0 +64114 41890 0 0 +64096 41918 0 0 +64083 41950 0 0 +64076 41983 0 0 +64075 42434 0 0 +64118 42477 0 0 +64727 42477 0 0 +64727 42523 0 0 +64118 42523 0 0 +64075 42566 0 0 +64076 43017 0 0 +64083 43050 0 0 +64096 43082 0 0 +64114 43110 0 0 +64139 43135 0 0 +64167 43154 0 0 +64198 43167 0 0 +64232 43174 0 0 +64266 43174 0 0 +64684 43175 0 0 +64727 43132 0 0 +64727 43675 0 0 +64675 43675 0 0 +64516 43706 0 0 +64366 43766 0 0 +64231 43855 0 0 +64116 43968 0 0 +64024 44101 0 0 +63961 44250 0 0 +63927 44408 0 0 +63925 44569 0 0 +63954 44728 0 0 +64014 44879 0 0 +64101 45014 0 0 +64214 45131 0 0 +64255 45159 0 0 +64255 45755 0 0 +62955 45755 0 0 +62324 45124 0 0 +62320 45120 0 0 +62250 45062 0 0 +62246 45058 0 0 +62185 45026 0 0 +62165 45015 0 0 +62162 45014 0 0 +62160 45013 0 0 +62121 45001 0 0 +62073 44986 0 0 +62070 44985 0 0 +62068 44985 0 0 +62030 44981 0 0 +61977 44975 0 0 +61971 44975 0 0 +61970 44975 0 0 +61488 44975 0 0 +61422 44909 0 0 +61305 44829 0 0 +61173 44774 0 0 +61051 44749 0 0 +61154 44732 0 0 +61286 44680 0 0 +61406 44604 0 0 +61509 44506 0 0 +61591 44390 0 0 +61649 44260 0 0 +61681 44121 0 0 +61683 43959 0 0 +61655 43820 0 0 +61647 43802 0 0 +63096 42354 0 0 +63100 42350 0 0 +63139 42302 0 0 +63158 42280 0 0 +63158 42278 0 0 +63161 42276 0 0 +63184 42232 0 0 +63205 42195 0 0 +63205 42191 0 0 +63207 42190 0 0 +63218 42151 0 0 +63234 42103 0 0 +63234 42100 0 0 +63235 42098 0 0 +63239 42057 0 0 +63245 42007 0 0 +63245 42002 0 0 +63245 42000 0 0 +63245 39255 0 0 +63245 39250 0 0 +63236 39159 0 0 +63236 39154 0 0 +63209 39066 0 0 +63208 39061 0 0 +63179 39008 0 0 +63165 38980 0 0 +63162 38976 0 0 +63156 38969 0 0 +63105 38904 0 0 +63101 38901 0 0 +63100 38900 0 0 +62354 38154 0 0 +62350 38150 0 0 +62280 38092 0 0 +62276 38088 0 0 +62215 38056 0 0 +62195 38045 0 0 +62192 38044 0 0 +62190 38043 0 0 +62151 38031 0 0 +62103 38016 0 0 +62100 38015 0 0 +62098 38015 0 0 +62060 38011 0 0 +62007 38005 0 0 +62001 38005 0 0 +62000 38005 0 0 +60837 38005 0 0 +60786 37970 0 0 +60678 37925 0 0 +60563 37901 0 0 +60445 37901 0 0 +60330 37923 0 0 +60221 37967 0 0 +60123 38031 0 0 +60039 38113 0 0 +59972 38210 0 0 +59926 38318 0 0 +59902 38433 0 0 +59900 38551 0 0 +59921 38666 0 0 +59965 38775 0 0 +60028 38874 0 0 +60110 38959 0 0 +60207 39026 0 0 +60314 39073 0 0 +60429 39098 0 0 +60546 39100 0 0 +60662 39080 0 0 +60772 39037 0 0 +60838 38995 0 0 +61795 38995 0 0 +62255 39455 0 0 +62255 41795 0 0 +60696 43353 0 0 +60635 43378 0 0 +60661 43354 0 0 +60743 43238 0 0 +60801 43108 0 0 +60833 42969 0 0 +60835 42807 0 0 +60807 42668 0 0 +60753 42536 0 0 +60675 42418 0 0 +60574 42317 0 0 +60457 42237 0 0 +60325 42182 0 0 +60186 42154 0 0 +60085 42153 0 0 +60016 42084 0 0 +60012 42080 0 0 +59942 42022 0 0 +59938 42018 0 0 +59877 41986 0 0 +59857 41975 0 0 +59854 41974 0 0 +59852 41973 0 0 +59813 41961 0 0 +59765 41946 0 0 +59762 41945 0 0 +59760 41945 0 0 +59722 41941 0 0 +59669 41935 0 0 +59663 41935 0 0 +59662 41935 0 0 +59280 41935 0 0 +59214 41869 0 0 +59097 41789 0 0 +58965 41734 0 0 +58826 41706 0 0 +58684 41705 0 0 +58544 41731 0 0 +58413 41784 0 0 +58294 41862 0 0 +58192 41962 0 0 +58112 42079 0 0 +58056 42210 0 0 +58026 42349 0 0 +58024 42491 0 0 +58032 42534 0 0 +57955 42418 0 0 +57953 42416 0 0 +57953 38497 0 0 +57943 38409 0 0 +57917 38325 0 0 +57878 38253 0 0 +57805 38228 0 0 +57772 38261 0 0 +57772 38195 0 0 +57747 38122 0 0 +57669 38081 0 0 +57585 38056 0 0 +57497 38047 0 0 +57409 38057 0 0 +57325 38083 0 0 +57253 38122 0 0 +57228 38195 0 0 +57500 38467 0 0 +57772 38195 0 0 +57772 38261 0 0 +57533 38500 0 0 +57805 38772 0 0 +57878 38747 0 0 +57919 38669 0 0 +57944 38585 0 0 +57953 38497 0 0 +57953 42416 0 0 +57885 42348 0 0 +57885 40896 0 0 +57885 40890 0 0 +57876 40799 0 0 +57876 40794 0 0 +57849 40706 0 0 +57848 40701 0 0 +57819 40648 0 0 +57805 40620 0 0 +57802 40616 0 0 +57789 40601 0 0 +57772 40579 0 0 +57772 38805 0 0 +57500 38533 0 0 +57467 38566 0 0 +57467 38500 0 0 +57195 38228 0 0 +57122 38253 0 0 +57081 38331 0 0 +57056 38415 0 0 +57047 38503 0 0 +57057 38591 0 0 +57083 38675 0 0 +57122 38747 0 0 +57195 38772 0 0 +57467 38500 0 0 +57467 38566 0 0 +57228 38805 0 0 +57253 38878 0 0 +57331 38919 0 0 +57415 38944 0 0 +57503 38953 0 0 +57591 38943 0 0 +57675 38917 0 0 +57747 38878 0 0 +57772 38805 0 0 +57772 40579 0 0 +57745 40545 0 0 +57741 40541 0 0 +57740 40540 0 0 +56604 39404 0 0 +56600 39400 0 0 +56530 39342 0 0 +56526 39338 0 0 +56465 39306 0 0 +56445 39295 0 0 +56442 39294 0 0 +56440 39293 0 0 +56401 39281 0 0 +56353 39266 0 0 +56350 39265 0 0 +56348 39265 0 0 +56310 39261 0 0 +56257 39255 0 0 +56251 39255 0 0 +56250 39255 0 0 +55140 39255 0 0 +55137 39247 0 0 +55102 39194 0 0 +55057 39149 0 0 +55027 39128 0 0 +55027 37749 0 0 +55016 37647 0 0 +54986 37548 0 0 +54939 37459 0 0 +54858 37425 0 0 +54825 37458 0 0 +54825 37392 0 0 +54791 37311 0 0 +54700 37263 0 0 +54601 37233 0 0 +54499 37223 0 0 +54397 37234 0 0 +54298 37264 0 0 +54209 37311 0 0 +54175 37392 0 0 +54500 37717 0 0 +54825 37392 0 0 +54825 37458 0 0 +54533 37750 0 0 +54858 38075 0 0 +54939 38041 0 0 +54987 37950 0 0 +55017 37851 0 0 +55027 37749 0 0 +55027 39128 0 0 +55005 39113 0 0 +54946 39089 0 0 +54884 39076 0 0 +54825 39076 0 0 +54825 38108 0 0 +54500 37783 0 0 +54467 37816 0 0 +54467 37750 0 0 +54142 37425 0 0 +54061 37459 0 0 +54013 37550 0 0 +53983 37649 0 0 +53973 37751 0 0 +53984 37853 0 0 +54014 37952 0 0 +54061 38041 0 0 +54142 38075 0 0 +54467 37750 0 0 +54467 37816 0 0 +54175 38108 0 0 +54209 38189 0 0 +54300 38237 0 0 +54399 38267 0 0 +54501 38277 0 0 +54603 38266 0 0 +54702 38236 0 0 +54791 38189 0 0 +54825 38108 0 0 +54825 39076 0 0 +54820 39076 0 0 +54118 39076 0 0 +54056 39088 0 0 +53997 39113 0 0 +53944 39148 0 0 +53899 39193 0 0 +53863 39245 0 0 +53858 39255 0 0 +53756 39255 0 0 +53750 39255 0 0 +53654 39264 0 0 +53589 39283 0 0 +53566 39290 0 0 +53563 39291 0 0 +53561 39292 0 0 +53506 39321 0 0 +53481 39335 0 0 +53479 39335 0 0 +53476 39338 0 0 +53436 39370 0 0 +53405 39395 0 0 +53401 39399 0 0 +53400 39400 0 0 +52904 39896 0 0 +52900 39900 0 0 +52899 39901 0 0 +51795 41005 0 0 +51324 41005 0 0 +51324 40968 0 0 +51312 40906 0 0 +51287 40847 0 0 +51252 40794 0 0 +51207 40749 0 0 +51177 40728 0 0 +51177 39504 0 0 +51165 39372 0 0 +51128 39245 0 0 +51066 39129 0 0 +51061 39121 0 0 +50965 39068 0 0 +50932 39101 0 0 +50932 39035 0 0 +50879 38939 0 0 +50762 38876 0 0 +50636 38837 0 0 +50504 38823 0 0 +50372 38835 0 0 +50245 38872 0 0 +50129 38934 0 0 +50121 38939 0 0 +50068 39035 0 0 +50500 39467 0 0 +50932 39035 0 0 +50932 39101 0 0 +50533 39500 0 0 +50965 39932 0 0 +51061 39879 0 0 +51124 39762 0 0 +51163 39636 0 0 +51177 39504 0 0 +51177 40728 0 0 +51155 40713 0 0 +51096 40689 0 0 +51034 40676 0 0 +50970 40676 0 0 +50932 40676 0 0 +50932 39965 0 0 +50500 39533 0 0 +50467 39566 0 0 +50467 39500 0 0 +50035 39068 0 0 +49939 39121 0 0 +49876 39238 0 0 +49837 39364 0 0 +49823 39496 0 0 +49835 39628 0 0 +49872 39755 0 0 +49934 39871 0 0 +49939 39879 0 0 +50035 39932 0 0 +50467 39500 0 0 +50467 39566 0 0 +50068 39965 0 0 +50121 40061 0 0 +50238 40124 0 0 +50364 40163 0 0 +50496 40177 0 0 +50628 40165 0 0 +50755 40128 0 0 +50871 40066 0 0 +50879 40061 0 0 +50932 39965 0 0 +50932 40676 0 0 +49968 40676 0 0 +49906 40688 0 0 +49847 40713 0 0 +49794 40748 0 0 +49749 40793 0 0 +49713 40845 0 0 +49689 40904 0 0 +49676 40966 0 0 +49676 41030 0 0 +49676 42032 0 0 +49688 42094 0 0 +49713 42153 0 0 +49748 42206 0 0 +49793 42251 0 0 +49845 42287 0 0 +49904 42311 0 0 +49966 42324 0 0 +50030 42324 0 0 +51032 42324 0 0 +51094 42312 0 0 +51153 42287 0 0 +51206 42252 0 0 +51251 42207 0 0 +51287 42155 0 0 +51311 42096 0 0 +51324 42034 0 0 +51324 41995 0 0 +51994 41995 0 0 +52000 41995 0 0 +52091 41986 0 0 +52096 41986 0 0 +52161 41966 0 0 +52184 41960 0 0 +52186 41958 0 0 +52189 41958 0 0 +52244 41928 0 0 +52269 41915 0 0 +52270 41914 0 0 +52274 41912 0 0 +52313 41879 0 0 +52345 41855 0 0 +52349 41851 0 0 +52350 41850 0 0 +53595 40605 0 0 +53599 40601 0 0 +53600 40600 0 0 +53896 40303 0 0 +53898 40306 0 0 +53943 40351 0 0 +53995 40387 0 0 +54054 40411 0 0 +54116 40424 0 0 +54180 40424 0 0 +54882 40424 0 0 +54944 40412 0 0 +55003 40387 0 0 +55056 40352 0 0 +55101 40307 0 0 +55137 40255 0 0 +55141 40245 0 0 +56045 40245 0 0 +56895 41095 0 0 +56895 42348 0 0 +56832 42410 0 0 +56752 42527 0 0 +56696 42658 0 0 +56666 42797 0 0 +56664 42939 0 0 +56690 43079 0 0 +56742 43211 0 0 +56819 43330 0 0 +56866 43379 0 0 +56757 43334 0 0 +56618 43306 0 0 +56476 43305 0 0 +56336 43331 0 0 +56205 43384 0 0 +56086 43462 0 0 +56011 43535 0 0 +55985 43535 0 0 +54604 42154 0 0 +54600 42150 0 0 +54530 42092 0 0 +54526 42088 0 0 +54465 42056 0 0 +54445 42045 0 0 +54442 42044 0 0 +54440 42043 0 0 +54401 42031 0 0 +54353 42016 0 0 +54350 42015 0 0 +54348 42015 0 0 +54310 42011 0 0 +54257 42005 0 0 +54251 42005 0 0 +54250 42005 0 0 +53837 42005 0 0 +53786 41970 0 0 +53678 41925 0 0 +53563 41901 0 0 +53445 41901 0 0 +53330 41923 0 0 +53221 41967 0 0 +53144 42016 0 0 +53089 42033 0 0 +53066 42040 0 0 +53063 42041 0 0 +53061 42042 0 0 +53006 42071 0 0 +52981 42085 0 0 +52979 42085 0 0 +52976 42088 0 0 +52936 42120 0 0 +52905 42145 0 0 +52901 42149 0 0 +52900 42150 0 0 +52404 42646 0 0 +52400 42650 0 0 +52338 42724 0 0 +52306 42784 0 0 +52295 42805 0 0 +52294 42807 0 0 +52293 42810 0 0 +52281 42849 0 0 +52266 42897 0 0 +52265 42899 0 0 +52265 42902 0 0 +52261 42939 0 0 +52255 42993 0 0 +52255 42999 0 0 +52255 43000 0 0 +52255 45744 0 0 +52255 45750 0 0 +52264 45846 0 0 +52283 45911 0 0 +52290 45934 0 0 +52291 45936 0 0 +52292 45939 0 0 +52321 45994 0 0 +52335 46019 0 0 +52335 46020 0 0 +52338 46024 0 0 +52370 46063 0 0 +52395 46095 0 0 +52399 46099 0 0 +52400 46100 0 0 +52619 46319 0 0 +52575 46333 0 0 +52503 46372 0 0 +52478 46445 0 0 +52697 46664 0 0 +52750 46717 0 0 +52783 46750 0 0 +52750 46783 0 0 +52717 46816 0 0 +52717 46750 0 0 +52445 46478 0 0 +52372 46503 0 0 +52331 46581 0 0 +52306 46665 0 0 +52297 46753 0 0 +52307 46841 0 0 +52333 46925 0 0 +52372 46997 0 0 +52445 47022 0 0 +52717 46750 0 0 +52717 46816 0 0 +52697 46836 0 0 +52478 47055 0 0 +52503 47128 0 0 +52581 47169 0 0 +52665 47194 0 0 +52753 47203 0 0 +52841 47193 0 0 +52855 47188 0 0 +52855 47644 0 0 +52855 47650 0 0 +52864 47746 0 0 +52883 47811 0 0 +52890 47834 0 0 +52891 47836 0 0 +52892 47839 0 0 +52921 47894 0 0 +52935 47919 0 0 +52935 47920 0 0 +52938 47924 0 0 +52970 47963 0 0 +52995 47995 0 0 +52999 47999 0 0 +53000 48000 0 0 +53346 48346 0 0 +53349 48349 0 0 +53392 48385 0 0 +53420 48408 0 0 +53421 48408 0 0 +53424 48411 0 0 +53491 48447 0 0 +53504 48454 0 0 +53505 48455 0 0 +53753 48703 0 0 +53721 48717 0 0 +53662 48755 0 0 +52955 48755 0 0 +51324 47124 0 0 +51324 46468 0 0 +51312 46406 0 0 +51287 46347 0 0 +51252 46294 0 0 +51207 46249 0 0 +51177 46228 0 0 +51177 45004 0 0 +51165 44872 0 0 +51128 44745 0 0 +51066 44629 0 0 +51061 44621 0 0 +50965 44568 0 0 +50932 44601 0 0 +50932 44535 0 0 +50879 44439 0 0 +50762 44376 0 0 +50636 44337 0 0 +50504 44323 0 0 +50372 44335 0 0 +50245 44372 0 0 +50129 44434 0 0 +50121 44439 0 0 +50068 44535 0 0 +50500 44967 0 0 +50932 44535 0 0 +50932 44601 0 0 +50533 45000 0 0 +50965 45432 0 0 +51061 45379 0 0 +51124 45262 0 0 +51163 45136 0 0 +51177 45004 0 0 +51177 46228 0 0 +51155 46213 0 0 +51096 46189 0 0 +51034 46176 0 0 +50970 46176 0 0 +50932 46176 0 0 +50932 45465 0 0 +50500 45033 0 0 +50467 45066 0 0 +50467 45000 0 0 +50035 44568 0 0 +49939 44621 0 0 +49876 44738 0 0 +49837 44864 0 0 +49823 44996 0 0 +49835 45128 0 0 +49872 45255 0 0 +49934 45371 0 0 +49939 45379 0 0 +50035 45432 0 0 +50467 45000 0 0 +50467 45066 0 0 +50068 45465 0 0 +50121 45561 0 0 +50238 45624 0 0 +50364 45663 0 0 +50496 45677 0 0 +50628 45665 0 0 +50755 45628 0 0 +50871 45566 0 0 +50879 45561 0 0 +50932 45465 0 0 +50932 46176 0 0 +49968 46176 0 0 +49906 46188 0 0 +49847 46213 0 0 +49794 46248 0 0 +49749 46293 0 0 +49713 46345 0 0 +49689 46404 0 0 +49676 46466 0 0 +49676 46530 0 0 +49676 47532 0 0 +49688 47594 0 0 +49713 47653 0 0 +49748 47706 0 0 +49793 47751 0 0 +49845 47787 0 0 +49904 47811 0 0 +49966 47824 0 0 +50030 47824 0 0 +50624 47824 0 0 +52237 49437 0 0 +52222 49460 0 0 +52176 49568 0 0 +52152 49683 0 0 +52150 49801 0 0 +52171 49916 0 0 +52215 50025 0 0 +52278 50124 0 0 +52360 50209 0 0 +52457 50276 0 0 +52564 50323 0 0 +52679 50348 0 0 +52796 50350 0 0 +52912 50330 0 0 +53022 50287 0 0 +53121 50224 0 0 +53206 50143 0 0 +53273 50047 0 0 +53321 49940 0 0 +53347 49825 0 0 +53348 49745 0 0 +53662 49745 0 0 +53707 49776 0 0 +53814 49823 0 0 +53929 49848 0 0 +54046 49850 0 0 +54162 49830 0 0 +54255 49793 0 0 +54255 51244 0 0 +54255 51250 0 0 +54264 51346 0 0 +54283 51411 0 0 +54290 51434 0 0 +54291 51436 0 0 +54292 51439 0 0 +54321 51494 0 0 +54335 51519 0 0 +54335 51520 0 0 +54338 51524 0 0 +54370 51563 0 0 +54395 51595 0 0 +54399 51599 0 0 +54400 51600 0 0 +54700 51900 0 0 +50681 51900 0 0 +50696 51891 0 0 +50855 51739 0 0 +50983 51559 0 0 +51072 51357 0 0 +51121 51142 0 0 +51125 50890 0 0 +51082 50674 0 0 +50998 50470 0 0 +50876 50286 0 0 +50721 50129 0 0 +50538 50006 0 0 +50335 49920 0 0 +50118 49876 0 0 +49898 49874 0 0 +49681 49916 0 0 +49477 49998 0 0 +49292 50119 0 0 +49134 50273 0 0 +49100 50322 0 0 +49100 37680 0 0 +49114 37702 0 0 +49267 37861 0 0 +49448 37987 0 0 +49650 38075 0 0 +49866 38122 0 0 +50086 38127 0 0 +50304 38089 0 0 +50509 38009 0 0 +50696 37891 0 0 +50855 37739 0 0 +50983 37559 0 0 +51072 37357 0 0 +51121 37142 0 0 +51125 36890 0 0 +51082 36674 0 0 +50998 36470 0 0 +50876 36286 0 0 +50721 36129 0 0 +50677 36100 0 0 +64321 36100 0 0 +64292 36119 0 0 +64134 36273 0 0 +64010 36455 0 0 +63923 36658 0 0 +63877 36874 0 0 +63874 37094 0 0 +63913 37311 0 0 +63994 37516 0 0 +64114 37702 0 0 +64267 37861 0 0 +64448 37987 0 0 +64650 38075 0 0 +64866 38122 0 0 +65086 38127 0 0 +65304 38089 0 0 +65509 38009 0 0 +65696 37891 0 0 +65855 37739 0 0 +65900 37675 0 0 +65900 50322 1 0 +$endPOLYSCORNERS +$endCZONE_OUTLINE +$EndBOARD diff --git a/demos/ecc83/ecc83-pp.pro b/demos/ecc83/ecc83-pp.pro index c130448a3c..16d7e690e6 100644 --- a/demos/ecc83/ecc83-pp.pro +++ b/demos/ecc83/ecc83-pp.pro @@ -1,5 +1,5 @@ -update=03/12/2010 17:27:41 -last_client=pcbnew +update=07/03/2011 07:10:15 +last_client=cvpcb [general] version=1 RootSch=ecc83-pp.sch @@ -65,14 +65,6 @@ LibName22=display LibName23=cypress LibName24=siliconi LibName25=contrib -[cvpcb] -version=1 -NetITyp=0 -NetIExt=.net -PkgIExt=.pkg -NetType=0 -[cvpcb/libraries] -EquName1=devcms [pcbnew] version=1 PadDrlX=760 @@ -92,8 +84,7 @@ TxtLar=120 MSegLar=150 LastNetListRead= [pcbnew/libraries] -LibDir= -LibName1=supports +LibName1=dip_sockets LibName2=valves LibName3=connect LibName4=discret @@ -101,3 +92,9 @@ LibName5=pin_array LibName6=divers LibName7=libcms LibName8=display +LibDir= +[cvpcb] +version=1 +NetIExt=.net +[cvpcb/libraries] +EquName1=devcms diff --git a/demos/ecc83/ecc83-pp_v2.brd b/demos/ecc83/ecc83-pp_v2.brd index 5267467e45..a5d186464f 100644 --- a/demos/ecc83/ecc83-pp_v2.brd +++ b/demos/ecc83/ecc83-pp_v2.brd @@ -1,2378 +1,1359 @@ -PCBNEW-BOARD Version 1 date 25/9/2007-05:51:28 - -$GENERAL -LayerCount 2 -Ly 1FFF8001 -Links 20 -NoConn 0 -Di 46725 35674 66775 52326 -Ndraw 4 -Ntrack 57 -Nzone 817 -Nmodule 15 -Nnets 9 -$EndGENERAL - -$SHEETDESCR -Sheet A4 11700 8267 -Title "" -Date "25 sep 2007" -Rev "" -Comp "" -Comment1 "" -Comment2 "" -Comment3 "" -Comment4 "" -$EndSHEETDESCR - -$SETUP -InternalUnit 0.000100 INCH -GridSize 250 250 -UserGridSize 0.010000 0.010000 mm -ZoneGridSize 100 -Layers 2 -TrackWidth 340 -TrackWidthHistory 340 -TrackClearence 60 -ZoneClearence 150 -DrawSegmWidth 150 -EdgeSegmWidth 150 -ViaSize 450 -ViaDrill 250 -ViaSizeHistory 450 -TextPcbWidth 120 -TextPcbSize 600 800 -EdgeModWidth 150 -TextModSize 600 600 -TextModWidth 120 -PadSize 1772 1772 -PadDrill 1220 -AuxiliaryAxisOrg 0 0 -$EndSETUP - -$EQUIPOT -Na 0 "" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 1 "N-000006" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 2 "GND" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 3 "N-000004" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 4 "N-000008" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 5 "N-000003" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 6 "N-000007" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 7 "N-000005" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 8 "N-000001" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 9 "N-000002" -St ~ -$EndEQUIPOT -$MODULE C2V10 -Po 51750 39000 900 15 41854742 4549F4BE ~~ -Li C2V10 -Cd Condensateur polarise -Kw CP -Sc 4549F4BE -Op 0 0 0 -T0 0 1000 500 500 900 100 N V 21 "C1" -T1 0 -1000 500 500 900 100 N V 21 "10uF" -DC 0 0 1900 -1100 120 21 -$PAD -Sh "1" R 700 700 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 1 "N-000006" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 700 700 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "discret/c_vert_c2v10.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE C2V10 -$MODULE R3 -Po 55500 49250 2700 15 00200000 4549F38A ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F38A -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R1" -T1 0 0 550 500 2700 80 N I 21 "1.5K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 3 "N-000004" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 4 "N-000008" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 48500 46750 2700 15 00200000 4549F3AD ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F3AD -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R3" -T1 0 0 550 500 2700 80 N I 21 "100K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 5 "N-000003" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 65000 47250 2700 15 00200000 4549F3A2 ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F3A2 -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R4" -T1 0 0 550 500 2700 80 N I 21 "47K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 6 "N-000007" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE R3 -Po 65000 40750 900 15 00200000 4549F39D ~~ -Li R3 -Cd Resitance 3 pas -Kw R -Sc 4549F39D -Op 0 A 0 -T0 0 0 550 500 900 80 N V 21 "R2" -T1 0 0 550 500 900 80 N I 21 "1.5K" -DS -1500 0 -1300 0 120 21 -DS 1500 0 1300 0 120 21 -DS 1300 0 1300 -400 120 21 -DS 1300 -400 -1300 -400 120 21 -DS -1300 -400 -1300 400 120 21 -DS -1300 400 1300 400 120 21 -DS 1300 400 1300 0 120 21 -DS -1300 -200 -1100 -400 120 21 -$PAD -Sh "1" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 7 "N-000005" -Po -1500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 1500 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.300000 0.300000 0.300000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R3 -$MODULE 1pin -Po 48500 37000 0 15 00200000 454CC08A ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC08A -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 65000 37000 0 15 00200000 454CC090 ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC090 -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "GND" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 65000 51000 0 15 00200000 454CC096 ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC096 -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE 1pin -Po 48500 51000 0 15 00200000 454CC09B ~~ -Li 1pin -Cd module 1 pin (ou trou mecanique de percage) -Kw DEV -Sc 454CC09B -Op 0 0 0 -T0 0 -1200 400 400 0 120 N V 21 "1PIN" -T1 0 1100 400 400 0 120 N I 21 "P***" -DC 0 0 0 -900 150 21 -$PAD -Sh "1" C 1600 1600 0 0 0 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$EndMODULE 1pin -$MODULE CP8 -Po 51750 46750 2700 15 00200000 4549F3BE ~~ -Li CP8 -Cd Condensateur polarise -Kw CP -Sc 4549F3BE -Op 0 0 0 -T0 500 500 600 600 2700 120 N V 21 "C2" -T1 500 -500 600 600 2700 120 N V 21 "680nF" -DS -4000 0 -3500 0 120 21 -DS -3000 500 -3500 500 120 21 -DS -3500 500 -3500 -500 120 21 -DS -3500 -500 -3000 -500 120 21 -DS -3000 1000 -3000 -1000 120 21 -DS -3000 -1000 3500 -1000 120 21 -DS 3500 -1000 3500 1000 120 21 -DS 3500 1000 -3000 1000 120 21 -DS 3500 0 4000 0 120 21 -DS -2000 -1000 -2000 1000 120 21 -DS -2500 1000 -2500 -1000 120 21 -$PAD -Sh "1" R 700 700 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 5 "N-000003" -Po -4000 0 -$EndPAD -$PAD -Sh "2" C 700 700 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 4 "N-000008" -Po 4000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.800000 0.800000 0.800000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP8 -$MODULE ECC-83-2 -Po 58750 43000 0 15 46F8A1CF 454A08DD ~~ -Li ECC-83-2 -Sc 454A08DD -Op 0 0 0 -T0 0 -4500 600 600 0 120 N V 21 "U1" -T1 0 4500 600 600 0 120 N V 21 "ECC83" -DC 0 0 4000 500 150 21 -$PAD -Sh "1" O 800 1200 0 0 -540 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 3 "N-000004" -Po 1360 1872 -$EndPAD -$PAD -Sh "2" O 800 1200 0 0 -180 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 6 "N-000007" -Po 2208 720 -$EndPAD -$PAD -Sh "3" O 800 1200 0 0 180 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 7 "N-000005" -Po 2208 -720 -$EndPAD -$PAD -Sh "4" O 800 1200 0 0 540 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 8 "N-000001" -Po 1360 -1872 -$EndPAD -$PAD -Sh "5" O 800 1200 0 0 900 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 8 "N-000001" -Po 0 -2320 -$EndPAD -$PAD -Sh "6" O 800 1200 0 0 -540 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 1 "N-000006" -Po -1360 -1872 -$EndPAD -$PAD -Sh "7" O 800 1200 0 0 -180 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 3 "N-000004" -Po -2208 -720 -$EndPAD -$PAD -Sh "8" O 800 1200 0 0 180 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 4 "N-000008" -Po -2208 704 -$EndPAD -$PAD -Sh "9" O 800 1200 0 0 540 -Dr 400 0 0 O 400 800 -At STD N 00E0FFFF -Ne 9 "N-000002" -Po -1360 1872 -$EndPAD -$PAD -Sh "10" C 1772 1772 0 0 0 -Dr 1220 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$SHAPE3D -Na "valves/ecc83.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE ECC-83-2 -$MODULE PIN_ARRAY_2X1 -Po 58750 50750 1800 15 4565C520 456A8ACC ~~ -Li PIN_ARRAY_2X1 -Cd Connecteurs 2 pins -Kw CONN DEV -Sc 456A8ACC -Op 0 0 0 -T0 0 -750 300 300 1800 60 N V 21 "P4" -T1 0 -750 300 300 1800 60 N I 21 "CONN_2" -DS -1000 500 -1000 -500 60 21 -DS -1000 -500 1000 -500 60 21 -DS 1000 -500 1000 500 60 21 -DS 1000 500 -1000 500 60 21 -$PAD -Sh "1" R 600 600 0 0 1800 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 8 "N-000001" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 1800 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 9 "N-000002" -Po 500 0 -$EndPAD -$SHAPE3D -Na "pin_array/pins_array_2x1.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE PIN_ARRAY_2X1 -$MODULE PIN_ARRAY_2X1 -Po 48500 43250 900 15 4565C520 4549F46C ~~ -Li PIN_ARRAY_2X1 -Cd Connecteurs 2 pins -Kw CONN DEV -Sc 4549F46C -Op 0 0 0 -T0 0 -750 300 300 900 60 N V 21 "P2" -T1 0 -750 300 300 900 60 N I 21 "OUT" -DS -1000 500 -1000 -500 60 21 -DS -1000 -500 1000 -500 60 21 -DS 1000 -500 1000 500 60 21 -DS 1000 500 -1000 500 60 21 -$PAD -Sh "1" R 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 5 "N-000003" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 500 0 -$EndPAD -$SHAPE3D -Na "pin_array/pins_array_2x1.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE PIN_ARRAY_2X1 -$MODULE PIN_ARRAY_2X1 -Po 65000 44000 2700 15 4565C520 4549F464 ~~ -Li PIN_ARRAY_2X1 -Cd Connecteurs 2 pins -Kw CONN DEV -Sc 4549F464 -Op 0 0 0 -T0 0 -750 300 300 2700 60 N V 21 "P1" -T1 0 -750 300 300 2700 60 N I 21 "IN" -DS -1000 500 -1000 -500 60 21 -DS -1000 -500 1000 -500 60 21 -DS 1000 -500 1000 500 60 21 -DS 1000 500 -1000 500 60 21 -$PAD -Sh "1" R 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 6 "N-000007" -Po 500 0 -$EndPAD -$SHAPE3D -Na "pin_array/pins_array_2x1.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE PIN_ARRAY_2X1 -$MODULE PIN_ARRAY_2X1 -Po 48500 40000 900 15 4565C520 4549F4A5 ~~ -Li PIN_ARRAY_2X1 -Cd Connecteurs 2 pins -Kw CONN DEV -Sc 4549F4A5 -Op 0 0 0 -T0 0 -750 300 300 900 60 N V 21 "P3" -T1 0 -750 300 300 900 60 N I 21 "POWER" -DS -1000 500 -1000 -500 60 21 -DS -1000 -500 1000 -500 60 21 -DS 1000 -500 1000 500 60 21 -DS 1000 500 -1000 500 60 21 -$PAD -Sh "1" R 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 1 "N-000006" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 2 "GND" -Po 500 0 -$EndPAD -$SHAPE3D -Na "pin_array/pins_array_2x1.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE PIN_ARRAY_2X1 -$DRAWSEGMENT -Po 0 66250 52250 47250 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 66250 35750 47250 35750 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 66250 35750 66250 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 47250 35750 47250 52250 150 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$TRACK -Po 0 49000 40500 49500 40000 340 -1 -De 0 0 1 0 0 -Po 0 51750 40000 56262 40000 340 -1 -De 0 0 1 0 800 -Po 0 56262 40000 57390 41128 340 -1 -De 0 0 1 0 400 -Po 0 48500 40500 49000 40500 340 -1 -De 0 0 1 0 800 -Po 0 49500 40000 51750 40000 340 -1 -De 0 0 1 0 400 -Po 0 48500 39500 50000 38000 340 -1 -De 0 0 2 0 800 -Po 0 50000 38000 51750 38000 340 -1 -De 0 0 2 0 400 -Po 0 51750 38000 63750 38000 340 -1 -De 0 0 2 0 800 -Po 0 63750 38000 65000 39250 340 -1 -De 0 0 2 0 400 -Po 0 65000 39250 65750 39250 170 -1 -De 0 0 2 0 800 -Po 0 65750 48750 65000 48750 170 -1 -De 0 0 2 0 400 -Po 0 65750 39250 65750 43500 170 -1 -De 0 0 2 0 0 -Po 0 65750 43500 65750 48750 170 -1 -De 0 0 2 0 0 -Po 0 48500 39500 47750 39500 170 -1 -De 0 0 2 0 800 -Po 0 47750 42750 48500 42750 170 -1 -De 0 0 2 0 400 -Po 0 47750 39500 47750 42750 170 -1 -De 0 0 2 0 0 -Po 0 47750 42750 47750 48250 170 -1 -De 0 0 2 0 0 -Po 0 47750 48250 48500 48250 170 -1 -De 0 0 2 0 400 -Po 0 65000 43500 65750 43500 170 -1 -De 0 0 2 0 800 -Po 0 56542 42280 55970 42280 340 -1 -De 0 0 3 0 800 -Po 0 55500 42750 55500 47750 340 -1 -De 0 0 3 0 400 -Po 0 55970 42280 55500 42750 340 -1 -De 0 0 3 0 0 -Po 0 55500 47750 55500 48750 340 -1 -De 0 0 3 0 800 -Po 0 61000 45762 60110 44872 340 -1 -De 0 0 3 0 400 -Po 0 61000 51250 61000 45762 340 -1 -De 0 0 3 0 0 -Po 0 60500 51750 61000 51250 340 -1 -De 0 0 3 0 0 -Po 0 51250 51750 60500 51750 340 -1 -De 0 0 3 0 0 -Po 0 50750 51250 51250 51750 340 -1 -De 0 0 3 0 0 -Po 0 50750 50000 50750 51250 340 -1 -De 0 0 3 0 0 -Po 0 51250 49500 50750 50000 340 -1 -De 0 0 3 0 0 -Po 0 54750 49500 51250 49500 340 -1 -De 0 0 3 0 0 -Po 0 55500 48750 54750 49500 340 -1 -De 0 0 3 0 0 -Po 0 51750 50750 55500 50750 340 -1 -De 0 0 4 0 C00 -Po 0 56542 43704 56542 43958 340 -1 -De 0 0 4 0 800 -Po 0 56250 45750 56500 46000 340 -1 -De 0 0 4 0 0 -Po 0 56250 44250 56250 45750 340 -1 -De 0 0 4 0 0 -Po 0 56542 43958 56250 44250 340 -1 -De 0 0 4 0 0 -Po 0 55500 50750 56000 50750 340 -1 -De 0 0 4 0 800 -Po 0 56000 50750 56500 50250 340 -1 -De 0 0 4 0 0 -Po 0 56500 50250 56500 46000 340 -1 -De 0 0 4 0 0 -Po 0 50750 43750 48500 43750 340 -1 -De 0 0 5 0 400 -Po 0 48500 45250 48500 43750 340 -1 -De 0 0 5 0 C00 -Po 0 51750 42750 50750 43750 340 -1 -De 0 0 5 0 800 -Po 0 63750 44500 65000 44500 340 -1 -De 0 0 6 0 400 -Po 0 62970 43720 63750 44500 340 -1 -De 0 0 6 0 0 -Po 0 65000 44500 65000 45750 340 -1 -De 0 0 6 0 C00 -Po 0 60958 43720 62970 43720 340 -1 -De 0 0 6 0 800 -Po 0 60958 42280 64970 42280 340 -1 -De 0 0 7 0 800 -Po 0 64970 42280 65000 42250 340 -1 -De 0 0 7 0 400 -Po 0 59250 40680 59662 40680 340 -1 -De 0 0 8 0 0 -Po 0 59662 40680 60110 41128 340 -1 -De 0 0 8 0 400 -Po 0 59250 50750 59250 44500 340 -1 -De 0 0 8 0 800 -Po 0 58750 40680 59250 40680 340 -1 -De 0 0 8 0 800 -Po 0 60110 41128 60110 43640 340 -1 -De 0 0 8 0 800 -Po 0 60110 43640 59250 44500 340 -1 -De 0 0 8 0 0 -Po 0 58250 45732 57390 44872 340 -1 -De 0 0 9 0 400 -Po 0 58250 50750 58250 45732 340 -1 -De 0 0 9 0 800 -$EndTRACK -$ZONE -Po 0 48500 42750 48500 42225 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 42750 49025 42750 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 42750 47975 42750 340 -1 -De 0 0 2 456E8767 0 -Po 0 51750 38000 51750 37400 340 -1 -De 0 0 2 456E8767 0 -Po 0 51750 38000 52350 38000 340 -1 -De 0 0 2 456E8767 0 -Po 0 51750 38000 51750 38600 340 -1 -De 0 0 2 456E8767 0 -Po 0 51750 38000 51150 38000 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 39250 65000 38725 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 39250 65525 39250 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 39250 65000 39775 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 39250 64475 39250 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 48250 48500 48775 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 48250 47975 48250 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 48250 48500 47725 340 -1 -De 0 0 2 456E8767 0 -Po 0 48500 48250 49025 48250 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 48750 65000 49275 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 48750 64475 48750 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 48750 65000 48225 340 -1 -De 0 0 2 456E8767 0 -Po 0 65000 48750 65525 48750 340 -1 -De 0 0 2 456E8767 0 -Po 0 65900 37500 65900 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65800 37600 65800 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65700 37800 65700 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 37800 65600 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45100 65500 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 37900 65500 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 49100 65400 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 46100 65400 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 45100 65400 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 39600 65400 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 38000 65400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65300 49200 65300 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65300 46200 65300 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65300 39700 65300 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65300 38000 65300 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 49200 65200 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 46200 65200 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 39700 65200 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 38000 65200 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65100 49300 65100 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65100 46300 65100 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65100 39800 65100 41700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65100 38000 65100 38700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65000 49300 65000 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65000 46300 65000 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65000 39800 65000 41700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65000 38000 65000 38700 100 -1 -De 0 0 2 456E8767 0 -Po 0 64900 49300 64900 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 64900 46300 64900 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 64900 39800 64900 41700 100 -1 -De 0 0 2 456E8767 0 -Po 0 64900 38000 64900 38700 100 -1 -De 0 0 2 456E8767 0 -Po 0 64800 49200 64800 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 64800 46200 64800 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 64800 39700 64800 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 64800 38000 64800 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 64700 49200 64700 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 64700 46200 64700 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 64700 39700 64700 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 64700 38000 64700 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 64600 49100 64600 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 64600 46100 64600 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 64600 45100 64600 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 64600 39600 64600 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64600 38000 64600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64500 45100 64500 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 64500 37900 64500 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64400 51800 64400 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64400 45100 64400 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 64400 37800 64400 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64400 36100 64400 36200 100 -1 -De 0 0 2 456E8767 0 -Po 0 64300 51800 64300 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64300 45100 64300 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 64300 37800 64300 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64300 36100 64300 36200 100 -1 -De 0 0 2 456E8767 0 -Po 0 64200 51600 64200 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64200 45100 64200 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 64200 37600 64200 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64200 36100 64200 36400 100 -1 -De 0 0 2 456E8767 0 -Po 0 64100 51500 64100 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64100 45100 64100 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 64100 37500 64100 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64100 36100 64100 36500 100 -1 -De 0 0 2 456E8767 0 -Po 0 64000 45100 64000 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 64000 36100 64000 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63900 45100 63900 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63900 36100 63900 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63800 45100 63800 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63800 36100 63800 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63700 45100 63700 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63700 36100 63700 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63600 45100 63600 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63600 36100 63600 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63500 45100 63500 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63500 36100 63500 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63400 45100 63400 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63400 36100 63400 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63300 45100 63300 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63300 36100 63300 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63200 45100 63200 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63200 36100 63200 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63100 45100 63100 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63100 36100 63100 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63000 45100 63000 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 63000 36100 63000 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62900 45100 62900 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62900 36100 62900 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 45100 62800 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 36100 62800 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62700 45100 62700 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62700 36100 62700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62600 45300 62600 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62600 36100 62600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62500 45400 62500 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62500 36100 62500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62400 45600 62400 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62400 36100 62400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62300 45700 62300 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62300 36100 62300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62200 45900 62200 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62200 36100 62200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62100 46000 62100 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62100 36100 62100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62000 46200 62000 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62000 36100 62000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61900 46300 61900 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61900 36100 61900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46500 61800 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 36100 61800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61700 36100 61700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61600 36100 61600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61500 36100 61500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61400 36100 61400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61300 36100 61300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61200 36100 61200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61100 36100 61100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61000 36100 61000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60900 36100 60900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60800 36100 60800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60700 36100 60700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60600 36100 60600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60500 36100 60500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60400 36100 60400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60300 36100 60300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60200 36100 60200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60100 36100 60100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 60000 36100 60000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59900 36100 59900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59800 36100 59800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59700 36100 59700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59600 36100 59600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59500 36100 59500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59400 36100 59400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59300 36100 59300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59200 36100 59200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59100 36100 59100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 59000 36100 59000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58900 36100 58900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58800 36100 58800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58700 36100 58700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58600 36100 58600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58500 36100 58500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58400 36100 58400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58300 36100 58300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58200 36100 58200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58100 36100 58100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 58000 36100 58000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57900 36100 57900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57800 36100 57800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57700 36100 57700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57600 36100 57600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57500 36100 57500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57400 36100 57400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57300 36100 57300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57200 36100 57200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57100 36100 57100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 57000 36100 57000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56900 36100 56900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56800 36100 56800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56700 36100 56700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56600 36100 56600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56500 36100 56500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56400 36100 56400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56300 36100 56300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56200 36100 56200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56100 36100 56100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 56000 36100 56000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55900 36100 55900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55800 36100 55800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55700 36100 55700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55600 36100 55600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55500 36100 55500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55400 36100 55400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55300 36100 55300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55200 36100 55200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55100 36100 55100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 55000 36100 55000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54900 36100 54900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54800 36100 54800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54700 36100 54700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54600 41500 54600 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 54600 36100 54600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54500 41400 54500 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 54500 36100 54500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54400 41300 54400 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 54400 36100 54400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54300 41200 54300 48500 100 -1 -De 0 0 2 456E8767 0 -Po 0 54300 36100 54300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54200 41100 54200 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 54200 36100 54200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54100 41100 54100 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 54100 36100 54100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 54000 41100 54000 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 54000 36100 54000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53900 41100 53900 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53900 36100 53900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53800 41100 53800 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53800 36100 53800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53700 41100 53700 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53700 36100 53700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53600 41100 53600 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53600 36100 53600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53500 41100 53500 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53500 36100 53500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53400 41100 53400 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53400 36100 53400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53300 41100 53300 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53300 36100 53300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53200 41100 53200 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53200 36100 53200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53100 41100 53100 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53100 36100 53100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 53000 41100 53000 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 53000 36100 53000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52900 41100 52900 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52900 36100 52900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52800 41100 52800 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52800 36100 52800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52700 41100 52700 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52700 36100 52700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52600 41100 52600 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52600 36100 52600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52500 41100 52500 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52500 36100 52500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 41100 52400 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 36100 52400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 43400 52300 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 41100 52300 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 36100 52300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 43400 52200 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 41100 52200 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 38400 52200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 36100 52200 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52100 43400 52100 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52100 41100 52100 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52100 38500 52100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52100 36100 52100 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 43400 52000 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 41100 52000 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 38500 52000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 36100 52000 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 51900 43400 51900 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51900 41100 51900 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51900 38600 51900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51900 36100 51900 37400 100 -1 -De 0 0 2 456E8767 0 -Po 0 51800 43400 51800 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51800 41100 51800 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51800 38600 51800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51800 36100 51800 37400 100 -1 -De 0 0 2 456E8767 0 -Po 0 51700 43400 51700 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51700 41100 51700 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51700 38600 51700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51700 36100 51700 37400 100 -1 -De 0 0 2 456E8767 0 -Po 0 51600 43500 51600 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51600 41100 51600 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51600 38600 51600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51600 36100 51600 37400 100 -1 -De 0 0 2 456E8767 0 -Po 0 51500 43600 51500 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51500 41100 51500 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51500 38500 51500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51500 36100 51500 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 51400 43700 51400 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51400 41100 51400 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51400 38500 51400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51400 36100 51400 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 51300 43800 51300 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51300 41100 51300 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51300 38400 51300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51300 36100 51300 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51200 43900 51200 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51200 41100 51200 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 51200 36100 51200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51100 44000 51100 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51100 41100 51100 42800 100 -1 -De 0 0 2 456E8767 0 -Po 0 51100 36100 51100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51000 44100 51000 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51000 41100 51000 42900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51000 36100 51000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50900 44100 50900 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 50900 41100 50900 43000 100 -1 -De 0 0 2 456E8767 0 -Po 0 50900 36100 50900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50800 44200 50800 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 50800 41100 50800 43100 100 -1 -De 0 0 2 456E8767 0 -Po 0 50800 36100 50800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50700 44200 50700 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 50700 41100 50700 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 50700 36100 50700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50600 44200 50600 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 50600 41100 50600 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50600 36100 50600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50500 44200 50500 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 50500 41100 50500 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50500 36100 50500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50400 44200 50400 48700 100 -1 -De 0 0 2 456E8767 0 -Po 0 50400 41100 50400 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50400 36100 50400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50300 44200 50300 48800 100 -1 -De 0 0 2 456E8767 0 -Po 0 50300 41100 50300 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50300 36100 50300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50200 44200 50200 48900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50200 41100 50200 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50200 36100 50200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50100 44200 50100 49000 100 -1 -De 0 0 2 456E8767 0 -Po 0 50100 41100 50100 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50100 36100 50100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 50000 44200 50000 49100 100 -1 -De 0 0 2 456E8767 0 -Po 0 50000 41100 50000 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 50000 36100 50000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49900 44200 49900 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49900 41100 49900 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49900 36100 49900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49800 44200 49800 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49800 41100 49800 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49800 36100 49800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49700 44200 49700 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49700 41100 49700 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49700 36100 49700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49600 44200 49600 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49600 41100 49600 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49600 36100 49600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 44200 49500 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 41100 49500 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 36100 49500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 51500 49400 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 44200 49400 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 41100 49400 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 37500 49400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 36100 49400 36500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 51600 49300 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 44200 49300 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 41100 49300 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 37600 49300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 36100 49300 36400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49200 51800 49200 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49200 44200 49200 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49200 41100 49200 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49200 37800 49200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49200 36100 49200 36200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 51800 49100 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 44200 49100 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 41100 49100 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 37800 49100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 36100 49100 36200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 44200 49000 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 41100 49000 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 37900 49000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 48600 48900 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 45600 48900 47900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44300 48900 44900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 43100 48900 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 41100 48900 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 38000 48900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48800 48700 48800 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48800 45700 48800 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48800 41100 48800 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48800 38000 48800 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 48700 48700 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 45700 48700 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 41100 48700 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 38000 48700 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48600 48800 48600 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48600 45800 48600 47700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48600 41100 48600 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48600 38000 48600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48500 48800 48500 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48500 45800 48500 47700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48500 41100 48500 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48500 38000 48500 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48400 48800 48400 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48400 45800 48400 47700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48400 41100 48400 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48400 38000 48400 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48300 48700 48300 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48300 45700 48300 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48300 41100 48300 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48300 38000 48300 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48200 48700 48200 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48200 45700 48200 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48200 41100 48200 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48200 38000 48200 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 48600 48100 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 45600 48100 47900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 44300 48100 44900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 43100 48100 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 41100 48100 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 48100 38000 48100 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48000 41100 48000 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 48000 37900 48000 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47900 37800 47900 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47800 37800 47800 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47700 37600 47700 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 37500 47600 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51900 64500 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 51900 49900 51900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51800 64400 51800 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 51800 49900 51800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51700 64200 51700 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 51700 49900 51700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51600 64200 51600 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 51600 49900 51600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51500 64100 51500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 51500 49900 51500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51400 64000 51400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 51400 49900 51400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51300 64000 51300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 51300 49900 51300 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51200 64000 51200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 51200 49900 51200 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51100 64000 51100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 51100 49900 51100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 51000 64000 51000 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 51000 49900 51000 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50900 64000 50900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 50900 49900 50900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50800 64000 50800 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 50800 49900 50800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50700 64000 50700 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 50700 49900 50700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50600 64000 50600 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 50600 49900 50600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50500 64100 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 50500 49900 50500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65800 50400 65900 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50400 64200 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 50400 49900 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 50400 47700 50400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65800 50300 65900 50300 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50300 64200 50300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 50300 49900 50300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 50300 47700 50300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 50200 65900 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50200 64400 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 50200 49900 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 50200 47900 50200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 50100 65900 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50100 64500 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 50100 49900 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 50100 48000 50100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 50000 65900 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 50000 49900 50000 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49900 65900 49900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49900 49900 49900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49800 65900 49800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49800 49900 49800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49700 65900 49700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49700 49900 49700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49600 65900 49600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49600 49900 49600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49500 65900 49500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49500 49900 49500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49400 65900 49400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49400 49900 49400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49300 65900 49300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49300 49900 49300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 49200 65900 49200 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49200 64800 49200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49200 49900 49200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 49100 65900 49100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49100 64600 49100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49100 50000 49100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 49000 65900 49000 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 49000 64500 49000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 49000 50100 49000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 48900 65900 48900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48900 64500 48900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48900 50200 48900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 48800 65900 48800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48800 64500 48800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48800 50300 48800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 48700 65900 48700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48700 64500 48700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 48700 50400 48700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48700 48300 48700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 48600 65900 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48600 64500 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 48600 54200 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48600 48100 48600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 48500 65900 48500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48500 64500 48500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48500 54300 48500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48500 48000 48500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 48400 65900 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48400 64600 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48400 54400 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48400 48000 48400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 48300 65900 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48300 64800 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48300 54500 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48300 48000 48300 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48200 65900 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48200 54600 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48200 48000 48200 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48100 65900 48100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48100 54600 48100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48100 48000 48100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 48000 65900 48000 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 48000 54600 48000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 48000 48000 48000 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47900 65900 47900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 47900 54600 47900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47900 48100 47900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47800 65900 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 47800 54600 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47800 48300 47800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47700 65900 47700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47700 54600 47700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47600 65900 47600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47600 54600 47600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47500 65900 47500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47500 54600 47500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47400 65900 47400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47400 54600 47400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47300 65900 47300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47300 54600 47300 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47200 65900 47200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47200 54600 47200 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47100 65900 47100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47100 54600 47100 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 47000 65900 47000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 47000 54600 47000 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46900 65900 46900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46900 54600 46900 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46800 65900 46800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46800 54600 46800 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46700 65900 46700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46700 54600 46700 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46600 65900 46600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46600 54600 46600 100 -1 -De 0 0 2 456E8767 0 -Po 0 61800 46500 65900 46500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46500 54600 46500 100 -1 -De 0 0 2 456E8767 0 -Po 0 61900 46400 65900 46400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46400 54600 46400 100 -1 -De 0 0 2 456E8767 0 -Po 0 61900 46300 65900 46300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46300 54600 46300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 46200 65900 46200 100 -1 -De 0 0 2 456E8767 0 -Po 0 62000 46200 64800 46200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46200 54600 46200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 46100 65900 46100 100 -1 -De 0 0 2 456E8767 0 -Po 0 62100 46100 64600 46100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46100 54600 46100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 46000 65900 46000 100 -1 -De 0 0 2 456E8767 0 -Po 0 62100 46000 64500 46000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 46000 54600 46000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45900 65900 45900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62200 45900 64500 45900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45900 54600 45900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45800 65900 45800 100 -1 -De 0 0 2 456E8767 0 -Po 0 62300 45800 64500 45800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45800 54600 45800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45700 65900 45700 100 -1 -De 0 0 2 456E8767 0 -Po 0 62300 45700 64500 45700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 45700 54600 45700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45700 48300 45700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45600 65900 45600 100 -1 -De 0 0 2 456E8767 0 -Po 0 62400 45600 64500 45600 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 45600 54600 45600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45600 48100 45600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 45500 65900 45500 100 -1 -De 0 0 2 456E8767 0 -Po 0 62500 45500 64500 45500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45500 54600 45500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45500 48000 45500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 45400 65900 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 62500 45400 64600 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45400 54600 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45400 48000 45400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 45300 65900 45300 100 -1 -De 0 0 2 456E8767 0 -Po 0 62600 45300 64600 45300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45300 54600 45300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45300 48000 45300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 45200 65900 45200 100 -1 -De 0 0 2 456E8767 0 -Po 0 62700 45200 64600 45200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45200 54600 45200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45200 48000 45200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 45100 65900 45100 100 -1 -De 0 0 2 456E8767 0 -Po 0 62700 45100 64600 45100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45100 54600 45100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45100 48000 45100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 45000 65900 45000 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 45000 54600 45000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 45000 48000 45000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44900 65900 44900 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44900 54600 44900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44900 48100 44900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44800 65900 44800 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44800 54600 44800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44800 48100 44800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44700 65900 44700 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44700 54600 44700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44700 48100 44700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44600 65900 44600 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44600 54600 44600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44600 48100 44600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44500 65900 44500 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44500 54600 44500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44500 48100 44500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44400 65900 44400 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44400 54600 44400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44400 48100 44400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44300 65900 44300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 44300 54600 44300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44300 48100 44300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44200 65900 44200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 44200 54600 44200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44200 48000 44200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44100 65900 44100 100 -1 -De 0 0 2 456E8767 0 -Po 0 50900 44100 54600 44100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44100 48000 44100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 44000 65900 44000 100 -1 -De 0 0 2 456E8767 0 -Po 0 51100 44000 54600 44000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 44000 48000 44000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43900 65900 43900 100 -1 -De 0 0 2 456E8767 0 -Po 0 51200 43900 54600 43900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43900 48000 43900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43800 65900 43800 100 -1 -De 0 0 2 456E8767 0 -Po 0 51300 43800 54600 43800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43800 48000 43800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43700 65900 43700 100 -1 -De 0 0 2 456E8767 0 -Po 0 51400 43700 54600 43700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43700 48000 43700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43600 65900 43600 100 -1 -De 0 0 2 456E8767 0 -Po 0 51500 43600 54600 43600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43600 48000 43600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43500 65900 43500 100 -1 -De 0 0 2 456E8767 0 -Po 0 51600 43500 54600 43500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43500 48000 43500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43400 65900 43400 100 -1 -De 0 0 2 456E8767 0 -Po 0 51700 43400 54600 43400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43400 48000 43400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43300 65900 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 43300 54600 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 43300 50600 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43300 48000 43300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43200 65900 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 43200 54600 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 43200 50700 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43200 48300 43200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43100 65900 43100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 43100 54600 43100 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 43100 50800 43100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43100 48100 43100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 43000 65900 43000 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 43000 54600 43000 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 43000 50900 43000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 43000 48000 43000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42900 65900 42900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42900 54600 42900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 42900 51000 42900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42900 48000 42900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42800 65900 42800 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42800 54600 42800 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 42800 51100 42800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42800 48000 42800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42700 65900 42700 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42700 54600 42700 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 42700 51100 42700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42700 48000 42700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42600 65900 42600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42600 54600 42600 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 42600 51100 42600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42600 48000 42600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42500 65900 42500 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42500 54600 42500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 42500 51100 42500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42500 48000 42500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42400 65900 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42400 54600 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 48900 42400 51100 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42400 48100 42400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42300 65900 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42300 54600 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 48700 42300 51100 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42300 48300 42300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42200 65900 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 52400 42200 54600 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42200 51100 42200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42100 65900 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42100 54600 42100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 42000 65900 42000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 42000 54600 42000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 41900 65900 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41900 64600 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41900 54600 41900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 41800 65900 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41800 64800 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41800 54600 41800 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41700 65900 41700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41700 54600 41700 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41600 65900 41600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41600 54600 41600 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41500 65900 41500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41500 54600 41500 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41400 65900 41400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41400 54500 41400 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41300 65900 41300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41300 54400 41300 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41200 65900 41200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41200 54300 41200 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41100 65900 41100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41100 54200 41100 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 41000 65900 41000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 41000 47900 41000 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40900 65900 40900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40900 47900 40900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40800 65900 40800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40800 47900 40800 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40700 65900 40700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40700 47900 40700 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40600 65900 40600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40600 47900 40600 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40500 65900 40500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40500 47900 40500 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40400 65900 40400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40400 47900 40400 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40300 65900 40300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40300 47900 40300 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40200 65900 40200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40200 47900 40200 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40100 65900 40100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40100 47900 40100 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 40000 65900 40000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 40000 47900 40000 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39900 65900 39900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39900 47900 39900 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39800 65900 39800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39800 47900 39800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 39700 65900 39700 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39700 64800 39700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39700 47900 39700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 39600 65900 39600 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39600 64600 39600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39600 47900 39600 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39500 65900 39500 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39500 64500 39500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39500 47900 39500 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39400 65900 39400 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39400 64500 39400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39400 47900 39400 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39300 65900 39300 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39300 64500 39300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39300 47900 39300 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39200 65900 39200 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39200 64500 39200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39200 47900 39200 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39100 65900 39100 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39100 64500 39100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39100 47900 39100 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 39000 65900 39000 100 -1 -De 0 0 2 456E8767 0 -Po 0 62800 39000 64500 39000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 39000 47900 39000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65400 38900 65900 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38900 64600 38900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65200 38800 65900 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38800 64800 38800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38700 65900 38700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38600 65900 38600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 38500 65900 38500 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38500 51500 38500 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 38400 65900 38400 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38400 51300 38400 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 38300 65900 38300 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38300 51200 38300 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 38200 65900 38200 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38200 51200 38200 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 38100 65900 38100 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38100 51200 38100 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 38000 65900 38000 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 38000 51200 38000 100 -1 -De 0 0 2 456E8767 0 -Po 0 65500 37900 65900 37900 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 37900 64500 37900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 37900 51200 37900 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 37900 48000 37900 100 -1 -De 0 0 2 456E8767 0 -Po 0 65600 37800 65900 37800 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 37800 64400 37800 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 37800 51200 37800 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 37800 47900 37800 100 -1 -De 0 0 2 456E8767 0 -Po 0 65800 37700 65900 37700 100 -1 -De 0 0 2 456E8767 0 -Po 0 52300 37700 64200 37700 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 37700 51200 37700 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 37700 47700 37700 100 -1 -De 0 0 2 456E8767 0 -Po 0 65800 37600 65900 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52200 37600 64200 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 37600 51300 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 47600 37600 47700 37600 100 -1 -De 0 0 2 456E8767 0 -Po 0 52000 37500 64100 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 37500 51500 37500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 37400 64000 37400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 37300 64000 37300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 37200 64000 37200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 37100 64000 37100 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 37000 64000 37000 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 36900 64000 36900 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 36800 64000 36800 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 36700 64000 36700 100 -1 -De 0 0 2 456E8767 0 -Po 0 49500 36600 64000 36600 100 -1 -De 0 0 2 456E8767 0 -Po 0 49400 36500 64100 36500 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 36400 64200 36400 100 -1 -De 0 0 2 456E8767 0 -Po 0 49300 36300 64200 36300 100 -1 -De 0 0 2 456E8767 0 -Po 0 49100 36200 64400 36200 100 -1 -De 0 0 2 456E8767 0 -Po 0 49000 36100 64500 36100 100 -1 -De 0 0 2 456E8767 0 -$EndZONE -$EndBOARD +PCBNEW-BOARD Version 1 date 18/12/2011 08:32:10 + +# Created by Pcbnew(2011-12-16 BZR 3311)-testing + +$GENERAL +encoding utf-8 +LayerCount 2 +Ly 1FFF8001 +EnabledLayers 1FFF8001 +Links 20 +NoConn 0 +Di 47099 35350 66401 52550 +Ndraw 4 +Ntrack 62 +Nzone 0 +BoardThickness 630 +Nmodule 15 +Nnets 10 +$EndGENERAL + +$SHEETDESCR +Sheet A4 11700 8267 +Title "" +Date "18 dec 2011" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndSHEETDESCR + +$SETUP +InternalUnit 0.000100 INCH +Layers 2 +Layer[0] Dessous signal +Layer[15] Dessus signal +TrackWidth 340 +TrackClearence 200 +ZoneClearence 250 +TrackMinWidth 100 +DrawSegmWidth 150 +EdgeSegmWidth 150 +ViaSize 750 +ViaDrill 250 +ViaMinSize 350 +ViaMinDrill 200 +MicroViaSize 200 +MicroViaDrill 50 +MicroViasAllowed 0 +MicroViaMinSize 200 +MicroViaMinDrill 50 +TextPcbWidth 120 +TextPcbSize 600 800 +EdgeModWidth 150 +TextModSize 600 600 +TextModWidth 120 +PadSize 1100 550 +PadDrill 760 +Pad2MaskClearance 100 +AuxiliaryAxisOrg 0 0 +PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions true) (excludeedgelayer true) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 2) (pscolor true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) +$EndSETUP + +$EQUIPOT +Na 0 "" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 1 "GND" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 2 "N-000001" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 3 "N-000002" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 4 "N-000003" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 5 "N-000004" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 6 "N-000005" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 7 "N-000006" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 8 "N-000007" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 9 "N-000008" +St ~ +$EndEQUIPOT +$NCLASS +Name "Default" +Desc "Ceci est la Netclass par défaut" +Clearance 200 +TrackWidth 340 +ViaDia 750 +ViaDrill 250 +uViaDia 200 +uViaDrill 50 +AddNet "" +AddNet "GND" +AddNet "N-000001" +AddNet "N-000002" +AddNet "N-000003" +AddNet "N-000004" +AddNet "N-000005" +AddNet "N-000006" +AddNet "N-000007" +AddNet "N-000008" +$EndNCLASS +$MODULE C2V10 +Po 51750 39000 900 15 41854742 4549F4BE ~~ +Li C2V10 +Cd Condensateur polarise +Kw CP +Sc 4549F4BE +AR +Op 0 0 0 +T0 0 1000 500 500 900 100 N V 21 N "C1" +T1 0 -1000 500 500 900 100 N V 21 N "10uF" +DC 0 0 1900 -1100 120 21 +$PAD +Sh "1" R 700 700 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 7 "N-000006" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 700 700 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "discret/c_vert_c2v10.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE C2V10 +$MODULE R3 +Po 55500 49250 2700 15 00200000 4549F38A ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F38A +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R1" +T1 0 0 550 500 2700 80 N I 21 N "1.5K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 5 "N-000004" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "N-000008" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 49000 46750 2700 15 00200000 4549F3AD ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F3AD +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R3" +T1 0 0 550 500 2700 80 N I 21 N "100K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 4 "N-000003" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 65000 47250 2700 15 00200000 4549F3A2 ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F3A2 +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R4" +T1 0 0 550 500 2700 80 N I 21 N "47K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 8 "N-000007" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE R3 +Po 65000 40750 900 15 00200000 4549F39D ~~ +Li R3 +Cd Resitance 3 pas +Kw R +Sc 4549F39D +AR +Op 0 A 0 +T0 0 0 550 500 900 80 N V 21 N "R2" +T1 0 0 550 500 900 80 N I 21 N "1.5K" +DS -1500 0 -1300 0 120 21 +DS 1500 0 1300 0 120 21 +DS 1300 0 1300 -400 120 21 +DS 1300 -400 -1300 -400 120 21 +DS -1300 -400 -1300 400 120 21 +DS -1300 400 1300 400 120 21 +DS 1300 400 1300 0 120 21 +DS -1300 -200 -1100 -400 120 21 +$PAD +Sh "1" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 6 "N-000005" +Po -1500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 1500 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.300000 0.300000 0.300000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R3 +$MODULE 1pin +Po 48500 37000 0 15 00200000 454CC08A ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC08A +AR +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 65000 37000 0 15 00200000 454CC090 ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC090 +AR +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "GND" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 65000 51000 0 15 00200000 454CC096 ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC096 +AR +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 48500 51000 0 15 00200000 454CC09B ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 454CC09B +AR +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "1PIN" +T1 0 1100 400 400 0 100 N I 21 N "P***" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE CP8 +Po 51750 46750 2700 15 00200000 4549F3BE ~~ +Li CP8 +Cd Condensateur polarise +Kw CP +Sc 4549F3BE +AR +Op 0 0 0 +T0 500 500 600 600 2700 120 N V 21 N "C2" +T1 500 -500 600 600 2700 120 N V 21 N "680nF" +DS -4000 0 -3500 0 120 21 +DS -3000 500 -3500 500 120 21 +DS -3500 500 -3500 -500 120 21 +DS -3500 -500 -3000 -500 120 21 +DS -3000 1000 -3000 -1000 120 21 +DS -3000 -1000 3500 -1000 120 21 +DS 3500 -1000 3500 1000 120 21 +DS 3500 1000 -3000 1000 120 21 +DS 3500 0 4000 0 120 21 +DS -2000 -1000 -2000 1000 120 21 +DS -2500 1000 -2500 -1000 120 21 +$PAD +Sh "1" R 700 700 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 4 "N-000003" +Po -4000 0 +$EndPAD +$PAD +Sh "2" C 700 700 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "N-000008" +Po 4000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.800000 0.800000 0.800000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP8 +$MODULE ECC-83-2 +Po 58750 43000 0 15 46F8A1CF 454A08DD ~~ +Li ECC-83-2 +Sc 454A08DD +AR +Op 0 0 0 +T0 0 -4500 600 600 0 120 N V 21 N "U1" +T1 0 4500 600 600 0 120 N V 21 N "ECC83" +DC 0 0 4000 500 150 21 +$PAD +Sh "1" O 800 1200 0 0 -540 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 5 "N-000004" +Po 1360 1872 +$EndPAD +$PAD +Sh "2" O 800 1200 0 0 -180 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 8 "N-000007" +Po 2208 720 +$EndPAD +$PAD +Sh "3" O 800 1200 0 0 180 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 6 "N-000005" +Po 2208 -720 +$EndPAD +$PAD +Sh "4" O 800 1200 0 0 540 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po 1360 -1872 +$EndPAD +$PAD +Sh "5" O 800 1200 0 0 900 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po 0 -2320 +$EndPAD +$PAD +Sh "6" O 800 1200 0 0 -540 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 7 "N-000006" +Po -1360 -1872 +$EndPAD +$PAD +Sh "7" O 800 1200 0 0 -180 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 5 "N-000004" +Po -2208 -720 +$EndPAD +$PAD +Sh "8" O 800 1200 0 0 180 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 9 "N-000008" +Po -2208 704 +$EndPAD +$PAD +Sh "9" O 800 1200 0 0 540 +Dr 400 0 0 O 400 800 +At STD N 00E0FFFF +Ne 3 "N-000002" +Po -1360 1872 +$EndPAD +$PAD +Sh "10" C 1772 1772 0 0 0 +Dr 1220 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$SHAPE3D +Na "valves/ecc83.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE ECC-83-2 +$MODULE PIN_ARRAY_2X1 +Po 58750 50750 1800 15 4565C520 456A8ACC ~~ +Li PIN_ARRAY_2X1 +Cd Connecteurs 2 pins +Kw CONN DEV +Sc 456A8ACC +AR +Op 0 0 0 +T0 0 -750 300 300 1800 60 N V 21 N "P4" +T1 0 -750 300 300 1800 60 N I 21 N "CONN_2" +DS -1000 500 -1000 -500 60 21 +DS -1000 -500 1000 -500 60 21 +DS 1000 -500 1000 500 60 21 +DS 1000 500 -1000 500 60 21 +$PAD +Sh "1" R 600 600 0 0 1800 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 2 "N-000001" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 1800 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 3 "N-000002" +Po 500 0 +$EndPAD +$SHAPE3D +Na "pin_array/pins_array_2x1.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE PIN_ARRAY_2X1 +$MODULE PIN_ARRAY_2X1 +Po 48500 43250 900 15 4565C520 4549F46C ~~ +Li PIN_ARRAY_2X1 +Cd Connecteurs 2 pins +Kw CONN DEV +Sc 4549F46C +AR +Op 0 0 0 +T0 0 -750 300 300 900 60 N V 21 N "P2" +T1 0 -750 300 300 900 60 N I 21 N "OUT" +DS -1000 500 -1000 -500 60 21 +DS -1000 -500 1000 -500 60 21 +DS 1000 -500 1000 500 60 21 +DS 1000 500 -1000 500 60 21 +$PAD +Sh "1" R 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 4 "N-000003" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 500 0 +$EndPAD +$SHAPE3D +Na "pin_array/pins_array_2x1.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE PIN_ARRAY_2X1 +$MODULE PIN_ARRAY_2X1 +Po 65000 44000 2700 15 4565C520 4549F464 ~~ +Li PIN_ARRAY_2X1 +Cd Connecteurs 2 pins +Kw CONN DEV +Sc 4549F464 +AR +Op 0 0 0 +T0 0 -750 300 300 2700 60 N V 21 N "P1" +T1 0 -750 300 300 2700 60 N I 21 N "IN" +DS -1000 500 -1000 -500 60 21 +DS -1000 -500 1000 -500 60 21 +DS 1000 -500 1000 500 60 21 +DS 1000 500 -1000 500 60 21 +$PAD +Sh "1" R 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 8 "N-000007" +Po 500 0 +$EndPAD +$SHAPE3D +Na "pin_array/pins_array_2x1.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE PIN_ARRAY_2X1 +$MODULE PIN_ARRAY_2X1 +Po 48500 40000 900 15 4565C520 4549F4A5 ~~ +Li PIN_ARRAY_2X1 +Cd Connecteurs 2 pins +Kw CONN DEV +Sc 4549F4A5 +AR +Op 0 0 0 +T0 0 -750 300 300 900 60 N V 21 N "P3" +T1 0 -750 300 300 900 60 N I 21 N "POWER" +DS -1000 500 -1000 -500 60 21 +DS -1000 -500 1000 -500 60 21 +DS 1000 -500 1000 500 60 21 +DS 1000 500 -1000 500 60 21 +$PAD +Sh "1" R 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 7 "N-000006" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 1 "GND" +Po 500 0 +$EndPAD +$SHAPE3D +Na "pin_array/pins_array_2x1.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE PIN_ARRAY_2X1 +$DRAWSEGMENT +Po 0 66250 52250 47250 52250 150 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 66250 35750 47250 35750 150 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 66250 35750 66250 52250 150 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 47250 35750 47250 52250 150 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$TRACK +Po 0 65000 43500 65750 43500 340 -1 +De 0 0 1 0 800 +Po 0 47750 42750 47750 46750 340 -1 +De 0 0 1 0 0 +Po 0 47750 39500 47750 42750 340 -1 +De 0 0 1 0 0 +Po 0 48500 39500 50000 38000 340 -1 +De 0 0 1 0 800 +Po 0 50000 38000 51750 38000 340 -1 +De 0 0 1 0 400 +Po 0 51750 38000 63750 38000 340 -1 +De 0 0 1 0 800 +Po 0 63750 38000 65000 39250 340 -1 +De 0 0 1 0 400 +Po 0 65750 43500 65750 48100 340 -1 +De 0 0 1 0 0 +Po 0 48500 39500 47750 39500 340 -1 +De 0 0 1 0 800 +Po 0 47750 42750 48500 42750 340 -1 +De 0 0 1 0 400 +Po 0 65100 48750 65750 48100 340 -1 +De 0 0 1 0 0 +Po 0 65000 48750 65100 48750 340 -1 +De 0 0 1 0 0 +Po 0 65750 40000 65000 39250 340 -1 +De 0 0 1 0 0 +Po 0 65750 40000 65750 43500 340 -1 +De 0 0 1 0 0 +Po 0 47750 47000 47750 46750 340 -1 +De 0 0 1 0 0 +Po 0 49000 48250 47750 47000 340 -1 +De 0 0 1 0 0 +Po 0 59250 50750 59250 45800 340 -1 +De 0 0 2 0 800 +Po 0 60110 41128 60110 43640 340 -1 +De 0 0 2 0 800 +Po 0 59662 40680 60110 41128 340 -1 +De 0 0 2 0 400 +Po 0 58750 40680 59662 40680 340 -1 +De 0 0 2 0 0 +Po 0 59000 44750 59000 45550 340 -1 +De 0 0 2 0 0 +Po 0 59000 45550 59250 45800 340 -1 +De 0 0 2 0 0 +Po 0 60110 43640 59000 44750 340 -1 +De 0 0 2 0 0 +Po 0 58250 45732 57390 44872 340 -1 +De 0 0 3 0 400 +Po 0 58250 50750 58250 45732 340 -1 +De 0 0 3 0 800 +Po 0 50750 43750 48500 43750 340 -1 +De 0 0 4 0 400 +Po 0 51750 42750 50750 43750 340 -1 +De 0 0 4 0 800 +Po 0 48750 45250 48500 45000 340 -1 +De 0 0 4 0 0 +Po 0 48500 45000 48500 43750 340 -1 +De 0 0 4 0 0 +Po 0 49000 45250 48750 45250 340 -1 +De 0 0 4 0 0 +Po 0 55500 48750 54750 49500 340 -1 +De 0 0 5 0 0 +Po 0 54750 49500 51250 49500 340 -1 +De 0 0 5 0 0 +Po 0 51250 49500 50750 50000 340 -1 +De 0 0 5 0 0 +Po 0 56542 42280 55970 42280 340 -1 +De 0 0 5 0 800 +Po 0 55500 42750 55500 47750 340 -1 +De 0 0 5 0 400 +Po 0 55970 42280 55500 42750 340 -1 +De 0 0 5 0 0 +Po 0 55500 47750 55500 48750 340 -1 +De 0 0 5 0 800 +Po 0 61000 45762 60110 44872 340 -1 +De 0 0 5 0 400 +Po 0 61000 51250 61000 45762 340 -1 +De 0 0 5 0 0 +Po 0 50750 50000 50750 51250 340 -1 +De 0 0 5 0 0 +Po 0 50750 51250 51250 51750 340 -1 +De 0 0 5 0 0 +Po 0 51250 51750 60500 51750 340 -1 +De 0 0 5 0 0 +Po 0 60500 51750 61000 51250 340 -1 +De 0 0 5 0 0 +Po 0 64970 42280 65000 42250 340 -1 +De 0 0 6 0 400 +Po 0 60958 42280 64970 42280 340 -1 +De 0 0 6 0 800 +Po 0 49000 40500 49500 40000 340 -1 +De 0 0 7 0 0 +Po 0 51750 40000 56262 40000 340 -1 +De 0 0 7 0 800 +Po 0 56262 40000 57390 41128 340 -1 +De 0 0 7 0 400 +Po 0 48500 40500 49000 40500 340 -1 +De 0 0 7 0 800 +Po 0 49500 40000 51750 40000 340 -1 +De 0 0 7 0 400 +Po 0 60958 43720 62970 43720 340 -1 +De 0 0 8 0 800 +Po 0 65000 44500 65000 45750 340 -1 +De 0 0 8 0 C00 +Po 0 62970 43720 63750 44500 340 -1 +De 0 0 8 0 0 +Po 0 63750 44500 65000 44500 340 -1 +De 0 0 8 0 400 +Po 0 51750 50750 55500 50750 340 -1 +De 0 0 9 0 C00 +Po 0 56542 43704 56542 43958 340 -1 +De 0 0 9 0 800 +Po 0 56500 50250 56500 46000 340 -1 +De 0 0 9 0 0 +Po 0 56000 50750 56500 50250 340 -1 +De 0 0 9 0 0 +Po 0 55500 50750 56000 50750 340 -1 +De 0 0 9 0 800 +Po 0 56542 43958 56250 44250 340 -1 +De 0 0 9 0 0 +Po 0 56250 44250 56250 45750 340 -1 +De 0 0 9 0 0 +Po 0 56250 45750 56500 46000 340 -1 +De 0 0 9 0 0 +$EndTRACK +$ZONE +$EndZONE +$CZONE_OUTLINE +ZInfo 4EED96A1 1 "GND" +ZLayer 0 +ZAux 4 E +ZClearance 250 T +ZMinThickness 100 +ZOptions 0 16 F 100 197 +ZSmoothing 0 0 +ZCorner 66000 52000 0 +ZCorner 66000 36000 0 +ZCorner 47500 36000 0 +ZCorner 47500 52000 1 +$POLYSCORNERS +65875 50319 0 0 +65624 50068 0 0 +65429 49986 0 0 +65429 48803 0 0 +65416 48635 0 0 +65376 48536 0 0 +65312 48506 0 0 +65244 48574 0 0 +65244 48438 0 0 +65214 48374 0 0 +65053 48321 0 0 +64885 48334 0 0 +64786 48374 0 0 +64756 48438 0 0 +65000 48682 0 0 +65244 48438 0 0 +65244 48574 0 0 +65068 48750 0 0 +65312 48994 0 0 +65376 48964 0 0 +65429 48803 0 0 +65429 49986 0 0 +65244 49909 0 0 +65244 49062 0 0 +65000 48818 0 0 +64932 48886 0 0 +64932 48750 0 0 +64688 48506 0 0 +64624 48536 0 0 +64571 48697 0 0 +64584 48865 0 0 +64624 48964 0 0 +64688 48994 0 0 +64932 48750 0 0 +64932 48886 0 0 +64756 49062 0 0 +64786 49126 0 0 +64947 49179 0 0 +65115 49166 0 0 +65214 49126 0 0 +65244 49062 0 0 +65244 49909 0 0 +65220 49900 0 0 +64782 49900 0 0 +64378 50067 0 0 +64068 50376 0 0 +63900 50780 0 0 +63900 51218 0 0 +64067 51622 0 0 +64319 51875 0 0 +61039 51875 0 0 +61332 51582 0 0 +61434 51430 0 0 +61469 51250 0 0 +61470 51250 0 0 +61470 45762 0 0 +61434 45582 0 0 +61332 45430 0 0 +61332 45429 0 0 +60922 45020 0 0 +60943 44987 0 0 +60986 44717 0 0 +60960 44609 0 0 +61080 44600 0 0 +61324 44476 0 0 +61501 44269 0 0 +61526 44190 0 0 +62776 44190 0 0 +63418 44832 0 0 +63570 44934 0 0 +63750 44970 0 0 +64530 44970 0 0 +64530 45407 0 0 +64513 45424 0 0 +64425 45635 0 0 +64425 45864 0 0 +64512 46075 0 0 +64674 46237 0 0 +64885 46325 0 0 +65114 46325 0 0 +65325 46238 0 0 +65487 46076 0 0 +65575 45865 0 0 +65575 45636 0 0 +65488 45425 0 0 +65470 45407 0 0 +65470 44877 0 0 +65508 44839 0 0 +65599 44619 0 0 +65599 44381 0 0 +65508 44161 0 0 +65339 43992 0 0 +65235 43949 0 0 +65270 43949 0 0 +65329 43949 0 0 +65384 43927 0 0 +65426 43885 0 0 +65449 43830 0 0 +65450 43585 0 0 +65450 43415 0 0 +65449 43170 0 0 +65426 43115 0 0 +65384 43073 0 0 +65329 43051 0 0 +65270 43051 0 0 +65085 43050 0 0 +65048 43087 0 0 +65048 43452 0 0 +65413 43452 0 0 +65450 43415 0 0 +65450 43585 0 0 +65413 43548 0 0 +65098 43548 0 0 +65048 43548 0 0 +64952 43548 0 0 +64952 43452 0 0 +64952 43087 0 0 +64915 43050 0 0 +64730 43051 0 0 +64671 43051 0 0 +64616 43073 0 0 +64574 43115 0 0 +64551 43170 0 0 +64550 43415 0 0 +64587 43452 0 0 +64952 43452 0 0 +64952 43548 0 0 +64902 43548 0 0 +64587 43548 0 0 +64550 43585 0 0 +64551 43830 0 0 +64574 43885 0 0 +64616 43927 0 0 +64671 43949 0 0 +64730 43949 0 0 +64764 43949 0 0 +64661 43992 0 0 +64623 44030 0 0 +63944 44030 0 0 +63302 43388 0 0 +63150 43286 0 0 +62970 43250 0 0 +61660 43250 0 0 +61575 43081 0 0 +61480 43000 0 0 +61575 42920 0 0 +61661 42750 0 0 +64705 42750 0 0 +64885 42825 0 0 +65114 42825 0 0 +65325 42738 0 0 +65487 42576 0 0 +65575 42365 0 0 +65575 42136 0 0 +65488 41925 0 0 +65429 41866 0 0 +65429 39303 0 0 +65416 39135 0 0 +65376 39036 0 0 +65312 39006 0 0 +65244 39074 0 0 +65244 38938 0 0 +65214 38874 0 0 +65053 38821 0 0 +64885 38834 0 0 +64786 38874 0 0 +64756 38938 0 0 +65000 39182 0 0 +65244 38938 0 0 +65244 39074 0 0 +65068 39250 0 0 +65312 39494 0 0 +65376 39464 0 0 +65429 39303 0 0 +65429 41866 0 0 +65326 41763 0 0 +65244 41728 0 0 +65244 39562 0 0 +65000 39318 0 0 +64932 39386 0 0 +64932 39250 0 0 +64688 39006 0 0 +64624 39036 0 0 +64571 39197 0 0 +64584 39365 0 0 +64624 39464 0 0 +64688 39494 0 0 +64932 39250 0 0 +64932 39386 0 0 +64756 39562 0 0 +64786 39626 0 0 +64947 39679 0 0 +65115 39666 0 0 +65214 39626 0 0 +65244 39562 0 0 +65244 41728 0 0 +65115 41675 0 0 +64886 41675 0 0 +64675 41762 0 0 +64627 41810 0 0 +61527 41810 0 0 +61502 41732 0 0 +61325 41524 0 0 +61081 41400 0 0 +60960 41390 0 0 +60986 41284 0 0 +60944 41014 0 0 +60801 40781 0 0 +60580 40620 0 0 +60228 40364 0 0 +59962 40300 0 0 +59929 40304 0 0 +59842 40246 0 0 +59662 40210 0 0 +59469 40210 0 0 +59357 40098 0 0 +59104 39993 0 0 +58831 39993 0 0 +58397 39993 0 0 +58144 40097 0 0 +57951 40290 0 0 +57904 40401 0 0 +57809 40343 0 0 +57539 40300 0 0 +57287 40360 0 0 +56594 39668 0 0 +56442 39566 0 0 +56262 39530 0 0 +52374 39530 0 0 +52354 39481 0 0 +52270 39397 0 0 +52253 39389 0 0 +52253 38071 0 0 +52242 37873 0 0 +52188 37742 0 0 +52116 37702 0 0 +52048 37770 0 0 +52048 37634 0 0 +52008 37562 0 0 +51821 37497 0 0 +51623 37508 0 0 +51492 37562 0 0 +51452 37634 0 0 +51750 37932 0 0 +52048 37634 0 0 +52048 37770 0 0 +51818 38000 0 0 +52116 38298 0 0 +52188 38258 0 0 +52253 38071 0 0 +52253 39389 0 0 +52160 39351 0 0 +52048 39351 0 0 +52048 38366 0 0 +51750 38068 0 0 +51682 38136 0 0 +51682 38000 0 0 +51384 37702 0 0 +51312 37742 0 0 +51247 37929 0 0 +51258 38127 0 0 +51312 38258 0 0 +51384 38298 0 0 +51682 38000 0 0 +51682 38136 0 0 +51452 38366 0 0 +51492 38438 0 0 +51679 38503 0 0 +51877 38492 0 0 +52008 38438 0 0 +52048 38366 0 0 +52048 39351 0 0 +52041 39351 0 0 +51341 39351 0 0 +51231 39396 0 0 +51147 39480 0 0 +51126 39530 0 0 +49500 39530 0 0 +49320 39566 0 0 +49168 39668 0 0 +48954 39881 0 0 +48954 39559 0 0 +48943 39381 0 0 +48897 39272 0 0 +48830 39238 0 0 +48762 39306 0 0 +48762 39170 0 0 +48728 39103 0 0 +48559 39046 0 0 +48381 39057 0 0 +48272 39103 0 0 +48238 39170 0 0 +48500 39432 0 0 +48762 39170 0 0 +48762 39306 0 0 +48568 39500 0 0 +48830 39762 0 0 +48897 39728 0 0 +48954 39559 0 0 +48954 39881 0 0 +48912 39923 0 0 +48860 39901 0 0 +48741 39901 0 0 +48718 39901 0 0 +48728 39897 0 0 +48762 39830 0 0 +48500 39568 0 0 +48432 39636 0 0 +48432 39500 0 0 +48170 39238 0 0 +48103 39272 0 0 +48046 39441 0 0 +48057 39619 0 0 +48103 39728 0 0 +48170 39762 0 0 +48432 39500 0 0 +48432 39636 0 0 +48238 39830 0 0 +48272 39897 0 0 +48283 39901 0 0 +48141 39901 0 0 +48031 39946 0 0 +47947 40030 0 0 +47901 40140 0 0 +47901 40259 0 0 +47901 40859 0 0 +47946 40969 0 0 +48030 41053 0 0 +48140 41099 0 0 +48259 41099 0 0 +48859 41099 0 0 +48969 41054 0 0 +49053 40970 0 0 +49057 40958 0 0 +49180 40934 0 0 +49332 40832 0 0 +49694 40470 0 0 +51125 40470 0 0 +51146 40519 0 0 +51230 40603 0 0 +51340 40649 0 0 +51459 40649 0 0 +52159 40649 0 0 +52269 40604 0 0 +52353 40520 0 0 +52373 40470 0 0 +56067 40470 0 0 +56577 40979 0 0 +56557 41013 0 0 +56514 41283 0 0 +56539 41390 0 0 +56420 41400 0 0 +56176 41524 0 0 +55999 41731 0 0 +55973 41810 0 0 +55970 41810 0 0 +55790 41846 0 0 +55637 41948 0 0 +55168 42418 0 0 +55066 42570 0 0 +55030 42750 0 0 +55030 47407 0 0 +55013 47424 0 0 +54925 47635 0 0 +54925 47864 0 0 +55012 48075 0 0 +55030 48093 0 0 +55030 48555 0 0 +54555 49030 0 0 +52399 49030 0 0 +52399 43160 0 0 +52399 43041 0 0 +52399 42341 0 0 +52354 42231 0 0 +52270 42147 0 0 +52160 42101 0 0 +52041 42101 0 0 +51341 42101 0 0 +51231 42146 0 0 +51147 42230 0 0 +51101 42340 0 0 +51101 42459 0 0 +51101 42735 0 0 +50556 43280 0 0 +49053 43280 0 0 +48970 43197 0 0 +48954 43190 0 0 +48954 42809 0 0 +48943 42631 0 0 +48897 42522 0 0 +48830 42488 0 0 +48762 42556 0 0 +48762 42420 0 0 +48728 42353 0 0 +48559 42296 0 0 +48381 42307 0 0 +48272 42353 0 0 +48238 42420 0 0 +48500 42682 0 0 +48762 42420 0 0 +48762 42556 0 0 +48568 42750 0 0 +48830 43012 0 0 +48897 42978 0 0 +48954 42809 0 0 +48954 43190 0 0 +48860 43151 0 0 +48741 43151 0 0 +48718 43151 0 0 +48728 43147 0 0 +48762 43080 0 0 +48500 42818 0 0 +48432 42886 0 0 +48432 42750 0 0 +48170 42488 0 0 +48103 42522 0 0 +48046 42691 0 0 +48057 42869 0 0 +48103 42978 0 0 +48170 43012 0 0 +48432 42750 0 0 +48432 42886 0 0 +48238 43080 0 0 +48272 43147 0 0 +48283 43151 0 0 +48141 43151 0 0 +48031 43196 0 0 +47947 43280 0 0 +47901 43390 0 0 +47901 43509 0 0 +47901 44109 0 0 +47946 44219 0 0 +48030 44303 0 0 +48030 45000 0 0 +48066 45180 0 0 +48168 45332 0 0 +48417 45582 0 0 +48418 45582 0 0 +48570 45684 0 0 +48633 45696 0 0 +48674 45737 0 0 +48885 45825 0 0 +49114 45825 0 0 +49325 45738 0 0 +49487 45576 0 0 +49575 45365 0 0 +49575 45136 0 0 +49488 44925 0 0 +49326 44763 0 0 +49115 44675 0 0 +48970 44675 0 0 +48970 44303 0 0 +49053 44220 0 0 +50750 44220 0 0 +50930 44184 0 0 +51082 44082 0 0 +51765 43399 0 0 +52159 43399 0 0 +52269 43354 0 0 +52353 43270 0 0 +52399 43160 0 0 +52399 49030 0 0 +51250 49030 0 0 +51070 49066 0 0 +50918 49168 0 0 +50418 49668 0 0 +50316 49820 0 0 +50280 50000 0 0 +50280 51250 0 0 +50316 51430 0 0 +50418 51582 0 0 +50711 51875 0 0 +49180 51875 0 0 +49432 51624 0 0 +49600 51220 0 0 +49600 50782 0 0 +49433 50378 0 0 +49429 50373 0 0 +49429 48303 0 0 +49416 48135 0 0 +49376 48036 0 0 +49312 48006 0 0 +49244 48074 0 0 +49244 47938 0 0 +49214 47874 0 0 +49053 47821 0 0 +48885 47834 0 0 +48786 47874 0 0 +48756 47938 0 0 +49000 48182 0 0 +49244 47938 0 0 +49244 48074 0 0 +49068 48250 0 0 +49312 48494 0 0 +49376 48464 0 0 +49429 48303 0 0 +49429 50373 0 0 +49244 50188 0 0 +49244 48562 0 0 +49000 48318 0 0 +48932 48386 0 0 +48932 48250 0 0 +48688 48006 0 0 +48624 48036 0 0 +48571 48197 0 0 +48584 48365 0 0 +48624 48464 0 0 +48688 48494 0 0 +48932 48250 0 0 +48932 48386 0 0 +48756 48562 0 0 +48786 48626 0 0 +48947 48679 0 0 +49115 48666 0 0 +49214 48626 0 0 +49244 48562 0 0 +49244 50188 0 0 +49124 50068 0 0 +48720 49900 0 0 +48282 49900 0 0 +47878 50067 0 0 +47625 50319 0 0 +47625 37680 0 0 +47876 37932 0 0 +48280 38100 0 0 +48718 38100 0 0 +49122 37933 0 0 +49432 37624 0 0 +49600 37220 0 0 +49600 36782 0 0 +49433 36378 0 0 +49180 36125 0 0 +64319 36125 0 0 +64068 36376 0 0 +63900 36780 0 0 +63900 37218 0 0 +64067 37622 0 0 +64376 37932 0 0 +64780 38100 0 0 +65218 38100 0 0 +65622 37933 0 0 +65875 37680 0 0 +65875 50319 1 0 +$endPOLYSCORNERS +$endCZONE_OUTLINE +$EndBOARD diff --git a/demos/ecc83/ecc83-pp_v2.sch b/demos/ecc83/ecc83-pp_v2.sch index d89a6dfc73..d6309b780d 100644 --- a/demos/ecc83/ecc83-pp_v2.sch +++ b/demos/ecc83/ecc83-pp_v2.sch @@ -1,283 +1,259 @@ -EESchema Schematic File Version 2 date 30/12/2010 18:27:52 -LIBS:power -LIBS:device -LIBS:valves -LIBS:conn -LIBS:linear -LIBS:regul -LIBS:74xx -LIBS:cmos4000 -LIBS:adc-dac -LIBS:memory -LIBS:xilinx -LIBS:special -LIBS:microcontrollers -LIBS:microchip -LIBS:analog_switches -LIBS:motorola -LIBS:intel -LIBS:audio -LIBS:interface -LIBS:digital-audio -LIBS:philips -LIBS:display -LIBS:cypress -LIBS:siliconi -LIBS:contrib -LIBS:ecc83-pp_v2-cache -EELAYER 25 0 -EELAYER END -$Descr A4 11700 8267 -Sheet 1 1 -Title "ECC Push-Pull" -Date "30 dec 2010" -Rev "0.1" -Comp "" -Comment1 "" -Comment2 "" -Comment3 "" -Comment4 "" -$EndDescr -Wire Wire Line - 6050 4450 6150 4450 -Wire Wire Line - 5750 3850 5750 4050 -Wire Wire Line - 4450 5400 4450 4450 -Wire Wire Line - 4450 4450 4650 4450 -Wire Wire Line - 9850 6350 9950 6350 -Wire Wire Line - 9950 6350 9950 6150 -Wire Wire Line - 4150 5300 4150 5000 -Wire Wire Line - 6950 5150 6950 5000 -Wire Wire Line - 4150 4800 4450 4800 -Connection ~ 4450 4800 -Wire Wire Line - 6950 4350 6950 4050 -Connection ~ 6950 4250 -Wire Wire Line - 4850 4850 4850 5400 -Wire Wire Line - 6300 3900 6300 4000 -Wire Wire Line - 6950 3850 5750 3850 -Connection ~ 6700 3850 -Wire Wire Line - 6700 4250 6950 4250 -Wire Wire Line - 6150 4450 6150 3900 -Connection ~ 6150 3900 -Wire Wire Line - 6300 4500 6300 4900 -Connection ~ 6300 4800 -Wire Wire Line - 6950 4800 6700 4800 -Wire Wire Line - 6700 4800 6700 5400 -Wire Wire Line - 10050 6150 10050 6350 -Wire Wire Line - 10050 6250 9850 6250 -Connection ~ 10050 6250 -Wire Wire Line - 4100 5250 4150 5250 -Connection ~ 4150 5250 -Wire Wire Line - 9850 6250 9850 6150 -Wire Wire Line - 6300 3900 4950 3900 -Wire Wire Line - 4950 3900 4950 4050 -Wire Wire Line - 5850 4850 5850 4900 -Wire Wire Line - 5850 4900 6300 4900 -$Comp -L ECC83 U1 -U 3 1 48B4F266 -P 9950 5700 -F 0 "U1" H 10080 6010 50 0000 C CNN -F 1 "ECC83" H 10300 5400 50 0000 C CNN -F 2 "VALVE-NOVAL_P" H 10220 5300 50 0001 C CNN - 3 9950 5700 - 1 0 0 -1 -$EndComp -$Comp -L ECC83 U1 -U 2 1 48B4F263 -P 4950 4450 -F 0 "U1" H 5080 4760 50 0000 C CNN -F 1 "ECC83" H 5150 4100 50 0000 C CNN -F 2 "VALVE-NOVAL_P" H 5220 4050 50 0001 C CNN - 2 4950 4450 - 1 0 0 -1 -$EndComp -$Comp -L ECC83 U1 -U 1 1 48B4F256 -P 5750 4450 -F 0 "U1" H 5880 4760 50 0000 C CNN -F 1 "ECC83" H 5500 4150 50 0000 C CNN -F 2 "VALVE-NOVAL_P" H 6020 4050 50 0001 C CNN - 1 5750 4450 - -1 0 0 -1 -$EndComp -$Comp -L GND #PWR01 -U 1 1 457DBAF8 -P 6950 5150 -F 0 "#PWR01" H 6950 5150 30 0001 C CNN -F 1 "GND" H 6950 5080 30 0001 C CNN - 1 6950 5150 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR02 -U 1 1 457DBAF5 -P 6700 5900 -F 0 "#PWR02" H 6700 5900 30 0001 C CNN -F 1 "GND" H 6700 5830 30 0001 C CNN - 1 6700 5900 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR03 -U 1 1 457DBAF1 -P 4850 5900 -F 0 "#PWR03" H 4850 5900 30 0001 C CNN -F 1 "GND" H 4850 5830 30 0001 C CNN - 1 4850 5900 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR04 -U 1 1 457DBAEF -P 4450 5900 -F 0 "#PWR04" H 4450 5900 30 0001 C CNN -F 1 "GND" H 4450 5830 30 0001 C CNN - 1 4450 5900 - 1 0 0 -1 -$EndComp -$Comp -L PWR_FLAG #FLG05 -U 1 1 457DBAC0 -P 4100 5250 -F 0 "#FLG05" H 4100 5520 30 0001 C CNN -F 1 "PWR_FLAG" H 4100 5480 30 0000 C CNN - 1 4100 5250 - 0 -1 -1 0 -$EndComp -$Comp -L CONN_2 P4 -U 1 1 456A8ACC -P 9950 6700 -F 0 "P4" V 9900 6700 40 0000 C CNN -F 1 "CONN_2" V 10000 6700 40 0000 C CNN - 1 9950 6700 - 0 1 1 0 -$EndComp -$Comp -L C C1 -U 1 1 4549F4BE -P 6700 4050 -F 0 "C1" H 6750 4150 50 0000 L CNN -F 1 "10uF" H 6450 4150 50 0000 L CNN - 1 6700 4050 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR06 -U 1 1 4549F4B9 -P 4150 5300 -F 0 "#PWR06" H 4150 5300 30 0001 C CNN -F 1 "GND" H 4150 5230 30 0001 C CNN - 1 4150 5300 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR07 -U 1 1 4549F4B3 -P 6950 4350 -F 0 "#PWR07" H 6950 4350 30 0001 C CNN -F 1 "GND" H 6950 4280 30 0001 C CNN - 1 6950 4350 - 1 0 0 -1 -$EndComp -$Comp -L CONN_2 P3 -U 1 1 4549F4A5 -P 7300 3950 -F 0 "P3" V 7250 3950 40 0000 C CNN -F 1 "POWER" V 7350 3950 40 0000 C CNN - 1 7300 3950 - 1 0 0 -1 -$EndComp -$Comp -L CONN_2 P2 -U 1 1 4549F46C -P 7300 4900 -F 0 "P2" V 7250 4900 40 0000 C CNN -F 1 "OUT" V 7350 4900 40 0000 C CNN - 1 7300 4900 - 1 0 0 -1 -$EndComp -$Comp -L CONN_2 P1 -U 1 1 4549F464 -P 3800 4900 -F 0 "P1" V 3750 4900 40 0000 C CNN -F 1 "IN" V 3850 4900 40 0000 C CNN - 1 3800 4900 - -1 0 0 1 -$EndComp -$Comp -L C C2 -U 1 1 4549F3BE -P 6500 4800 -F 0 "C2" H 6550 4900 50 0000 L CNN -F 1 "680nF" H 6550 4700 50 0000 L CNN - 1 6500 4800 - 0 1 1 0 -$EndComp -$Comp -L R R3 -U 1 1 4549F3AD -P 6700 5650 -F 0 "R3" V 6780 5650 50 0000 C CNN -F 1 "100K" V 6700 5650 50 0000 C CNN - 1 6700 5650 - 1 0 0 -1 -$EndComp -$Comp -L R R4 -U 1 1 4549F3A2 -P 4450 5650 -F 0 "R4" V 4530 5650 50 0000 C CNN -F 1 "47K" V 4450 5650 50 0000 C CNN - 1 4450 5650 - 1 0 0 -1 -$EndComp -$Comp -L R R2 -U 1 1 4549F39D -P 4850 5650 -F 0 "R2" V 4930 5650 50 0000 C CNN -F 1 "1.5K" V 4850 5650 50 0000 C CNN - 1 4850 5650 - 1 0 0 -1 -$EndComp -$Comp -L R R1 -U 1 1 4549F38A -P 6300 4250 -F 0 "R1" V 6380 4250 50 0000 C CNN -F 1 "1.5K" V 6300 4250 50 0000 C CNN - 1 6300 4250 - 1 0 0 -1 -$EndComp -$EndSCHEMATC +EESchema Schematic File Version 2 +LIBS:power,device,valves,conn,linear,regul,74xx,cmos4000,adc-dac,memory,xilinx,special,microcontrollers,microchip,analog_switches,motorola,intel,audio,interface,digital-audio,philips,display,cypress,siliconi,contrib +EELAYER 23 0 +EELAYER END +$Descr A4 11700 8267 +Sheet 1 1 +Title "ECC Push-Pull" +Date "11 dec 2006" +Rev "0.1" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +Wire Wire Line + 6050 4450 6150 4450 +Wire Wire Line + 5750 3850 5750 4050 +Connection ~ 4450 4500 +Wire Wire Line + 4450 5400 4450 4450 +Wire Wire Line + 4450 4450 4650 4450 +Wire Wire Line + 9850 6350 9950 6350 +Wire Wire Line + 9950 6350 9950 6150 +Wire Wire Line + 4150 5300 4150 5000 +Wire Wire Line + 6950 5150 6950 5000 +Wire Wire Line + 4150 4800 4450 4800 +Connection ~ 4450 4800 +Wire Wire Line + 6950 4350 6950 4050 +Connection ~ 6950 4250 +Wire Wire Line + 4850 4850 4850 5400 +Wire Wire Line + 6300 3900 6300 4000 +Wire Wire Line + 6950 3850 5750 3850 +Connection ~ 6700 3850 +Wire Wire Line + 6700 4250 6950 4250 +Wire Wire Line + 6150 4450 6150 3900 +Connection ~ 6150 3900 +Wire Wire Line + 6300 4500 6300 4900 +Connection ~ 6300 4800 +Wire Wire Line + 6950 4800 6700 4800 +Wire Wire Line + 6700 4800 6700 5400 +Wire Wire Line + 10050 6150 10050 6350 +Wire Wire Line + 10050 6250 9850 6250 +Connection ~ 10050 6250 +Wire Wire Line + 4100 5250 4150 5250 +Connection ~ 4150 5250 +Wire Wire Line + 9850 6250 9850 6150 +Wire Wire Line + 6300 3900 4950 3900 +Wire Wire Line + 4950 3900 4950 4050 +Wire Wire Line + 5850 4850 5850 4900 +Wire Wire Line + 5850 4900 6300 4900 +$Comp +L ECC83 U1 +U 3 1 48B4F266 +P 9950 5700 +F 0 "U1" H 10080 6010 50 0000 C C +F 1 "ECC81_83" H 10300 5400 50 0000 C C +F 2 "VALVE-NOVAL_P" H 10220 5300 50 0001 C C + 3 9950 5700 + 1 0 0 -1 +$EndComp +$Comp +L ECC83 U1 +U 2 1 48B4F263 +P 4950 4450 +F 0 "U1" H 5080 4760 50 0000 C C +F 1 "ECC83" H 5150 4100 50 0000 C C +F 2 "VALVE-NOVAL_P" H 5220 4050 50 0001 C C + 2 4950 4450 + 1 0 0 -1 +$EndComp +$Comp +L ECC83 U1 +U 1 1 48B4F256 +P 5750 4450 +F 0 "U1" H 5880 4760 50 0000 C C +F 1 "ECC83" H 5500 4150 50 0000 C C +F 2 "VALVE-NOVAL_P" H 6020 4050 50 0001 C C + 1 5750 4450 + -1 0 0 -1 +$EndComp +$Comp +L GND #PWR01 +U 1 1 457DBAF8 +P 6950 5150 +F 0 "#PWR01" H 6950 5150 30 0001 C C +F 1 "GND" H 6950 5080 30 0001 C C + 1 6950 5150 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR02 +U 1 1 457DBAF5 +P 6700 5900 +F 0 "#PWR02" H 6700 5900 30 0001 C C +F 1 "GND" H 6700 5830 30 0001 C C + 1 6700 5900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR03 +U 1 1 457DBAF1 +P 4850 5900 +F 0 "#PWR03" H 4850 5900 30 0001 C C +F 1 "GND" H 4850 5830 30 0001 C C + 1 4850 5900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR04 +U 1 1 457DBAEF +P 4450 5900 +F 0 "#PWR04" H 4450 5900 30 0001 C C +F 1 "GND" H 4450 5830 30 0001 C C + 1 4450 5900 + 1 0 0 -1 +$EndComp +$Comp +L PWR_FLAG #FLG05 +U 1 1 457DBAC0 +P 4100 5250 +F 0 "#FLG05" H 4100 5520 30 0001 C C +F 1 "PWR_FLAG" H 4100 5480 30 0000 C C + 1 4100 5250 + 0 -1 -1 0 +$EndComp +$Comp +L CONN_2 P4 +U 1 1 456A8ACC +P 9950 6700 +F 0 "P4" V 9900 6700 40 0000 C C +F 1 "CONN_2" V 10000 6700 40 0000 C C + 1 9950 6700 + 0 1 1 0 +$EndComp +$Comp +L C C1 +U 1 1 4549F4BE +P 6700 4050 +F 0 "C1" H 6750 4150 50 0000 L C +F 1 "10uF" H 6450 4150 50 0000 L C + 1 6700 4050 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR06 +U 1 1 4549F4B9 +P 4150 5300 +F 0 "#PWR06" H 4150 5300 30 0001 C C +F 1 "GND" H 4150 5230 30 0001 C C + 1 4150 5300 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR07 +U 1 1 4549F4B3 +P 6950 4350 +F 0 "#PWR07" H 6950 4350 30 0001 C C +F 1 "GND" H 6950 4280 30 0001 C C + 1 6950 4350 + 1 0 0 -1 +$EndComp +$Comp +L CONN_2 P3 +U 1 1 4549F4A5 +P 7300 3950 +F 0 "P3" V 7250 3950 40 0000 C C +F 1 "POWER" V 7350 3950 40 0000 C C + 1 7300 3950 + 1 0 0 -1 +$EndComp +$Comp +L CONN_2 P2 +U 1 1 4549F46C +P 7300 4900 +F 0 "P2" V 7250 4900 40 0000 C C +F 1 "OUT" V 7350 4900 40 0000 C C + 1 7300 4900 + 1 0 0 -1 +$EndComp +$Comp +L CONN_2 P1 +U 1 1 4549F464 +P 3800 4900 +F 0 "P1" V 3750 4900 40 0000 C C +F 1 "IN" V 3850 4900 40 0000 C C + 1 3800 4900 + -1 0 0 1 +$EndComp +$Comp +L C C2 +U 1 1 4549F3BE +P 6500 4800 +F 0 "C2" H 6550 4900 50 0000 L C +F 1 "680nF" H 6550 4700 50 0000 L C + 1 6500 4800 + 0 1 1 0 +$EndComp +$Comp +L R R3 +U 1 1 4549F3AD +P 6700 5650 +F 0 "R3" V 6780 5650 50 0000 C C +F 1 "100K" V 6700 5650 50 0000 C C + 1 6700 5650 + 1 0 0 -1 +$EndComp +$Comp +L R R4 +U 1 1 4549F3A2 +P 4450 5650 +F 0 "R4" V 4530 5650 50 0000 C C +F 1 "47K" V 4450 5650 50 0000 C C + 1 4450 5650 + 1 0 0 -1 +$EndComp +$Comp +L R R2 +U 1 1 4549F39D +P 4850 5650 +F 0 "R2" V 4930 5650 50 0000 C C +F 1 "1.5K" V 4850 5650 50 0000 C C + 1 4850 5650 + 1 0 0 -1 +$EndComp +$Comp +L R R1 +U 1 1 4549F38A +P 6300 4250 +F 0 "R1" V 6380 4250 50 0000 C C +F 1 "1.5K" V 6300 4250 50 0000 C C + 1 6300 4250 + 1 0 0 -1 +$EndComp +$EndSCHEMATC diff --git a/demos/interf_u/interf_u-cache.lib b/demos/interf_u/interf_u-cache.lib index 2af0d85799..c726a5f83b 100644 --- a/demos/interf_u/interf_u-cache.lib +++ b/demos/interf_u/interf_u-cache.lib @@ -1,4 +1,5 @@ -EESchema-LIBRARY Version 2.3 Date: 02/02/2011 07:13:37 +EESchema-LIBRARY Version 2.3 Date: 18/12/2011 10:04:44 +#encoding utf-8 # # 4003APG120 # @@ -350,8 +351,8 @@ $FPLIST C1-1 $ENDFPLIST DRAW -P 2 0 1 10 -100 -30 100 -30 N -P 2 0 1 10 -100 30 100 30 N +P 2 0 1 20 -100 -30 100 -30 N +P 2 0 1 20 -100 30 100 30 N X ~ 1 0 200 170 D 40 40 1 1 P X ~ 2 0 -200 170 U 40 40 1 1 P ENDDRAW @@ -582,12 +583,11 @@ ENDDEF # PWR_FLAG # DEF PWR_FLAG #FLG 0 0 N N 1 F P -F0 "#FLG" 0 270 30 H I C CNN -F1 "PWR_FLAG" 0 230 30 H V C CNN +F0 "#FLG" 0 95 30 H I C CNN +F1 "PWR_FLAG" 0 180 30 H V C CNN DRAW X pwr 1 0 0 0 U 20 20 0 0 w -P 3 0 1 0 0 0 0 100 0 100 N -P 5 0 1 0 0 100 -100 150 0 200 100 150 0 100 N +P 6 0 1 0 0 0 0 50 -75 100 0 150 75 100 0 50 N ENDDRAW ENDDEF # diff --git a/demos/interf_u/interf_u.brd b/demos/interf_u/interf_u.brd index 31813c8c9a..a778de17e7 100644 --- a/demos/interf_u/interf_u.brd +++ b/demos/interf_u/interf_u.brd @@ -1,6 +1,6 @@ -PCBNEW-BOARD Version 1 date 02/04/2011 15:04:20 +PCBNEW-BOARD Version 1 date 20/12/2011 20:20:18 -# Created by Pcbnew(2011-03-30 BZR 2935)-testing +# Created by Pcbnew(2011-12-16 BZR 3311)-testing $GENERAL encoding utf-8 @@ -9,7 +9,7 @@ Ly 1FFF8001 EnabledLayers 1FFF8001 Links 200 NoConn 0 -Di 27950 13474 85202 56221 +Di 27262 9801 79721 77260 Ndraw 19 Ntrack 779 Nzone 0 @@ -21,7 +21,7 @@ $EndGENERAL $SHEETDESCR Sheet A4 11700 8267 Title "Demo" -Date "2 apr 2011" +Date "20 dec 2011" Rev "2.C" Comp "Kicad" Comment1 "" @@ -641,7 +641,7 @@ AddNet "GND" AddNet "VCC" $EndNCLASS $MODULE -Po 81250 50500 0 15 4C43F7B1 4C34C452 ~~ +Po 63950 72000 0 15 4C43F7B1 4C34C452 ~~ Li Sc 4C34C452 AR @@ -4327,51 +4327,71 @@ Of 0.000000 0.000000 0.000000 Ro 0.000000 0.000000 0.000000 $EndSHAPE3D $EndMODULE DB25FC -$MIREPCB -Po 1 28 29200 53950 2500 150 00000000 -$EndMIREPCB -$MIREPCB -Po 0 28 79750 18250 5000 50 00000000 -$EndMIREPCB +$COTATION +Ge 0 25 0 +Va 39000 +Te "99,060 mm" +Po 29900 33050 600 800 79 2700 1 +Sb 0 29150 13500 29150 52500 79 +Sd 0 31250 52500 27750 52500 79 +Sg 0 31250 13500 27750 13500 79 +S1 0 29150 52500 28920 52057 79 +S2 0 29150 52500 29380 52057 79 +S3 0 29150 13500 28920 13943 79 +S4 0 29150 13500 29380 13943 79 +$endCOTATION +$COTATION +Ge 0 25 0 +Va 45500 +Te "115,570 mm" +Po 54000 10501 600 800 83 0 1 +Sb 0 31250 11201 76750 11201 83 +Sd 0 76750 13500 76750 9801 83 +Sg 0 31250 13500 31250 9801 83 +S1 0 76750 11201 76307 11431 83 +S2 0 76750 11201 76307 10971 83 +S3 0 31250 11201 31693 11431 83 +S4 0 31250 11201 31693 10971 83 +$endCOTATION $TEXTPCB Te "1" Po 33250 14500 600 800 120 0 -De 0 0 B98C Normal +De 0 0 B98C Normal C $EndTEXTPCB $TEXTPCB Te "2" Po 32250 15500 600 800 120 0 -De 15 1 B98C Normal +De 15 1 B98C Normal C $EndTEXTPCB $TEXTPCB Te "INTERF_U" Po 74250 18000 600 800 120 900 -De 0 0 47 Normal +De 0 0 47 Normal C $EndTEXTPCB $TEXTPCB Te "INTERF_U" Po 72250 18000 600 800 120 900 -De 15 1 47 Normal +De 15 1 47 Normal C $EndTEXTPCB $TEXTPCB Te "V02" Po 69250 15000 600 800 150 0 -De 0 0 0 Normal +De 0 0 0 Normal C $EndTEXTPCB $TEXTPCB Te "V02" Po 69250 15000 600 800 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "INTERF_U" Po 72750 50000 600 800 150 0 -De 21 1 0 Normal +De 21 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "V02" Po 72250 51500 600 800 150 0 -De 21 1 0 Normal +De 21 1 0 Normal C $EndTEXTPCB $DRAWSEGMENT Po 0 35750 52500 35750 55500 50 @@ -4411,203 +4431,203 @@ De 28 0 0 0 0 $EndDRAWSEGMENT $TRACK Po 0 50250 36000 50750 35500 170 -1 -De 0 0 1 0 400800 +De 0 0 1 0 800 Po 0 50750 35500 56250 35500 170 -1 -De 0 0 1 0 800400 +De 0 0 1 0 400 Po 0 71000 37500 71000 37550 170 -1 De 0 0 2 0 0 Po 0 71000 37500 69000 35500 170 -1 De 0 0 2 0 0 Po 0 71750 38300 71000 37550 170 -1 -De 0 0 2 0 400800 +De 0 0 2 0 800 Po 0 68250 35500 69000 35500 170 -1 -De 0 0 2 0 400800 +De 0 0 2 0 800 Po 0 67750 28000 70250 28000 170 -1 De 0 0 3 0 0 Po 0 67250 28500 67750 28000 170 -1 -De 0 0 3 0 400800 +De 0 0 3 0 800 Po 0 71300 29050 72750 29050 170 -1 De 0 0 3 0 0 Po 0 72750 29050 72750 29120 170 -1 -De 0 0 3 0 800400 +De 0 0 3 0 400 Po 0 70250 28000 71300 29050 170 -1 De 0 0 3 0 0 -Po 0 71250 29500 71750 29500 170 -1 -De 0 0 4 0 0 -Po 0 67250 29500 67750 29000 170 -1 -De 0 0 4 0 400800 -Po 0 71750 29500 71750 29600 170 -1 -De 0 0 4 0 800400 -Po 0 67750 29000 70750 29000 170 -1 -De 0 0 4 0 0 Po 0 70750 29000 71250 29500 170 -1 De 0 0 4 0 0 +Po 0 67750 29000 70750 29000 170 -1 +De 0 0 4 0 0 +Po 0 71750 29500 71750 29600 170 -1 +De 0 0 4 0 400 +Po 0 67250 29500 67750 29000 170 -1 +De 0 0 4 0 800 +Po 0 71250 29500 71750 29500 170 -1 +De 0 0 4 0 0 Po 0 71750 30500 71750 30650 170 -1 -De 0 0 5 0 800400 +De 0 0 5 0 400 Po 0 68250 30500 71750 30500 170 -1 -De 0 0 5 0 400800 +De 0 0 5 0 800 Po 0 69350 32000 69550 31800 170 -1 De 0 0 6 0 0 Po 0 67250 31500 67750 32000 170 -1 -De 0 0 6 0 400800 +De 0 0 6 0 800 Po 0 67750 32000 69350 32000 170 -1 De 0 0 6 0 0 Po 0 71750 31800 71750 31750 170 -1 -De 0 0 6 0 800400 +De 0 0 6 0 400 Po 0 69550 31800 71750 31800 170 -1 De 0 0 6 0 0 -Po 0 71000 32800 71750 32850 170 -1 -De 0 0 7 0 800400 +Po 0 68250 32500 70700 32500 170 -1 +De 0 0 7 0 800 Po 0 70700 32500 71000 32800 170 -1 De 0 0 7 0 0 -Po 0 68250 32500 70700 32500 170 -1 -De 0 0 7 0 400800 +Po 0 71000 32800 71750 32850 170 -1 +De 0 0 7 0 400 Po 0 71100 33900 71750 33900 170 -1 De 0 0 8 0 0 Po 0 71750 33900 71750 33950 170 -1 -De 0 0 8 0 800400 +De 0 0 8 0 400 Po 0 68250 33500 70700 33500 170 -1 -De 0 0 8 0 400800 +De 0 0 8 0 800 Po 0 70700 33500 71100 33900 170 -1 De 0 0 8 0 0 Po 0 67250 33500 67750 34000 170 -1 -De 0 0 9 0 400800 +De 0 0 9 0 800 Po 0 71250 35000 71750 35000 170 -1 -De 0 0 9 0 800400 +De 0 0 9 0 400 Po 0 70250 34000 71250 35000 170 -1 De 0 0 9 0 0 Po 0 67750 34000 70250 34000 170 -1 De 0 0 9 0 0 +Po 0 71750 36000 71750 36100 170 -1 +De 0 0 10 0 400 +Po 0 68250 34500 70250 34500 170 -1 +De 0 0 10 0 800 Po 0 70250 34500 71750 36000 170 -1 De 0 0 10 0 0 -Po 0 68250 34500 70250 34500 170 -1 -De 0 0 10 0 400800 -Po 0 71750 36000 71750 36100 170 -1 -De 0 0 10 0 800400 Po 0 70750 33000 71250 33500 170 -1 De 15 0 11 0 0 Po 0 66750 33000 70250 33000 170 -1 De 0 0 11 0 0 Po 0 66250 33500 66750 33000 170 -1 -De 0 0 11 0 400800 +De 0 0 11 0 800 Po 0 71250 36500 71750 37000 170 -1 De 15 0 11 0 0 Po 0 71750 37000 71750 37200 170 -1 -De 15 0 11 0 800400 +De 15 0 11 0 400 Po 3 70250 33000 70250 33000 550 -1 De 15 1 11 0 0 Po 0 71250 33500 71250 36500 170 -1 De 15 0 11 0 0 Po 0 70250 33000 70750 33000 170 -1 De 15 0 11 0 0 -Po 0 67750 35750 68000 36000 170 -1 -De 0 0 12 0 0 -Po 0 71750 39250 71750 39350 170 -1 -De 0 0 12 0 800400 -Po 0 68000 36000 68500 36000 170 -1 +Po 0 67250 34500 67750 35000 170 -1 +De 0 0 12 0 800 +Po 0 67750 35000 67750 35750 170 -1 De 0 0 12 0 0 Po 0 68500 36000 71750 39250 170 -1 De 0 0 12 0 0 -Po 0 67750 35000 67750 35750 170 -1 +Po 0 68000 36000 68500 36000 170 -1 +De 0 0 12 0 0 +Po 0 71750 39250 71750 39350 170 -1 +De 0 0 12 0 400 +Po 0 67750 35750 68000 36000 170 -1 De 0 0 12 0 0 -Po 0 67250 34500 67750 35000 170 -1 -De 0 0 12 0 400800 Po 0 58250 41000 56875 41000 170 -1 De 15 0 13 0 0 Po 0 59250 37500 58750 38000 170 -1 -De 15 0 13 0 400800 +De 15 0 13 0 800 Po 0 58750 40500 58250 41000 170 -1 De 15 0 13 0 0 Po 0 59250 36500 59250 37500 170 -1 -De 15 0 13 0 C00C00 +De 15 0 13 0 C00 Po 0 56750 41125 56750 41500 170 -1 -De 15 0 13 0 800400 +De 15 0 13 0 400 Po 0 56875 41000 56750 41125 170 -1 De 15 0 13 0 0 Po 0 58750 38000 58750 40500 170 -1 De 15 0 13 0 0 -Po 0 65250 23000 44750 23000 170 -1 -De 0 0 14 0 0 -Po 0 65250 26500 65250 23000 170 -1 -De 15 0 14 0 400800 -Po 3 65250 23000 65250 23000 550 -1 -De 15 1 14 0 0 -Po 0 44250 23500 44250 24000 170 -1 -De 0 0 14 0 800400 Po 0 44750 23000 44250 23500 170 -1 De 0 0 14 0 0 -Po 0 51750 41500 51750 40250 170 -1 -De 0 0 15 0 400800 -Po 0 57250 39750 57250 38500 170 -1 -De 15 0 15 0 800400 -Po 0 61750 39750 61750 46000 170 -1 -De 15 0 15 0 800400 -Po 0 58500 39500 61500 39500 170 -1 +Po 0 44250 23500 44250 24000 170 -1 +De 0 0 14 0 400 +Po 3 65250 23000 65250 23000 550 -1 +De 15 1 14 0 0 +Po 0 65250 26500 65250 23000 170 -1 +De 15 0 14 0 800 +Po 0 65250 23000 44750 23000 170 -1 +De 0 0 14 0 0 +Po 0 58250 39750 58500 39500 170 -1 De 0 0 15 0 0 -Po 0 51750 40250 52250 39750 170 -1 -De 0 0 15 0 0 -Po 0 57250 39750 58250 39750 170 -1 +Po 3 57250 39750 57250 39750 550 -1 +De 15 1 15 0 0 +Po 3 61750 39750 61750 39750 550 -1 +De 15 1 15 0 0 +Po 0 61500 39500 61750 39750 170 -1 De 0 0 15 0 0 Po 0 52250 39750 57250 39750 170 -1 De 0 0 15 0 0 -Po 0 61500 39500 61750 39750 170 -1 +Po 0 57250 39750 58250 39750 170 -1 De 0 0 15 0 0 -Po 3 61750 39750 61750 39750 550 -1 -De 15 1 15 0 0 -Po 3 57250 39750 57250 39750 550 -1 -De 15 1 15 0 0 -Po 0 58250 39750 58500 39500 170 -1 +Po 0 51750 40250 52250 39750 170 -1 De 0 0 15 0 0 +Po 0 58500 39500 61500 39500 170 -1 +De 0 0 15 0 0 +Po 0 61750 39750 61750 46000 170 -1 +De 15 0 15 0 400 +Po 0 57250 39750 57250 38500 170 -1 +De 15 0 15 0 400 +Po 0 51750 41500 51750 40250 170 -1 +De 0 0 15 0 800 Po 0 62750 45500 63500 44750 170 -1 De 15 0 16 0 0 Po 0 62750 46000 62750 45500 170 -1 -De 15 0 16 0 400800 +De 15 0 16 0 800 Po 0 63500 44750 63500 42250 170 -1 De 15 0 16 0 0 Po 0 63500 42250 63250 42000 170 -1 De 15 0 16 0 0 Po 0 63250 42000 63250 38500 170 -1 -De 15 0 16 0 800400 +De 15 0 16 0 400 +Po 0 64250 38500 64250 45000 170 -1 +De 15 0 17 0 800 +Po 0 63750 45500 63750 46000 170 -1 +De 15 0 17 0 400 Po 0 64250 45000 63750 45500 170 -1 De 15 0 17 0 0 -Po 0 63750 45500 63750 46000 170 -1 -De 15 0 17 0 800400 -Po 0 64250 38500 64250 45000 170 -1 -De 15 0 17 0 400800 Po 0 64250 37500 64750 38000 170 -1 -De 15 0 18 0 400800 +De 15 0 18 0 800 Po 0 64750 38000 64750 46000 170 -1 -De 15 0 18 0 800400 +De 15 0 18 0 400 Po 0 65750 38000 65750 46000 170 -1 -De 15 0 19 0 800400 +De 15 0 19 0 400 Po 0 65250 37500 65750 38000 170 -1 -De 15 0 19 0 400800 +De 15 0 19 0 800 Po 0 66250 38500 66250 44250 170 -1 -De 15 0 20 0 400800 +De 15 0 20 0 800 Po 0 66750 44750 66750 46000 170 -1 -De 15 0 20 0 800400 +De 15 0 20 0 400 Po 0 66250 44250 66750 44750 170 -1 De 15 0 20 0 0 Po 0 66750 44000 67750 45000 170 -1 De 15 0 21 0 0 Po 0 67750 45000 67750 46000 170 -1 -De 15 0 21 0 800400 +De 15 0 21 0 400 Po 0 66750 38000 66750 44000 170 -1 De 15 0 21 0 0 Po 0 66250 37500 66750 38000 170 -1 -De 15 0 21 0 400800 -Po 0 67250 36500 67750 37000 170 -1 -De 15 0 22 0 400800 -Po 0 67750 44250 68750 45250 170 -1 -De 15 0 22 0 0 -Po 0 68750 45250 68750 46000 170 -1 -De 15 0 22 0 800400 +De 15 0 21 0 800 Po 0 67750 37000 67750 44250 170 -1 De 15 0 22 0 0 +Po 0 68750 45250 68750 46000 170 -1 +De 15 0 22 0 400 +Po 0 67750 44250 68750 45250 170 -1 +De 15 0 22 0 0 +Po 0 67250 36500 67750 37000 170 -1 +De 15 0 22 0 800 Po 0 55250 43500 55250 47500 170 -1 De 15 0 23 0 0 Po 0 55750 41500 55750 43000 170 -1 -De 15 0 23 0 400800 +De 15 0 23 0 800 Po 0 55750 43000 55250 43500 170 -1 De 15 0 23 0 0 Po 0 58750 47500 59250 48000 170 -1 @@ -4617,349 +4637,349 @@ De 15 1 23 0 0 Po 3 58750 47500 58750 47500 550 -1 De 15 1 23 0 0 Po 0 59250 48500 59750 49000 170 -1 -De 15 0 23 0 800400 +De 15 0 23 0 400 Po 0 55250 47500 58750 47500 170 -1 De 0 0 23 0 0 Po 0 59250 48000 59250 48500 170 -1 De 15 0 23 0 0 -Po 0 65750 40000 65750 37000 170 -1 -De 0 0 24 0 0 -Po 0 60750 40000 61000 40250 170 -1 -De 0 0 24 0 0 -Po 0 65500 40250 65750 40000 170 -1 -De 0 0 24 0 0 -Po 0 52875 40250 58750 40250 170 -1 -De 0 0 24 0 0 -Po 0 52750 40375 52875 40250 170 -1 -De 0 0 24 0 0 -Po 0 52750 41500 52750 40375 170 -1 -De 0 0 24 0 400800 -Po 0 65750 37000 66250 36500 170 -1 -De 0 0 24 0 800400 -Po 0 59000 40000 60750 40000 170 -1 +Po 0 61000 40250 65500 40250 170 -1 De 0 0 24 0 0 Po 0 58750 40250 59000 40000 170 -1 De 0 0 24 0 0 -Po 0 61000 40250 65500 40250 170 -1 +Po 0 59000 40000 60750 40000 170 -1 +De 0 0 24 0 0 +Po 0 65750 37000 66250 36500 170 -1 +De 0 0 24 0 400 +Po 0 52750 41500 52750 40375 170 -1 +De 0 0 24 0 800 +Po 0 52750 40375 52875 40250 170 -1 +De 0 0 24 0 0 +Po 0 52875 40250 58750 40250 170 -1 +De 0 0 24 0 0 +Po 0 65500 40250 65750 40000 170 -1 +De 0 0 24 0 0 +Po 0 60750 40000 61000 40250 170 -1 +De 0 0 24 0 0 +Po 0 65750 40000 65750 37000 170 -1 De 0 0 24 0 0 -Po 0 50750 42500 60750 42500 170 -1 -De 0 0 25 0 0 -Po 0 60750 42500 60750 46000 170 -1 -De 15 0 25 0 800400 -Po 3 60750 42500 60750 42500 550 -1 -De 15 1 25 0 0 -Po 0 50750 41500 50750 42500 170 -1 -De 15 0 25 0 400800 Po 3 50750 42500 50750 42500 550 -1 De 15 1 25 0 0 +Po 0 50750 41500 50750 42500 170 -1 +De 15 0 25 0 800 +Po 3 60750 42500 60750 42500 550 -1 +De 15 1 25 0 0 +Po 0 60750 42500 60750 46000 170 -1 +De 15 0 25 0 400 +Po 0 50750 42500 60750 42500 170 -1 +De 0 0 25 0 0 Po 0 68250 29500 70650 29500 170 -1 -De 0 0 26 0 400800 +De 0 0 26 0 800 Po 0 70650 29500 71300 30150 170 -1 De 0 0 26 0 0 Po 0 72750 30120 72750 30150 170 -1 -De 0 0 26 0 400800 +De 0 0 26 0 800 Po 0 71300 30150 72750 30150 170 -1 De 0 0 26 0 0 Po 0 71350 31200 72750 31200 170 -1 De 0 0 27 0 0 Po 0 67250 30500 67750 31000 170 -1 -De 0 0 27 0 400800 +De 0 0 27 0 800 Po 0 67750 31000 71150 31000 170 -1 De 0 0 27 0 0 Po 0 72750 31200 72750 31220 170 -1 -De 0 0 27 0 800400 +De 0 0 27 0 400 Po 0 71150 31000 71350 31200 170 -1 De 0 0 27 0 0 -Po 0 58250 37500 57750 37000 170 -1 -De 15 0 28 0 400800 -Po 0 58750 32000 58750 26000 170 -1 -De 15 0 28 0 0 -Po 0 58750 26000 58250 25500 170 -1 -De 15 0 28 0 0 -Po 0 57750 37000 57750 36000 170 -1 -De 15 0 28 0 0 -Po 0 58250 25500 58250 16500 170 -1 -De 15 0 28 0 800400 -Po 0 57750 36000 56750 36000 170 -1 +Po 0 56750 32000 58750 32000 170 -1 De 15 0 28 0 0 Po 0 56750 36000 56750 32000 170 -1 De 15 0 28 0 0 -Po 0 56750 32000 58750 32000 170 -1 +Po 0 57750 36000 56750 36000 170 -1 De 15 0 28 0 0 +Po 0 58250 25500 58250 16500 170 -1 +De 15 0 28 0 400 +Po 0 57750 37000 57750 36000 170 -1 +De 15 0 28 0 0 +Po 0 58750 26000 58250 25500 170 -1 +De 15 0 28 0 0 +Po 0 58750 32000 58750 26000 170 -1 +De 15 0 28 0 0 +Po 0 58250 37500 57750 37000 170 -1 +De 15 0 28 0 800 Po 0 69250 30500 69250 16500 170 -1 -De 15 0 29 0 800400 +De 15 0 29 0 400 Po 0 68250 31500 69250 30500 170 -1 -De 15 0 29 0 400800 -Po 3 44750 22500 44750 22500 550 -1 -De 15 1 30 0 0 -Po 0 45250 29500 44750 29000 170 -1 -De 15 0 30 0 0 -Po 0 66250 26500 66250 22500 170 -1 -De 15 0 30 0 400800 -Po 0 44750 22500 44750 29000 170 -1 -De 15 0 30 0 0 -Po 3 66250 22500 66250 22500 550 -1 -De 15 1 30 0 0 -Po 0 45250 30000 45250 29500 170 -1 -De 15 0 30 0 400800 +De 15 0 29 0 800 Po 0 66250 22500 44750 22500 170 -1 De 0 0 30 0 0 +Po 0 45250 30000 45250 29500 170 -1 +De 15 0 30 0 800 +Po 3 66250 22500 66250 22500 550 -1 +De 15 1 30 0 0 +Po 0 44750 22500 44750 29000 170 -1 +De 15 0 30 0 0 +Po 0 66250 26500 66250 22500 170 -1 +De 15 0 30 0 800 +Po 0 45250 29500 44750 29000 170 -1 +De 15 0 30 0 0 +Po 3 44750 22500 44750 22500 550 -1 +De 15 1 30 0 0 Po 3 43750 27000 43750 27000 550 -1 De 15 1 31 0 0 Po 0 44250 29500 43750 29000 170 -1 De 15 0 31 0 0 Po 0 44250 30000 44250 29500 170 -1 -De 15 0 31 0 400800 +De 15 0 31 0 800 Po 0 56750 27000 43750 27000 170 -1 De 0 0 31 0 0 Po 0 43750 29000 43750 27000 170 -1 De 15 0 31 0 0 Po 0 57250 27500 56750 27000 170 -1 -De 0 0 31 0 400800 -Po 0 43250 25500 43250 24000 170 -1 -De 15 0 32 0 800400 -Po 3 65750 25500 65750 25500 550 -1 -De 15 1 32 0 0 -Po 0 65750 25500 43250 25500 170 -1 -De 0 0 32 0 0 -Po 0 64750 28000 65750 28000 170 -1 -De 15 0 32 0 0 -Po 0 64250 28500 64750 28000 170 -1 -De 15 0 32 0 400800 -Po 3 43250 25500 43250 25500 550 -1 -De 15 1 32 0 0 +De 0 0 31 0 800 Po 0 65750 28000 65750 25500 170 -1 De 15 0 32 0 0 -Po 0 57250 29500 56750 29000 170 -1 -De 15 0 33 0 400800 -Po 0 56750 29000 55750 29000 170 -1 -De 15 0 33 0 0 -Po 0 41250 27000 41250 24000 170 -1 -De 15 0 33 0 800400 -Po 0 54750 27500 41750 27500 170 -1 -De 0 0 33 0 0 -Po 0 41750 27500 41250 27000 170 -1 -De 0 0 33 0 0 -Po 0 54750 28000 54750 27500 170 -1 -De 15 0 33 0 0 -Po 3 41250 27000 41250 27000 550 -1 -De 15 1 33 0 0 -Po 3 54750 27500 54750 27500 550 -1 -De 15 1 33 0 0 +Po 3 43250 25500 43250 25500 550 -1 +De 15 1 32 0 0 +Po 0 64250 28500 64750 28000 170 -1 +De 15 0 32 0 800 +Po 0 64750 28000 65750 28000 170 -1 +De 15 0 32 0 0 +Po 0 65750 25500 43250 25500 170 -1 +De 0 0 32 0 0 +Po 3 65750 25500 65750 25500 550 -1 +De 15 1 32 0 0 +Po 0 43250 25500 43250 24000 170 -1 +De 15 0 32 0 400 Po 0 55750 29000 54750 28000 170 -1 De 15 0 33 0 0 +Po 3 54750 27500 54750 27500 550 -1 +De 15 1 33 0 0 +Po 3 41250 27000 41250 27000 550 -1 +De 15 1 33 0 0 +Po 0 54750 28000 54750 27500 170 -1 +De 15 0 33 0 0 +Po 0 41750 27500 41250 27000 170 -1 +De 0 0 33 0 0 +Po 0 54750 27500 41750 27500 170 -1 +De 0 0 33 0 0 +Po 0 41250 27000 41250 24000 170 -1 +De 15 0 33 0 400 +Po 0 56750 29000 55750 29000 170 -1 +De 15 0 33 0 0 +Po 0 57250 29500 56750 29000 170 -1 +De 15 0 33 0 800 Po 0 58250 31500 57750 32000 170 -1 -De 0 0 34 0 400800 +De 0 0 34 0 800 Po 0 39250 32000 37250 30000 170 -1 -De 0 0 34 0 800400 +De 0 0 34 0 400 Po 0 57750 32000 39250 32000 170 -1 De 0 0 34 0 0 Po 0 37250 30000 37250 30000 170 -1 -De 0 0 34 0 C00C00 -Po 0 56250 28500 39250 28500 170 -1 -De 0 0 35 0 400800 -Po 0 38250 27500 38250 27000 170 -1 -De 0 0 35 0 0 -Po 0 38250 27000 38250 24000 170 -1 -De 15 0 35 0 800400 -Po 3 38250 27000 38250 27000 550 -1 -De 15 1 35 0 0 +De 0 0 34 0 C00 Po 0 39250 28500 38250 27500 170 -1 De 0 0 35 0 0 +Po 3 38250 27000 38250 27000 550 -1 +De 15 1 35 0 0 +Po 0 38250 27000 38250 24000 170 -1 +De 15 0 35 0 400 +Po 0 38250 27500 38250 27000 170 -1 +De 0 0 35 0 0 +Po 0 56250 28500 39250 28500 170 -1 +De 0 0 35 0 800 Po 0 56250 29500 36750 29500 170 -1 -De 0 0 36 0 400800 +De 0 0 36 0 800 Po 0 36750 29500 36250 30000 170 -1 -De 0 0 36 0 800400 +De 0 0 36 0 400 Po 0 54250 26000 35500 26000 170 -1 De 0 0 37 0 0 Po 3 54250 26000 54250 26000 550 -1 De 15 1 37 0 0 Po 0 35250 24000 35250 25750 170 -1 -De 0 0 37 0 400800 +De 0 0 37 0 800 Po 0 55250 31500 56250 31500 170 -1 -De 15 0 37 0 800400 +De 15 0 37 0 400 Po 0 54250 30500 55250 31500 170 -1 De 15 0 37 0 0 Po 0 35500 26000 35250 25750 170 -1 De 0 0 37 0 0 Po 0 54250 26000 54250 30500 170 -1 De 15 0 37 0 0 -Po 0 63750 19000 34750 19000 170 -1 -De 0 0 38 0 0 -Po 0 63750 19000 63750 28000 170 -1 +Po 0 63750 28000 63250 28500 170 -1 +De 15 0 38 0 400 +Po 0 35250 29500 35250 30000 170 -1 +De 15 0 38 0 400 +Po 3 63750 19000 63750 19000 550 -1 +De 15 1 38 0 0 +Po 0 34750 19000 34750 29000 170 -1 +De 15 0 38 0 0 +Po 0 34750 29000 35250 29500 170 -1 De 15 0 38 0 0 Po 3 34750 19000 34750 19000 550 -1 De 15 1 38 0 0 -Po 0 34750 29000 35250 29500 170 -1 +Po 0 63750 19000 63750 28000 170 -1 De 15 0 38 0 0 -Po 0 34750 19000 34750 29000 170 -1 -De 15 0 38 0 0 -Po 3 63750 19000 63750 19000 550 -1 -De 15 1 38 0 0 -Po 0 35250 29500 35250 30000 170 -1 -De 15 0 38 0 800400 -Po 0 63750 28000 63250 28500 170 -1 -De 15 0 38 0 800400 +Po 0 63750 19000 34750 19000 170 -1 +De 0 0 38 0 0 Po 0 43750 30500 43250 30000 170 -1 -De 0 0 39 0 800400 +De 0 0 39 0 400 Po 0 52250 30500 43750 30500 170 -1 De 0 0 39 0 0 Po 0 52750 30000 52250 30500 170 -1 De 0 0 39 0 0 Po 0 58250 29500 57750 30000 170 -1 -De 0 0 39 0 400800 +De 0 0 39 0 800 Po 0 57750 30000 52750 30000 170 -1 De 0 0 39 0 0 -Po 0 57250 28500 56750 29000 170 -1 -De 0 0 40 0 400800 -Po 0 42250 29500 41750 29000 170 -1 -De 15 0 40 0 0 -Po 3 41750 29000 41750 29000 550 -1 -De 15 1 40 0 0 -Po 0 42250 30000 42250 29500 170 -1 -De 15 0 40 0 400800 Po 0 56750 29000 41750 29000 170 -1 De 0 0 40 0 0 +Po 0 42250 30000 42250 29500 170 -1 +De 15 0 40 0 800 +Po 3 41750 29000 41750 29000 550 -1 +De 15 1 40 0 0 +Po 0 42250 29500 41750 29000 170 -1 +De 15 0 40 0 0 +Po 0 57250 28500 56750 29000 170 -1 +De 0 0 40 0 800 Po 0 52750 31000 42250 31000 170 -1 De 0 0 41 0 0 Po 0 42250 31000 41250 30000 170 -1 -De 0 0 41 0 800400 +De 0 0 41 0 400 Po 0 56250 30500 53250 30500 170 -1 -De 0 0 41 0 400800 +De 0 0 41 0 800 Po 0 53250 30500 52750 31000 170 -1 De 0 0 41 0 0 -Po 0 68750 28000 68250 28500 170 -1 -De 15 0 42 0 800400 -Po 0 40250 30000 40250 29500 170 -1 -De 15 0 42 0 400800 -Po 3 39750 25000 39750 25000 550 -1 -De 15 1 42 0 0 -Po 0 39750 25000 68750 25000 170 -1 -De 0 0 42 0 0 -Po 0 68750 25000 68750 28000 170 -1 -De 15 0 42 0 0 -Po 0 40250 29500 39750 29000 170 -1 +Po 0 39750 29000 39750 25000 170 -1 De 15 0 42 0 0 Po 3 68750 25000 68750 25000 550 -1 De 15 1 42 0 0 -Po 0 39750 29000 39750 25000 170 -1 +Po 0 40250 29500 39750 29000 170 -1 De 15 0 42 0 0 +Po 0 68750 25000 68750 28000 170 -1 +De 15 0 42 0 0 +Po 0 39750 25000 68750 25000 170 -1 +De 0 0 42 0 0 +Po 3 39750 25000 39750 25000 550 -1 +De 15 1 42 0 0 +Po 0 40250 30000 40250 29500 170 -1 +De 15 0 42 0 800 +Po 0 68750 28000 68250 28500 170 -1 +De 15 0 42 0 400 Po 0 56750 31000 53750 31000 170 -1 De 0 0 43 0 0 Po 0 53750 31000 53250 31500 170 -1 De 0 0 43 0 0 Po 0 57250 31500 56750 31000 170 -1 -De 0 0 43 0 400800 +De 0 0 43 0 800 Po 0 40250 31500 39250 30500 170 -1 De 0 0 43 0 0 Po 0 53250 31500 40250 31500 170 -1 De 0 0 43 0 0 Po 0 39250 30500 39250 30000 170 -1 -De 0 0 43 0 800400 -Po 0 37750 21000 37750 29000 170 -1 +De 0 0 43 0 400 +Po 0 57750 27000 57750 21000 170 -1 De 15 0 44 0 0 -Po 0 57750 21000 37750 21000 170 -1 -De 0 0 44 0 0 -Po 3 57750 21000 57750 21000 550 -1 +Po 0 38250 30000 38250 29500 170 -1 +De 15 0 44 0 800 +Po 0 58250 27500 57750 27000 170 -1 +De 15 0 44 0 800 +Po 3 37750 21000 37750 21000 550 -1 De 15 1 44 0 0 Po 0 38250 29500 37750 29000 170 -1 De 15 0 44 0 0 -Po 3 37750 21000 37750 21000 550 -1 +Po 3 57750 21000 57750 21000 550 -1 De 15 1 44 0 0 -Po 0 58250 27500 57750 27000 170 -1 -De 15 0 44 0 400800 -Po 0 38250 30000 38250 29500 170 -1 -De 15 0 44 0 400800 -Po 0 57750 27000 57750 21000 170 -1 +Po 0 57750 21000 37750 21000 170 -1 +De 0 0 44 0 0 +Po 0 37750 21000 37750 29000 170 -1 De 15 0 44 0 0 Po 0 39250 29000 39250 24000 170 -1 -De 15 0 45 0 800400 +De 15 0 45 0 400 Po 0 56250 32500 39750 32500 170 -1 -De 0 0 45 0 400800 +De 0 0 45 0 800 Po 0 39750 29500 39250 29000 170 -1 De 15 0 45 0 0 Po 0 39750 32500 39750 29500 170 -1 De 15 0 45 0 0 Po 3 39750 32500 39750 32500 550 -1 De 15 1 45 0 0 -Po 3 59250 24500 59250 24500 550 -1 -De 15 1 46 0 0 -Po 0 59250 26500 59250 24500 170 -1 -De 15 0 46 0 400800 -Po 0 40750 24500 40250 24000 170 -1 -De 0 0 46 0 800400 Po 0 59250 24500 40750 24500 170 -1 De 0 0 46 0 0 +Po 0 40750 24500 40250 24000 170 -1 +De 0 0 46 0 400 +Po 0 59250 26500 59250 24500 170 -1 +De 15 0 46 0 800 +Po 3 59250 24500 59250 24500 550 -1 +De 15 1 46 0 0 Po 0 38750 46000 39250 45500 170 -1 -De 0 0 47 0 400800 +De 0 0 47 0 800 Po 0 49500 45500 49750 45250 170 -1 De 0 0 47 0 0 Po 0 39250 45500 49500 45500 170 -1 De 0 0 47 0 0 Po 0 49750 45250 49750 44500 170 -1 -De 0 0 47 0 800400 +De 0 0 47 0 400 Po 0 45750 29000 45750 28000 170 -1 De 15 0 48 0 0 Po 0 61250 28500 60750 28000 170 -1 -De 0 0 48 0 400800 +De 0 0 48 0 800 Po 0 46250 30000 46250 29500 170 -1 -De 15 0 48 0 400800 +De 15 0 48 0 800 Po 3 45750 28000 45750 28000 550 -1 De 15 1 48 0 0 Po 0 46250 29500 45750 29000 170 -1 De 15 0 48 0 0 Po 0 60750 28000 45750 28000 170 -1 De 0 0 48 0 0 -Po 0 47250 30000 47250 29500 170 -1 -De 15 0 49 0 400800 -Po 0 59750 26000 55250 26000 170 -1 -De 0 0 49 0 0 -Po 3 46750 26500 46750 26500 550 -1 -De 15 1 49 0 0 -Po 0 60250 26500 59750 26000 170 -1 -De 0 0 49 0 400800 -Po 0 46750 26500 46750 29000 170 -1 -De 15 0 49 0 0 -Po 0 47250 29500 46750 29000 170 -1 -De 15 0 49 0 0 -Po 0 54750 26500 46750 26500 170 -1 -De 0 0 49 0 0 Po 0 55250 26000 54750 26500 170 -1 De 0 0 49 0 0 -Po 0 47750 21500 59750 21500 170 -1 -De 0 0 50 0 0 -Po 0 61250 27500 60750 27000 170 -1 -De 15 0 50 0 400800 -Po 3 47750 21500 47750 21500 550 -1 -De 15 1 50 0 0 -Po 0 48250 29500 47750 29000 170 -1 -De 15 0 50 0 0 -Po 0 60750 22500 59750 21500 170 -1 -De 15 0 50 0 0 -Po 0 48250 30000 48250 29500 170 -1 -De 15 0 50 0 400800 -Po 3 59750 21500 59750 21500 550 -1 -De 15 1 50 0 0 -Po 0 60750 27000 60750 22500 170 -1 -De 15 0 50 0 0 +Po 0 54750 26500 46750 26500 170 -1 +De 0 0 49 0 0 +Po 0 47250 29500 46750 29000 170 -1 +De 15 0 49 0 0 +Po 0 46750 26500 46750 29000 170 -1 +De 15 0 49 0 0 +Po 0 60250 26500 59750 26000 170 -1 +De 0 0 49 0 800 +Po 3 46750 26500 46750 26500 550 -1 +De 15 1 49 0 0 +Po 0 59750 26000 55250 26000 170 -1 +De 0 0 49 0 0 +Po 0 47250 30000 47250 29500 170 -1 +De 15 0 49 0 800 Po 0 47750 29000 47750 21500 170 -1 De 15 0 50 0 0 +Po 0 60750 27000 60750 22500 170 -1 +De 15 0 50 0 0 +Po 3 59750 21500 59750 21500 550 -1 +De 15 1 50 0 0 +Po 0 48250 30000 48250 29500 170 -1 +De 15 0 50 0 800 +Po 0 60750 22500 59750 21500 170 -1 +De 15 0 50 0 0 +Po 0 48250 29500 47750 29000 170 -1 +De 15 0 50 0 0 +Po 3 47750 21500 47750 21500 550 -1 +De 15 1 50 0 0 +Po 0 61250 27500 60750 27000 170 -1 +De 15 0 50 0 800 +Po 0 47750 21500 59750 21500 170 -1 +De 0 0 50 0 0 Po 0 61250 26500 61250 24000 170 -1 -De 15 0 51 0 400800 +De 15 0 51 0 800 Po 0 61250 24000 49250 24000 170 -1 -De 0 0 51 0 800400 +De 0 0 51 0 400 Po 3 61250 24000 61250 24000 550 -1 De 15 1 51 0 0 -Po 3 48250 18000 48250 18000 550 -1 -De 15 1 52 0 0 -Po 0 48250 24000 48250 18000 170 -1 -De 15 0 52 0 400800 -Po 0 62250 18000 48250 18000 170 -1 -De 0 0 52 0 0 +Po 0 62250 26500 62250 18000 170 -1 +De 15 0 52 0 800 Po 3 62250 18000 62250 18000 550 -1 De 15 1 52 0 0 -Po 0 62250 26500 62250 18000 170 -1 -De 15 0 52 0 400800 +Po 0 62250 18000 48250 18000 170 -1 +De 0 0 52 0 0 +Po 0 48250 24000 48250 18000 170 -1 +De 15 0 52 0 800 +Po 3 48250 18000 48250 18000 550 -1 +De 15 1 52 0 0 Po 0 47250 19500 63250 19500 170 -1 De 0 0 53 0 0 Po 3 47250 19500 47250 19500 550 -1 @@ -4967,953 +4987,889 @@ De 15 1 53 0 0 Po 3 63250 19500 63250 19500 550 -1 De 15 1 53 0 0 Po 0 63250 26500 63250 19500 170 -1 -De 15 0 53 0 400800 +De 15 0 53 0 800 Po 0 47250 24000 47250 19500 170 -1 -De 15 0 53 0 400800 +De 15 0 53 0 800 Po 3 64250 22000 64250 22000 550 -1 De 15 1 54 0 0 Po 0 46250 24000 46250 22000 170 -1 -De 15 0 54 0 400800 +De 15 0 54 0 800 Po 3 46250 22000 46250 22000 550 -1 De 15 1 54 0 0 Po 0 64250 26500 64250 22000 170 -1 -De 15 0 54 0 400800 +De 15 0 54 0 800 Po 0 46250 22000 64250 22000 170 -1 De 0 0 54 0 0 -Po 0 62750 23500 45750 23500 170 -1 -De 0 0 55 0 0 -Po 3 62750 23500 62750 23500 550 -1 -De 15 1 55 0 0 -Po 0 63250 27500 62750 27000 170 -1 -De 15 0 55 0 400800 -Po 0 45750 23500 45250 24000 170 -1 -De 0 0 55 0 800400 Po 0 62750 27000 62750 23500 170 -1 De 15 0 55 0 0 +Po 0 45750 23500 45250 24000 170 -1 +De 0 0 55 0 400 +Po 0 63250 27500 62750 27000 170 -1 +De 15 0 55 0 800 +Po 3 62750 23500 62750 23500 550 -1 +De 15 1 55 0 0 +Po 0 62750 23500 45750 23500 170 -1 +De 0 0 55 0 0 Po 0 42250 18500 42250 24000 170 -1 -De 15 0 56 0 800400 +De 15 0 56 0 400 Po 0 64750 27000 64750 18500 170 -1 De 15 0 56 0 0 Po 0 64250 27500 64750 27000 170 -1 -De 15 0 56 0 400800 +De 15 0 56 0 800 Po 3 64750 18500 64750 18500 550 -1 De 15 1 56 0 0 Po 0 64750 18500 42250 18500 170 -1 De 0 0 56 0 0 Po 3 42250 18500 42250 18500 550 -1 De 15 1 56 0 0 -Po 0 60750 41500 60250 42000 170 -1 -De 15 0 57 0 0 -Po 3 36750 47500 36750 47500 550 -1 -De 15 1 57 0 0 -Po 0 50750 47500 36750 47500 170 -1 -De 0 0 57 0 0 -Po 0 60250 49500 58750 49500 170 -1 -De 15 0 57 0 0 -Po 0 60250 42000 60250 49500 170 -1 -De 15 0 57 0 0 -Po 0 57250 49500 57250 48500 170 -1 -De 0 0 57 0 0 -Po 0 57250 48500 51250 48500 170 -1 -De 0 0 57 0 0 -Po 0 51250 48500 50750 49000 170 -1 -De 0 0 57 0 800400 -Po 0 60750 38000 60750 41500 170 -1 -De 15 0 57 0 0 -Po 3 50750 47500 50750 47500 550 -1 -De 15 1 57 0 0 -Po 0 36750 47500 36750 54500 170 -1 -De 15 0 57 0 800400 -Po 3 58750 49500 58750 49500 550 -1 -De 15 1 57 0 0 -Po 0 50750 49000 50750 47500 170 -1 -De 15 0 57 0 400800 -Po 0 61250 37500 60750 38000 170 -1 -De 15 0 57 0 400800 Po 0 58750 49500 57250 49500 170 -1 De 0 0 57 0 0 -Po 0 49750 49000 49750 51000 170 -1 -De 15 0 58 0 400800 -Po 0 37750 51000 37750 54500 170 -1 -De 15 0 58 0 800400 -Po 3 52250 39000 52250 39000 550 -1 -De 15 1 58 0 0 -Po 0 49750 51000 37750 51000 170 -1 -De 0 0 58 0 0 -Po 3 37750 51000 37750 51000 550 -1 -De 15 1 58 0 0 -Po 0 59250 38500 58750 39000 170 -1 -De 0 0 58 0 400800 -Po 0 50250 49500 49750 49000 170 -1 -De 15 0 58 0 800400 -Po 0 58750 39000 52250 39000 170 -1 -De 0 0 58 0 0 -Po 0 52250 49500 50250 49500 170 -1 +Po 0 61250 37500 60750 38000 170 -1 +De 15 0 57 0 800 +Po 0 50750 49000 50750 47500 170 -1 +De 15 0 57 0 800 +Po 3 58750 49500 58750 49500 550 -1 +De 15 1 57 0 0 +Po 0 36750 47500 36750 54500 170 -1 +De 15 0 57 0 400 +Po 3 50750 47500 50750 47500 550 -1 +De 15 1 57 0 0 +Po 0 60750 38000 60750 41500 170 -1 +De 15 0 57 0 0 +Po 0 51250 48500 50750 49000 170 -1 +De 0 0 57 0 400 +Po 0 57250 48500 51250 48500 170 -1 +De 0 0 57 0 0 +Po 0 57250 49500 57250 48500 170 -1 +De 0 0 57 0 0 +Po 0 60250 42000 60250 49500 170 -1 +De 15 0 57 0 0 +Po 0 60250 49500 58750 49500 170 -1 +De 15 0 57 0 0 +Po 0 50750 47500 36750 47500 170 -1 +De 0 0 57 0 0 +Po 3 36750 47500 36750 47500 550 -1 +De 15 1 57 0 0 +Po 0 60750 41500 60250 42000 170 -1 +De 15 0 57 0 0 +Po 0 52250 39000 52250 49500 170 -1 De 15 0 58 0 0 Po 3 49750 51000 49750 51000 550 -1 De 15 1 58 0 0 -Po 0 52250 39000 52250 49500 170 -1 +Po 0 52250 49500 50250 49500 170 -1 De 15 0 58 0 0 -Po 0 46750 48000 46750 46000 170 -1 -De 15 0 59 0 800400 -Po 3 46750 37500 46750 37500 550 -1 -De 15 1 59 0 0 -Po 0 57500 37000 53250 37000 170 -1 -De 0 0 59 0 0 -Po 0 53250 37000 52750 37500 170 -1 -De 0 0 59 0 0 -Po 0 46250 52500 46250 48500 170 -1 +Po 0 58750 39000 52250 39000 170 -1 +De 0 0 58 0 0 +Po 0 50250 49500 49750 49000 170 -1 +De 15 0 58 0 400 +Po 0 59250 38500 58750 39000 170 -1 +De 0 0 58 0 800 +Po 3 37750 51000 37750 51000 550 -1 +De 15 1 58 0 0 +Po 0 49750 51000 37750 51000 170 -1 +De 0 0 58 0 0 +Po 3 52250 39000 52250 39000 550 -1 +De 15 1 58 0 0 +Po 0 37750 51000 37750 54500 170 -1 +De 15 0 58 0 400 +Po 0 49750 49000 49750 51000 170 -1 +De 15 0 58 0 800 +Po 0 46750 53000 46250 52500 170 -1 De 15 0 59 0 0 -Po 0 52750 37500 46750 37500 170 -1 +Po 0 46250 48500 46750 48000 170 -1 +De 15 0 59 0 0 +Po 0 62750 36000 58000 36000 170 -1 De 0 0 59 0 0 -Po 0 57750 36750 57500 37000 170 -1 +Po 0 63250 36500 62750 36000 170 -1 +De 0 0 59 0 800 +Po 0 46750 54500 46750 53000 170 -1 +De 15 0 59 0 800 +Po 0 57750 36250 57750 36750 170 -1 De 0 0 59 0 0 -Po 0 46750 43000 46250 43500 170 -1 +Po 0 46250 45500 46750 46000 170 -1 +De 15 0 59 0 400 +Po 0 58000 36000 57750 36250 170 -1 +De 0 0 59 0 0 +Po 0 46250 43500 46250 45500 170 -1 De 15 0 59 0 0 Po 0 46750 37500 46750 43000 170 -1 De 15 0 59 0 0 -Po 0 46250 43500 46250 45500 170 -1 +Po 0 46750 43000 46250 43500 170 -1 De 15 0 59 0 0 -Po 0 58000 36000 57750 36250 170 -1 +Po 0 57750 36750 57500 37000 170 -1 De 0 0 59 0 0 -Po 0 46250 45500 46750 46000 170 -1 -De 15 0 59 0 800400 -Po 0 57750 36250 57750 36750 170 -1 +Po 0 52750 37500 46750 37500 170 -1 De 0 0 59 0 0 -Po 0 46750 54500 46750 53000 170 -1 -De 15 0 59 0 400800 -Po 0 63250 36500 62750 36000 170 -1 -De 0 0 59 0 400800 -Po 0 62750 36000 58000 36000 170 -1 -De 0 0 59 0 0 -Po 0 46250 48500 46750 48000 170 -1 +Po 0 46250 52500 46250 48500 170 -1 De 15 0 59 0 0 -Po 0 46750 53000 46250 52500 170 -1 -De 15 0 59 0 0 -Po 0 47750 54500 47750 49500 170 -1 -De 15 0 60 0 400800 -Po 0 45250 49500 44750 49000 170 -1 -De 0 0 60 0 800400 -Po 0 47750 49500 45250 49500 170 -1 -De 0 0 60 0 0 +Po 0 53250 37000 52750 37500 170 -1 +De 0 0 59 0 0 +Po 0 57500 37000 53250 37000 170 -1 +De 0 0 59 0 0 +Po 3 46750 37500 46750 37500 550 -1 +De 15 1 59 0 0 +Po 0 46750 48000 46750 46000 170 -1 +De 15 0 59 0 400 Po 3 47750 49500 47750 49500 550 -1 De 15 1 60 0 0 -Po 0 59750 38000 51250 38000 170 -1 +Po 0 47750 49500 45250 49500 170 -1 +De 0 0 60 0 0 +Po 0 45250 49500 44750 49000 170 -1 +De 0 0 60 0 400 +Po 0 47750 54500 47750 49500 170 -1 +De 15 0 60 0 800 +Po 0 51750 49500 51250 50000 170 -1 De 0 0 61 0 0 -Po 0 38750 53000 38750 54500 170 -1 -De 15 0 61 0 800400 -Po 0 51750 49000 51750 49500 170 -1 -De 0 0 61 0 400800 -Po 0 39250 52500 38750 53000 170 -1 +Po 0 51750 48250 51750 49000 170 -1 +De 15 0 61 0 400 +Po 3 39250 48000 39250 48000 550 -1 +De 15 1 61 0 0 +Po 0 51250 50000 44750 50000 170 -1 +De 0 0 61 0 0 +Po 0 44250 49500 44250 48500 170 -1 +De 0 0 61 0 0 +Po 0 51250 47750 51750 48250 170 -1 De 15 0 61 0 0 -Po 0 39250 48000 39250 52500 170 -1 -De 15 0 61 0 0 -Po 0 60250 37500 59750 38000 170 -1 -De 0 0 61 0 400800 -Po 0 51250 38000 51250 47750 170 -1 -De 15 0 61 0 0 -Po 0 43750 48000 39250 48000 170 -1 +Po 3 51250 38000 51250 38000 550 -1 +De 15 1 61 0 0 +Po 0 44250 48500 43750 48000 170 -1 De 0 0 61 0 0 Po 0 44750 50000 44250 49500 170 -1 De 0 0 61 0 0 -Po 0 44250 48500 43750 48000 170 -1 +Po 0 43750 48000 39250 48000 170 -1 De 0 0 61 0 0 -Po 3 51250 38000 51250 38000 550 -1 -De 15 1 61 0 0 -Po 0 51250 47750 51750 48250 170 -1 +Po 0 51250 38000 51250 47750 170 -1 De 15 0 61 0 0 -Po 0 44250 49500 44250 48500 170 -1 +Po 0 60250 37500 59750 38000 170 -1 +De 0 0 61 0 800 +Po 0 39250 48000 39250 52500 170 -1 +De 15 0 61 0 0 +Po 0 39250 52500 38750 53000 170 -1 +De 15 0 61 0 0 +Po 0 51750 49000 51750 49500 170 -1 +De 0 0 61 0 800 +Po 0 38750 53000 38750 54500 170 -1 +De 15 0 61 0 400 +Po 0 59750 38000 51250 38000 170 -1 De 0 0 61 0 0 -Po 0 51250 50000 44750 50000 170 -1 -De 0 0 61 0 0 -Po 3 39250 48000 39250 48000 550 -1 -De 15 1 61 0 0 -Po 0 51750 48250 51750 49000 170 -1 -De 15 0 61 0 800400 -Po 0 51750 49500 51250 50000 170 -1 -De 0 0 61 0 0 -Po 0 42250 52500 41750 52000 170 -1 -De 0 0 62 0 0 -Po 0 41750 52000 39750 52000 170 -1 -De 0 0 62 0 0 -Po 0 56750 36000 57250 35500 170 -1 -De 0 0 62 0 800400 -Po 0 53250 47250 53250 36000 170 -1 +Po 3 53250 36000 53250 36000 550 -1 +De 15 1 62 0 0 +Po 3 39750 52000 39750 52000 550 -1 +De 15 1 62 0 0 +Po 0 39750 52000 39750 54500 170 -1 +De 15 0 62 0 400 +Po 0 52750 49000 52750 50000 170 -1 +De 15 0 62 0 800 +Po 0 52750 47750 53250 47250 170 -1 De 15 0 62 0 0 -Po 0 52750 50000 52250 50500 170 -1 +Po 0 52250 50500 52250 52500 170 -1 De 15 0 62 0 0 -Po 0 52750 49000 52750 47750 170 -1 -De 15 0 62 0 400800 -Po 0 52250 52500 42250 52500 170 -1 +Po 0 53250 36000 56750 36000 170 -1 De 0 0 62 0 0 Po 3 52250 52500 52250 52500 550 -1 De 15 1 62 0 0 -Po 0 53250 36000 56750 36000 170 -1 +Po 0 52250 52500 42250 52500 170 -1 De 0 0 62 0 0 -Po 0 52250 50500 52250 52500 170 -1 +Po 0 52750 49000 52750 47750 170 -1 +De 15 0 62 0 800 +Po 0 52750 50000 52250 50500 170 -1 De 15 0 62 0 0 -Po 0 52750 47750 53250 47250 170 -1 +Po 0 53250 47250 53250 36000 170 -1 De 15 0 62 0 0 -Po 0 52750 49000 52750 50000 170 -1 -De 15 0 62 0 400800 -Po 0 39750 52000 39750 54500 170 -1 -De 15 0 62 0 800400 -Po 3 39750 52000 39750 52000 550 -1 -De 15 1 62 0 0 -Po 3 53250 36000 53250 36000 550 -1 -De 15 1 62 0 0 -Po 0 40750 47000 40750 46000 170 -1 -De 15 0 63 0 800400 -Po 0 40750 52500 41250 52000 170 -1 -De 15 0 63 0 0 -Po 0 41250 52000 41250 48250 170 -1 -De 15 0 63 0 0 -Po 0 59750 33625 59625 33500 170 -1 -De 15 0 63 0 0 -Po 0 59750 40000 59750 33625 170 -1 -De 15 0 63 0 0 -Po 3 59750 47000 59750 47000 550 -1 +Po 0 56750 36000 57250 35500 170 -1 +De 0 0 62 0 400 +Po 0 41750 52000 39750 52000 170 -1 +De 0 0 62 0 0 +Po 0 42250 52500 41750 52000 170 -1 +De 0 0 62 0 0 +Po 3 40750 47000 40750 47000 550 -1 De 15 1 63 0 0 -Po 0 40750 47000 59750 47000 170 -1 -De 0 0 63 0 0 -Po 0 59250 46500 59250 40500 170 -1 -De 15 0 63 0 0 -Po 0 59625 33500 58250 33500 170 -1 -De 15 0 63 0 800400 -Po 0 59750 47000 59250 46500 170 -1 -De 15 0 63 0 0 -Po 0 40750 47750 40750 47000 170 -1 +Po 0 40750 54500 40750 52500 170 -1 +De 15 0 63 0 800 +Po 0 41250 48250 40750 47750 170 -1 De 15 0 63 0 0 Po 0 59250 40500 59750 40000 170 -1 De 15 0 63 0 0 -Po 0 41250 48250 40750 47750 170 -1 +Po 0 40750 47750 40750 47000 170 -1 De 15 0 63 0 0 -Po 0 40750 54500 40750 52500 170 -1 -De 15 0 63 0 400800 -Po 3 40750 47000 40750 47000 550 -1 +Po 0 59750 47000 59250 46500 170 -1 +De 15 0 63 0 0 +Po 0 59625 33500 58250 33500 170 -1 +De 15 0 63 0 400 +Po 0 59250 46500 59250 40500 170 -1 +De 15 0 63 0 0 +Po 0 40750 47000 59750 47000 170 -1 +De 0 0 63 0 0 +Po 3 59750 47000 59750 47000 550 -1 De 15 1 63 0 0 -Po 0 40250 35250 38000 35250 170 -1 +Po 0 59750 40000 59750 33625 170 -1 +De 15 0 63 0 0 +Po 0 59750 33625 59625 33500 170 -1 +De 15 0 63 0 0 +Po 0 41250 52000 41250 48250 170 -1 +De 15 0 63 0 0 +Po 0 40750 52500 41250 52000 170 -1 +De 15 0 63 0 0 +Po 0 40750 47000 40750 46000 170 -1 +De 15 0 63 0 400 +Po 0 41750 49750 39500 49750 170 -1 De 0 0 64 0 0 -Po 0 41750 54500 41750 49750 170 -1 -De 15 0 64 0 400800 -Po 0 41750 34000 41500 34000 170 -1 +Po 0 41500 34000 40250 35250 170 -1 De 0 0 64 0 0 -Po 0 38000 35250 38250 35500 170 -1 +Po 0 38750 47000 38250 46500 170 -1 +De 15 0 64 0 0 +Po 0 38750 49000 38750 47000 170 -1 +De 15 0 64 0 800 +Po 3 41750 49750 41750 49750 550 -1 +De 15 1 64 0 0 +Po 0 41750 34000 52350 34000 170 -1 +De 0 0 64 0 0 +Po 0 52350 34000 56750 34000 170 -1 +De 0 0 64 0 0 +Po 0 56750 34000 57250 34500 170 -1 +De 0 0 64 0 400 +Po 0 39500 49750 38750 49000 170 -1 +De 0 0 64 0 400 +Po 0 38250 46500 38250 35500 170 -1 De 15 0 64 0 0 Po 3 38000 35250 38000 35250 550 -1 De 15 1 64 0 0 -Po 0 38250 46500 38250 35500 170 -1 +Po 0 38000 35250 38250 35500 170 -1 De 15 0 64 0 0 -Po 0 39500 49750 38750 49000 170 -1 -De 0 0 64 0 800400 -Po 0 56750 34000 57250 34500 170 -1 -De 0 0 64 0 800400 -Po 0 52350 34000 56750 34000 170 -1 +Po 0 41750 34000 41500 34000 170 -1 De 0 0 64 0 0 -Po 0 41750 34000 52350 34000 170 -1 +Po 0 41750 54500 41750 49750 170 -1 +De 15 0 64 0 800 +Po 0 40250 35250 38000 35250 170 -1 De 0 0 64 0 0 -Po 3 41750 49750 41750 49750 550 -1 -De 15 1 64 0 0 -Po 0 38750 49000 38750 47000 170 -1 -De 15 0 64 0 400800 -Po 0 38750 47000 38250 46500 170 -1 -De 15 0 64 0 0 -Po 0 41500 34000 40250 35250 170 -1 -De 0 0 64 0 0 -Po 0 41750 49750 39500 49750 170 -1 -De 0 0 64 0 0 -Po 0 42250 34500 42250 45000 170 -1 -De 15 0 65 0 0 -Po 0 42750 45500 42750 46000 170 -1 -De 15 0 65 0 800400 -Po 3 42250 34500 42250 34500 550 -1 -De 15 1 65 0 0 -Po 0 42250 48500 42750 48000 170 -1 -De 15 0 65 0 0 -Po 0 42750 48000 42750 46000 170 -1 -De 15 0 65 0 800400 -Po 0 42250 52500 42250 48500 170 -1 -De 15 0 65 0 0 -Po 0 42250 45000 42750 45500 170 -1 -De 15 0 65 0 0 -Po 0 56250 34500 42250 34500 170 -1 -De 0 0 65 0 400800 -Po 0 42750 54500 42750 53000 170 -1 -De 15 0 65 0 400800 Po 0 42750 53000 42250 52500 170 -1 De 15 0 65 0 0 -Po 0 44250 40000 44250 45500 170 -1 -De 15 0 66 0 0 -Po 0 43750 54500 43750 53000 170 -1 -De 15 0 66 0 400800 -Po 0 56750 33000 44250 33000 170 -1 -De 0 0 66 0 0 -Po 0 43750 33500 43750 39500 170 -1 -De 15 0 66 0 0 -Po 0 43750 39500 44250 40000 170 -1 -De 15 0 66 0 0 -Po 0 44250 33000 43750 33500 170 -1 -De 15 0 66 0 0 -Po 0 44750 48000 44750 46000 170 -1 -De 15 0 66 0 800400 -Po 0 57250 33500 56750 33000 170 -1 -De 0 0 66 0 400800 -Po 0 44250 52500 44250 48500 170 -1 -De 15 0 66 0 0 -Po 0 44250 45500 44750 46000 170 -1 -De 15 0 66 0 800400 -Po 0 43750 53000 44250 52500 170 -1 +Po 0 42750 54500 42750 53000 170 -1 +De 15 0 65 0 800 +Po 0 56250 34500 42250 34500 170 -1 +De 0 0 65 0 800 +Po 0 42250 45000 42750 45500 170 -1 +De 15 0 65 0 0 +Po 0 42250 52500 42250 48500 170 -1 +De 15 0 65 0 0 +Po 0 42750 48000 42750 46000 170 -1 +De 15 0 65 0 400 +Po 0 42250 48500 42750 48000 170 -1 +De 15 0 65 0 0 +Po 3 42250 34500 42250 34500 550 -1 +De 15 1 65 0 0 +Po 0 42750 45500 42750 46000 170 -1 +De 15 0 65 0 400 +Po 0 42250 34500 42250 45000 170 -1 +De 15 0 65 0 0 +Po 0 44250 48500 44750 48000 170 -1 De 15 0 66 0 0 Po 3 44250 33000 44250 33000 550 -1 De 15 1 66 0 0 -Po 0 44250 48500 44750 48000 170 -1 +Po 0 43750 53000 44250 52500 170 -1 +De 15 0 66 0 0 +Po 0 44250 45500 44750 46000 170 -1 +De 15 0 66 0 400 +Po 0 44250 52500 44250 48500 170 -1 +De 15 0 66 0 0 +Po 0 57250 33500 56750 33000 170 -1 +De 0 0 66 0 800 +Po 0 44750 48000 44750 46000 170 -1 +De 15 0 66 0 400 +Po 0 44250 33000 43750 33500 170 -1 +De 15 0 66 0 0 +Po 0 43750 39500 44250 40000 170 -1 +De 15 0 66 0 0 +Po 0 43750 33500 43750 39500 170 -1 +De 15 0 66 0 0 +Po 0 56750 33000 44250 33000 170 -1 +De 0 0 66 0 0 +Po 0 43750 54500 43750 53000 170 -1 +De 15 0 66 0 800 +Po 0 44250 40000 44250 45500 170 -1 De 15 0 66 0 0 -Po 0 40750 51500 40750 49000 170 -1 -De 15 0 67 0 800400 -Po 0 56250 33500 52350 33500 170 -1 -De 0 0 67 0 400800 -Po 0 44750 51500 40750 51500 170 -1 -De 0 0 67 0 0 -Po 0 40250 33500 40250 48500 170 -1 -De 15 0 67 0 0 -Po 3 44750 51500 44750 51500 550 -1 -De 15 1 67 0 0 -Po 0 40250 48500 40750 49000 170 -1 -De 15 0 67 0 800400 -Po 0 52350 33500 40250 33500 170 -1 -De 0 0 67 0 0 -Po 0 44750 54500 44750 51500 170 -1 -De 15 0 67 0 400800 -Po 3 40250 33500 40250 33500 550 -1 -De 15 1 67 0 0 Po 3 40750 51500 40750 51500 550 -1 De 15 1 67 0 0 -Po 3 60750 52000 60750 52000 550 -1 -De 15 1 68 0 0 -Po 0 62250 50500 62250 38500 170 -1 -De 15 0 68 0 800400 -Po 0 42750 52000 42750 49000 170 -1 -De 15 0 68 0 800400 -Po 0 60750 52000 62250 50500 170 -1 -De 15 0 68 0 0 -Po 0 45750 52000 42750 52000 170 -1 -De 0 0 68 0 0 -Po 3 42750 52000 42750 52000 550 -1 -De 15 1 68 0 0 -Po 0 45750 54500 45750 52000 170 -1 -De 15 0 68 0 400800 -Po 3 45750 52000 45750 52000 550 -1 -De 15 1 68 0 0 +Po 3 40250 33500 40250 33500 550 -1 +De 15 1 67 0 0 +Po 0 44750 54500 44750 51500 170 -1 +De 15 0 67 0 800 +Po 0 52350 33500 40250 33500 170 -1 +De 0 0 67 0 0 +Po 0 40250 48500 40750 49000 170 -1 +De 15 0 67 0 400 +Po 3 44750 51500 44750 51500 550 -1 +De 15 1 67 0 0 +Po 0 40250 33500 40250 48500 170 -1 +De 15 0 67 0 0 +Po 0 44750 51500 40750 51500 170 -1 +De 0 0 67 0 0 +Po 0 56250 33500 52350 33500 170 -1 +De 0 0 67 0 800 +Po 0 40750 51500 40750 49000 170 -1 +De 15 0 67 0 400 Po 0 45750 52000 60750 52000 170 -1 De 0 0 68 0 0 -Po 0 44750 50500 56750 50500 170 -1 -De 0 0 69 0 0 -Po 0 37750 49000 39000 50250 170 -1 -De 0 0 69 0 400800 -Po 0 64250 50500 64250 48000 170 -1 -De 15 0 69 0 0 -Po 0 64250 48000 65250 47000 170 -1 -De 15 0 69 0 0 -Po 0 56750 50500 64250 50500 170 -1 -De 0 0 69 0 0 -Po 0 39000 50250 44500 50250 170 -1 -De 0 0 69 0 0 -Po 3 56750 50500 56750 50500 550 -1 -De 15 1 69 0 0 -Po 0 65250 47000 65250 38500 170 -1 -De 15 0 69 0 800400 -Po 0 56750 50500 56750 54500 170 -1 -De 15 0 69 0 800400 -Po 3 64250 50500 64250 50500 550 -1 -De 15 1 69 0 0 +Po 3 45750 52000 45750 52000 550 -1 +De 15 1 68 0 0 +Po 0 45750 54500 45750 52000 170 -1 +De 15 0 68 0 800 +Po 3 42750 52000 42750 52000 550 -1 +De 15 1 68 0 0 +Po 0 45750 52000 42750 52000 170 -1 +De 0 0 68 0 0 +Po 0 60750 52000 62250 50500 170 -1 +De 15 0 68 0 0 +Po 0 42750 52000 42750 49000 170 -1 +De 15 0 68 0 400 +Po 0 62250 50500 62250 38500 170 -1 +De 15 0 68 0 400 +Po 3 60750 52000 60750 52000 550 -1 +De 15 1 68 0 0 Po 0 44500 50250 44750 50500 170 -1 De 0 0 69 0 0 +Po 3 64250 50500 64250 50500 550 -1 +De 15 1 69 0 0 +Po 0 56750 50500 56750 54500 170 -1 +De 15 0 69 0 400 +Po 0 65250 47000 65250 38500 170 -1 +De 15 0 69 0 400 +Po 3 56750 50500 56750 50500 550 -1 +De 15 1 69 0 0 +Po 0 39000 50250 44500 50250 170 -1 +De 0 0 69 0 0 +Po 0 56750 50500 64250 50500 170 -1 +De 0 0 69 0 0 +Po 0 64250 48000 65250 47000 170 -1 +De 15 0 69 0 0 +Po 0 64250 50500 64250 48000 170 -1 +De 15 0 69 0 0 +Po 0 37750 49000 39000 50250 170 -1 +De 0 0 69 0 800 +Po 0 44750 50500 56750 50500 170 -1 +De 0 0 69 0 0 Po 0 60750 50000 60750 49000 170 -1 -De 15 0 70 0 800400 +De 15 0 70 0 400 Po 0 58750 54500 58750 52000 170 -1 -De 15 0 70 0 400800 +De 15 0 70 0 800 Po 0 58750 52000 60750 50000 170 -1 De 15 0 70 0 0 Po 0 61750 50000 61750 49000 170 -1 -De 15 0 71 0 800400 +De 15 0 71 0 400 Po 0 59750 52000 61750 50000 170 -1 De 15 0 71 0 0 Po 0 59750 54500 59750 52000 170 -1 -De 15 0 71 0 400800 +De 15 0 71 0 800 +Po 0 60750 54500 60750 53000 170 -1 +De 15 0 72 0 800 +Po 0 62750 51000 62750 49000 170 -1 +De 15 0 72 0 400 Po 0 60750 53000 62750 51000 170 -1 De 15 0 72 0 0 -Po 0 62750 51000 62750 49000 170 -1 -De 15 0 72 0 800400 -Po 0 60750 54500 60750 53000 170 -1 -De 15 0 72 0 400800 Po 0 61750 53000 63750 51000 170 -1 De 15 0 73 0 0 Po 0 63750 51000 63750 49000 170 -1 -De 15 0 73 0 800400 +De 15 0 73 0 400 Po 0 61750 54500 61750 53000 170 -1 -De 15 0 73 0 400800 +De 15 0 73 0 800 Po 0 62750 54500 62750 52750 170 -1 -De 15 0 74 0 400800 +De 15 0 74 0 800 Po 0 62750 52750 64750 50750 170 -1 De 15 0 74 0 0 Po 0 64750 50750 64750 49000 170 -1 -De 15 0 74 0 800400 +De 15 0 74 0 400 Po 0 63750 54500 63750 52500 170 -1 -De 15 0 75 0 400800 +De 15 0 75 0 800 Po 0 63750 52500 65750 50500 170 -1 De 15 0 75 0 0 Po 0 65750 50500 65750 49000 170 -1 -De 15 0 75 0 800400 +De 15 0 75 0 400 Po 0 64750 52000 64750 54500 170 -1 -De 15 0 76 0 800400 +De 15 0 76 0 400 Po 0 66750 50000 64750 52000 170 -1 De 15 0 76 0 0 Po 0 66750 49000 66750 50000 170 -1 -De 15 0 76 0 400800 -Po 0 66250 52500 67250 52500 170 -1 -De 15 0 77 0 0 -Po 0 65750 54500 65750 53000 170 -1 -De 15 0 77 0 400800 -Po 0 65750 53000 66250 52500 170 -1 -De 15 0 77 0 0 +De 15 0 76 0 800 +Po 0 67750 52000 67750 49000 170 -1 +De 15 0 77 0 400 Po 0 67250 52500 67750 52000 170 -1 De 15 0 77 0 0 -Po 0 67750 52000 67750 49000 170 -1 -De 15 0 77 0 800400 +Po 0 65750 53000 66250 52500 170 -1 +De 15 0 77 0 0 +Po 0 65750 54500 65750 53000 170 -1 +De 15 0 77 0 800 +Po 0 66250 52500 67250 52500 170 -1 +De 15 0 77 0 0 Po 0 53750 54500 53750 52500 170 -1 -De 0 0 78 0 400800 +De 0 0 78 0 800 Po 0 53750 52500 54750 51500 170 -1 De 15 0 78 0 0 Po 0 54750 51500 54750 49000 170 -1 -De 15 0 78 0 800400 +De 15 0 78 0 400 Po 3 53750 52500 53750 52500 550 -1 De 15 1 78 0 0 -Po 0 54750 54500 54750 52500 170 -1 -De 0 0 79 0 400800 -Po 0 55250 52000 55250 48500 170 -1 -De 15 0 79 0 0 -Po 0 54250 48500 53750 49000 170 -1 -De 15 0 79 0 800400 -Po 3 54750 52500 54750 52500 550 -1 -De 15 1 79 0 0 -Po 0 54750 52500 55250 52000 170 -1 -De 15 0 79 0 0 Po 0 55250 48500 54250 48500 170 -1 De 15 0 79 0 0 -Po 0 58750 41500 59250 41000 170 -1 -De 0 0 80 0 400800 -Po 0 60250 41000 60750 41500 170 -1 +Po 0 54750 52500 55250 52000 170 -1 +De 15 0 79 0 0 +Po 3 54750 52500 54750 52500 550 -1 +De 15 1 79 0 0 +Po 0 54250 48500 53750 49000 170 -1 +De 15 0 79 0 400 +Po 0 55250 52000 55250 48500 170 -1 +De 15 0 79 0 0 +Po 0 54750 54500 54750 52500 170 -1 +De 0 0 79 0 800 +Po 0 59250 41000 60250 41000 170 -1 De 0 0 80 0 0 -Po 0 60750 41500 63750 41500 170 -1 +Po 0 63750 38000 63250 37500 170 -1 +De 15 0 80 0 400 +Po 3 63750 41500 63750 41500 550 -1 +De 15 1 80 0 0 +Po 0 58750 43500 56250 43500 170 -1 De 0 0 80 0 0 -Po 0 56250 43500 56250 45500 170 -1 -De 15 0 80 0 0 -Po 3 56250 43500 56250 43500 550 -1 +Po 0 58750 41500 58750 43500 170 -1 +De 15 0 80 0 800 +Po 0 56250 45500 55750 46000 170 -1 +De 15 0 80 0 400 +Po 3 58750 43500 58750 43500 550 -1 De 15 1 80 0 0 Po 0 63750 41500 63750 38000 170 -1 De 15 0 80 0 0 -Po 3 58750 43500 58750 43500 550 -1 +Po 3 56250 43500 56250 43500 550 -1 De 15 1 80 0 0 -Po 0 56250 45500 55750 46000 170 -1 -De 15 0 80 0 800400 -Po 0 58750 41500 58750 43500 170 -1 -De 15 0 80 0 400800 -Po 0 58750 43500 56250 43500 170 -1 +Po 0 56250 43500 56250 45500 170 -1 +De 15 0 80 0 0 +Po 0 60750 41500 63750 41500 170 -1 De 0 0 80 0 0 -Po 3 63750 41500 63750 41500 550 -1 -De 15 1 80 0 0 -Po 0 63750 38000 63250 37500 170 -1 -De 15 0 80 0 800400 -Po 0 59250 41000 60250 41000 170 -1 +Po 0 60250 41000 60750 41500 170 -1 De 0 0 80 0 0 +Po 0 58750 41500 59250 41000 170 -1 +De 0 0 80 0 800 Po 0 57250 50000 56750 49500 170 -1 De 0 0 81 0 0 Po 0 65750 54500 65750 50500 170 -1 -De 0 0 81 0 400800 +De 0 0 81 0 800 Po 0 56750 49500 56750 49000 170 -1 -De 0 0 81 0 800400 +De 0 0 81 0 400 Po 0 56750 49000 55750 49000 170 -1 -De 0 0 81 0 C00C00 +De 0 0 81 0 C00 Po 0 65750 50500 65250 50000 170 -1 De 0 0 81 0 0 Po 0 65250 50000 57250 50000 170 -1 De 0 0 81 0 0 -Po 0 54875 45000 61250 45000 170 -1 -De 0 0 82 0 0 -Po 0 54750 46000 54750 44500 170 -1 -De 15 0 82 0 C00C00 -Po 0 54875 45000 54750 44875 170 -1 -De 0 0 82 0 0 -Po 0 61250 45000 61250 38500 170 -1 -De 15 0 82 0 800400 +Po 0 54750 44875 54750 44500 170 -1 +De 0 0 82 0 400 Po 3 61250 45000 61250 45000 550 -1 De 15 1 82 0 0 -Po 0 54750 44875 54750 44500 170 -1 -De 0 0 82 0 800400 +Po 0 61250 45000 61250 38500 170 -1 +De 15 0 82 0 400 +Po 0 54875 45000 54750 44875 170 -1 +De 0 0 82 0 0 +Po 0 54750 46000 54750 44500 170 -1 +De 15 0 82 0 C00 +Po 0 54875 45000 61250 45000 170 -1 +De 0 0 82 0 0 Po 0 70750 39000 70750 39500 170 -1 De 0 0 83 0 0 Po 0 68250 36500 70750 39000 170 -1 -De 0 0 83 0 400800 +De 0 0 83 0 800 Po 0 70750 39500 71750 40450 170 -1 -De 0 0 83 0 800400 -Po 0 59000 40750 59250 40500 170 -1 -De 0 0 84 0 0 -Po 0 59250 40500 60500 40500 170 -1 -De 0 0 84 0 0 -Po 0 53750 41500 53750 41000 170 -1 -De 0 0 84 0 400800 -Po 0 67750 40625 67750 37625 170 -1 -De 0 0 84 0 0 -Po 0 60750 40750 67625 40750 170 -1 -De 0 0 84 0 0 -Po 0 53750 41000 54000 40750 170 -1 -De 0 0 84 0 0 -Po 0 54000 40750 59000 40750 170 -1 -De 0 0 84 0 0 -Po 0 67625 37500 67250 37500 170 -1 -De 0 0 84 0 800400 -Po 0 67750 37625 67625 37500 170 -1 +De 0 0 83 0 400 +Po 0 60500 40500 60750 40750 170 -1 De 0 0 84 0 0 Po 0 67625 40750 67750 40625 170 -1 De 0 0 84 0 0 -Po 0 60500 40500 60750 40750 170 -1 +Po 0 67750 37625 67625 37500 170 -1 +De 0 0 84 0 0 +Po 0 67625 37500 67250 37500 170 -1 +De 0 0 84 0 400 +Po 0 54000 40750 59000 40750 170 -1 +De 0 0 84 0 0 +Po 0 53750 41000 54000 40750 170 -1 +De 0 0 84 0 0 +Po 0 60750 40750 67625 40750 170 -1 +De 0 0 84 0 0 +Po 0 67750 40625 67750 37625 170 -1 +De 0 0 84 0 0 +Po 0 53750 41500 53750 41000 170 -1 +De 0 0 84 0 800 +Po 0 59250 40500 60500 40500 170 -1 +De 0 0 84 0 0 +Po 0 59000 40750 59250 40500 170 -1 De 0 0 84 0 0 Po 0 45750 46000 45750 44500 170 -1 -De 15 0 85 0 C00C00 +De 15 0 85 0 C00 Po 0 45750 44500 45750 42500 170 -1 -De 15 0 85 0 C00C00 +De 15 0 85 0 C00 Po 0 45250 47000 45750 47500 170 -1 De 15 0 86 0 0 Po 0 45750 47500 45750 49000 170 -1 -De 15 0 86 0 800400 +De 15 0 86 0 400 Po 0 44750 44500 44750 42500 170 -1 -De 15 0 86 0 C00C00 +De 15 0 86 0 C00 Po 0 44750 44500 45250 45000 170 -1 -De 15 0 86 0 400800 +De 15 0 86 0 800 Po 0 45250 45000 45250 47000 170 -1 De 15 0 86 0 0 -Po 0 39750 44500 39750 46000 170 -1 -De 15 0 87 0 C00C00 Po 0 39750 42500 39750 44500 170 -1 -De 15 0 87 0 C00C00 +De 15 0 87 0 C00 +Po 0 39750 44500 39750 46000 170 -1 +De 15 0 87 0 C00 Po 0 39250 45000 39250 47000 170 -1 De 15 0 88 0 0 Po 0 38750 44500 39250 45000 170 -1 -De 15 0 88 0 400800 +De 15 0 88 0 800 Po 0 39750 47500 39750 49000 170 -1 -De 15 0 88 0 800400 +De 15 0 88 0 400 Po 0 38750 44500 38750 42500 170 -1 -De 15 0 88 0 C00C00 +De 15 0 88 0 C00 Po 0 39250 47000 39750 47500 170 -1 De 15 0 88 0 0 Po 0 41750 46000 41750 44500 170 -1 -De 15 0 89 0 C00C00 +De 15 0 89 0 C00 Po 0 41750 44500 41750 42500 170 -1 -De 15 0 89 0 C00C00 +De 15 0 89 0 C00 Po 0 43750 46000 43750 44500 170 -1 -De 15 0 90 0 C00C00 +De 15 0 90 0 C00 Po 0 43750 44500 43750 42500 170 -1 -De 15 0 90 0 C00C00 -Po 0 41750 47500 41750 49000 170 -1 -De 15 0 91 0 800400 -Po 0 40750 44500 41250 45000 170 -1 -De 15 0 91 0 400800 -Po 0 41250 47000 41750 47500 170 -1 -De 15 0 91 0 0 -Po 0 40750 44500 40750 42500 170 -1 -De 15 0 91 0 C00C00 +De 15 0 90 0 C00 Po 0 41250 45000 41250 47000 170 -1 De 15 0 91 0 0 +Po 0 40750 44500 40750 42500 170 -1 +De 15 0 91 0 C00 +Po 0 41250 47000 41750 47500 170 -1 +De 15 0 91 0 0 +Po 0 40750 44500 41250 45000 170 -1 +De 15 0 91 0 800 +Po 0 41750 47500 41750 49000 170 -1 +De 15 0 91 0 400 Po 0 42750 44500 43250 45000 170 -1 -De 15 0 92 0 400800 +De 15 0 92 0 800 Po 0 43750 47500 43750 49000 170 -1 -De 15 0 92 0 800400 +De 15 0 92 0 400 Po 0 43250 45000 43250 47000 170 -1 De 15 0 92 0 0 Po 0 42750 44500 42750 42500 170 -1 -De 15 0 92 0 C00C00 +De 15 0 92 0 C00 Po 0 43250 47000 43750 47500 170 -1 De 15 0 92 0 0 Po 0 57250 45500 56750 46000 170 -1 -De 15 0 93 0 800400 +De 15 0 93 0 400 Po 0 58750 44500 58750 45000 170 -1 -De 15 0 93 0 400800 +De 15 0 93 0 800 Po 0 58750 45000 58250 45500 170 -1 De 15 0 93 0 0 Po 0 58250 45500 57250 45500 170 -1 De 15 0 93 0 0 -Po 0 54875 37000 57125 37000 170 -1 +Po 0 57250 36875 57250 36500 170 -1 +De 15 0 94 0 400 +Po 0 54750 41500 54750 37125 170 -1 +De 15 0 94 0 800 +Po 0 57125 37000 57250 36875 170 -1 De 15 0 94 0 0 Po 0 54750 37125 54875 37000 170 -1 De 15 0 94 0 0 -Po 0 57125 37000 57250 36875 170 -1 +Po 0 54875 37000 57125 37000 170 -1 De 15 0 94 0 0 -Po 0 54750 41500 54750 37125 170 -1 -De 15 0 94 0 400800 -Po 0 57250 36875 57250 36500 170 -1 -De 15 0 94 0 800400 Po 0 68750 38500 71750 41500 170 -1 De 0 0 95 0 0 Po 0 68250 38500 68750 38500 170 -1 -De 0 0 95 0 400800 +De 0 0 95 0 800 Po 0 71750 41500 71750 41550 170 -1 -De 0 0 95 0 800400 -Po 0 66750 30250 67000 30000 170 -1 -De 0 0 96 0 0 -Po 0 72750 32250 72750 32300 170 -1 -De 15 0 96 0 800400 -Po 0 66750 31000 66750 30250 170 -1 -De 0 0 96 0 0 -Po 0 70500 32250 72750 32250 170 -1 -De 15 0 96 0 0 -Po 0 70250 30000 70250 32000 170 -1 +De 0 0 95 0 400 +Po 0 66250 31500 66750 31000 170 -1 +De 0 0 96 0 800 +Po 3 70250 30000 70250 30000 550 -1 +De 15 1 96 0 0 +Po 0 70250 32000 70500 32250 170 -1 De 15 0 96 0 0 Po 0 67000 30000 70250 30000 170 -1 De 0 0 96 0 0 -Po 0 70250 32000 70500 32250 170 -1 +Po 0 70250 30000 70250 32000 170 -1 De 15 0 96 0 0 -Po 3 70250 30000 70250 30000 550 -1 -De 15 1 96 0 0 -Po 0 66250 31500 66750 31000 170 -1 -De 0 0 96 0 400800 +Po 0 70500 32250 72750 32250 170 -1 +De 15 0 96 0 0 +Po 0 66750 31000 66750 30250 170 -1 +De 0 0 96 0 0 +Po 0 72750 32250 72750 32300 170 -1 +De 15 0 96 0 400 +Po 0 66750 30250 67000 30000 170 -1 +De 0 0 96 0 0 Po 0 67750 27000 70250 27000 170 -1 De 0 0 97 0 0 Po 0 70250 27000 71750 28500 170 -1 -De 0 0 97 0 800400 +De 0 0 97 0 400 Po 0 67250 26500 67750 27000 170 -1 -De 0 0 97 0 400800 -Po 0 63250 17500 37250 17500 170 -1 -De 0 0 98 0 0 -Po 0 63750 18000 63250 17500 170 -1 -De 0 0 98 0 0 -Po 0 37250 24000 37250 17500 170 -1 -De 15 0 98 0 400800 -Po 0 68250 26500 68250 18000 170 -1 -De 15 0 98 0 400800 -Po 3 68250 18000 68250 18000 550 -1 +De 0 0 97 0 800 +Po 3 37250 17500 37250 17500 550 -1 De 15 1 98 0 0 Po 0 68250 18000 63750 18000 170 -1 De 0 0 98 0 0 -Po 3 37250 17500 37250 17500 550 -1 +Po 3 68250 18000 68250 18000 550 -1 De 15 1 98 0 0 -Po 0 59750 41875 59750 41500 170 -1 -De 0 0 99 0 800400 -Po 0 57750 41500 57750 41875 170 -1 -De 0 0 99 0 400800 -Po 0 57750 41875 57875 42000 170 -1 +Po 0 68250 26500 68250 18000 170 -1 +De 15 0 98 0 800 +Po 0 37250 24000 37250 17500 170 -1 +De 15 0 98 0 800 +Po 0 63750 18000 63250 17500 170 -1 +De 0 0 98 0 0 +Po 0 63250 17500 37250 17500 170 -1 +De 0 0 98 0 0 +Po 0 57875 42000 59625 42000 170 -1 De 0 0 99 0 0 Po 0 59625 42000 59750 41875 170 -1 De 0 0 99 0 0 -Po 0 57875 42000 59625 42000 170 -1 +Po 0 57750 41875 57875 42000 170 -1 De 0 0 99 0 0 -Po 0 72750 34480 72750 33380 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 41000 72750 39900 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 37760 72750 36640 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 36640 72750 35560 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 39900 72750 38820 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 35560 72750 34480 220 -1 -De 0 0 100 0 C00C00 -Po 0 72750 38820 72750 37760 220 -1 -De 0 0 100 0 C00C00 -Po 0 57250 32500 57750 33000 220 -1 -De 15 0 100 0 400800 -Po 0 48750 44500 48750 45000 220 -1 -De 15 0 100 0 400800 -Po 0 49250 30000 49250 31000 220 -1 -De 15 0 100 0 400800 -Po 0 33500 42750 33500 49750 220 -1 -De 0 0 100 0 0 -Po 0 38750 36500 38750 35000 220 -1 +Po 0 57750 41500 57750 41875 170 -1 +De 0 0 99 0 800 +Po 0 59750 41875 59750 41500 170 -1 +De 0 0 99 0 400 +Po 0 65750 35000 65750 33000 220 -1 De 15 0 100 0 0 -Po 0 61750 14500 62750 14500 220 -1 -De 15 0 100 0 0 -Po 0 49250 30000 49250 29500 220 -1 -De 15 0 100 0 400800 -Po 0 47750 43500 48750 44500 220 -1 -De 15 0 100 0 800400 -Po 0 48750 48500 49750 47500 220 -1 -De 15 0 100 0 0 -Po 0 49750 47500 49750 46000 220 -1 -De 15 0 100 0 800400 -Po 0 65250 28500 65750 29000 220 -1 -De 15 0 100 0 400800 -Po 0 48750 45000 49750 46000 220 -1 -De 15 0 100 0 800400 -Po 0 68750 51500 68250 52000 220 -1 +Po 0 39750 41500 40750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 46750 49000 48750 49000 220 -1 +De 0 0 100 0 C00 +Po 0 43750 41500 44750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 61750 21000 61250 20500 220 -1 +De 15 0 100 0 400 +Po 0 57750 35000 58250 35500 220 -1 +De 15 0 100 0 400 +Po 0 42250 36500 38750 36500 220 -1 De 0 0 100 0 0 -Po 0 67250 52000 66750 52500 220 -1 +Po 0 62250 35500 62250 36500 220 -1 +De 15 0 100 0 400 +Po 0 48750 31500 48750 36000 220 -1 +De 15 0 100 0 400 +Po 0 43750 35000 42250 36500 220 -1 De 0 0 100 0 0 -Po 0 66750 52500 66750 54500 220 -1 -De 0 0 100 0 800400 -Po 0 68250 52000 67250 52000 220 -1 -De 0 0 100 0 0 -Po 0 68750 49000 68750 51500 220 -1 -De 0 0 100 0 400800 -Po 0 61750 28000 62250 27500 220 -1 -De 15 0 100 0 800400 -Po 0 47750 41500 47750 43500 220 -1 -De 15 0 100 0 0 -Po 0 57250 48000 49750 48000 220 -1 -De 0 0 100 0 0 -Po 0 48750 39000 48750 36000 220 -1 -De 15 0 100 0 C00C00 -Po 0 44250 35000 43750 35000 220 -1 -De 0 0 100 0 0 -Po 0 49250 29500 48750 29000 220 -1 -De 15 0 100 0 0 -Po 0 62750 28000 64750 28000 220 -1 -De 0 0 100 0 0 -Po 3 47750 41500 47750 41500 600 -1 -De 15 1 100 0 0 -Po 0 57750 49000 57750 48500 220 -1 -De 0 0 100 0 400800 -Po 0 34750 52000 34250 51500 220 -1 -De 0 0 100 0 0 -Po 0 36750 54500 36250 54000 220 -1 -De 0 0 100 0 400800 -Po 0 36250 54000 36250 52500 220 -1 -De 0 0 100 0 0 -Po 0 36250 52500 35750 52000 220 -1 -De 0 0 100 0 0 -Po 0 34250 51500 34250 50500 220 -1 -De 0 0 100 0 800400 -Po 0 35750 52000 34750 52000 220 -1 -De 0 0 100 0 0 -Po 3 62250 35500 62250 35500 600 -1 -De 15 1 100 0 0 -Po 0 64750 28000 65250 28500 220 -1 -De 0 0 100 0 800400 -Po 0 57750 48500 57250 48000 220 -1 -De 0 0 100 0 0 -Po 0 59250 28500 59750 28000 220 -1 -De 15 0 100 0 400800 -Po 0 38750 33000 38750 35000 220 -1 -De 15 0 100 0 400800 -Po 0 47750 35000 48750 36000 220 -1 -De 0 0 100 0 800400 -Po 0 44250 35000 47750 35000 220 -1 -De 0 0 100 0 0 -Po 0 65750 32000 66250 32500 220 -1 -De 15 0 100 0 800400 -Po 0 41750 41500 42750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 38750 41500 34750 41500 220 -1 -De 0 0 100 0 400800 -Po 0 34750 41500 33500 42750 220 -1 -De 0 0 100 0 0 -Po 0 65750 33000 66250 32500 220 -1 -De 15 0 100 0 800400 -Po 0 48750 39000 48750 40500 220 -1 -De 15 0 100 0 400800 -Po 0 62250 35500 66250 35500 220 -1 -De 0 0 100 0 800400 -Po 0 62750 14500 63250 15000 220 -1 -De 15 0 100 0 0 -Po 0 49250 31000 48750 31500 220 -1 -De 15 0 100 0 0 -Po 0 43750 41500 42750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 57750 33000 57750 35000 220 -1 -De 15 0 100 0 0 -Po 0 33500 49750 34250 50500 220 -1 -De 0 0 100 0 800400 -Po 0 65750 29000 65750 32000 220 -1 +Po 0 45750 41500 47750 41500 220 -1 +De 0 0 100 0 800 +Po 0 61750 27000 61750 21000 220 -1 De 15 0 100 0 0 Po 0 59750 28000 61750 28000 220 -1 De 15 0 100 0 0 -Po 0 61750 27000 61750 21000 220 -1 +Po 0 65750 29000 65750 32000 220 -1 De 15 0 100 0 0 -Po 0 45750 41500 47750 41500 220 -1 -De 0 0 100 0 400800 -Po 0 43750 35000 42250 36500 220 -1 +Po 0 33500 49750 34250 50500 220 -1 +De 0 0 100 0 400 +Po 0 57750 33000 57750 35000 220 -1 +De 15 0 100 0 0 +Po 0 43750 41500 42750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 49250 31000 48750 31500 220 -1 +De 15 0 100 0 0 +Po 0 62750 14500 63250 15000 220 -1 +De 15 0 100 0 0 +Po 0 62250 35500 66250 35500 220 -1 +De 0 0 100 0 400 +Po 0 48750 39000 48750 40500 220 -1 +De 15 0 100 0 800 +Po 0 65750 33000 66250 32500 220 -1 +De 15 0 100 0 400 +Po 0 34750 41500 33500 42750 220 -1 De 0 0 100 0 0 -Po 0 48750 31500 48750 36000 220 -1 -De 15 0 100 0 800400 -Po 0 62250 35500 62250 36500 220 -1 -De 15 0 100 0 800400 -Po 0 42250 36500 38750 36500 220 -1 -De 0 0 100 0 0 -Po 0 57750 35000 58250 35500 220 -1 -De 15 0 100 0 800400 -Po 0 61750 21000 61250 20500 220 -1 -De 15 0 100 0 800400 -Po 0 43750 41500 44750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 46750 49000 48750 49000 220 -1 -De 0 0 100 0 C00C00 -Po 0 39750 41500 40750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 65750 35000 65750 33000 220 -1 -De 15 0 100 0 0 -Po 0 66250 35500 65750 35000 220 -1 -De 15 0 100 0 400800 -Po 0 48750 29000 48750 20500 220 -1 -De 15 0 100 0 0 -Po 0 41750 41500 40750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 39750 41500 38750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 44750 41500 45750 41500 220 -1 -De 0 0 100 0 C00C00 -Po 0 58250 35500 62250 35500 220 -1 -De 0 0 100 0 400800 -Po 0 62250 27500 62750 28000 220 -1 -De 0 0 100 0 400800 -Po 0 62250 27500 61750 27000 220 -1 -De 15 0 100 0 400800 -Po 0 48750 40500 47750 41500 220 -1 -De 15 0 100 0 0 -Po 3 48750 20500 48750 20500 600 -1 -De 15 1 100 0 0 -Po 0 48750 20500 61250 20500 220 -1 -De 0 0 100 0 800400 -Po 0 68750 48750 68750 49000 220 -1 -De 0 0 100 0 800400 -Po 0 68000 48000 68750 48750 220 -1 -De 0 0 100 0 0 -Po 0 57750 49000 58750 48000 220 -1 -De 0 0 100 0 400800 -Po 0 48750 49000 48750 48500 220 -1 -De 15 0 100 0 400800 -Po 0 49750 48000 48750 49000 220 -1 -De 0 0 100 0 800400 -Po 3 38750 36500 38750 36500 600 -1 -De 15 1 100 0 0 -Po 0 58750 48000 68000 48000 220 -1 -De 0 0 100 0 0 -Po 0 61250 15000 61750 14500 220 -1 -De 15 0 100 0 400800 -Po 0 60750 17000 61250 17500 220 -1 -De 15 0 100 0 0 +Po 0 38750 41500 34750 41500 220 -1 +De 0 0 100 0 800 +Po 0 61250 17500 61250 20500 220 -1 +De 15 0 100 0 400 +Po 0 63250 15000 65250 15000 220 -1 +De 15 0 100 0 400 +Po 0 61250 15000 60750 15500 220 -1 +De 15 0 100 0 800 Po 0 60750 15500 60750 17000 220 -1 De 15 0 100 0 0 -Po 0 61250 15000 60750 15500 220 -1 -De 15 0 100 0 400800 -Po 0 63250 15000 65250 15000 220 -1 -De 15 0 100 0 800400 -Po 0 61250 17500 61250 20500 220 -1 -De 15 0 100 0 800400 +Po 0 60750 17000 61250 17500 220 -1 +De 15 0 100 0 0 +Po 0 61250 15000 61750 14500 220 -1 +De 15 0 100 0 800 +Po 0 58750 48000 68000 48000 220 -1 +De 0 0 100 0 0 +Po 3 38750 36500 38750 36500 600 -1 +De 15 1 100 0 0 +Po 0 49750 48000 48750 49000 220 -1 +De 0 0 100 0 400 +Po 0 48750 49000 48750 48500 220 -1 +De 15 0 100 0 800 +Po 0 57750 49000 58750 48000 220 -1 +De 0 0 100 0 800 +Po 0 68000 48000 68750 48750 220 -1 +De 0 0 100 0 0 +Po 0 68750 48750 68750 49000 220 -1 +De 0 0 100 0 400 +Po 0 48750 20500 61250 20500 220 -1 +De 0 0 100 0 400 +Po 3 48750 20500 48750 20500 600 -1 +De 15 1 100 0 0 +Po 0 48750 40500 47750 41500 220 -1 +De 15 0 100 0 0 +Po 0 62250 27500 61750 27000 220 -1 +De 15 0 100 0 800 +Po 0 62250 27500 62750 28000 220 -1 +De 0 0 100 0 800 +Po 0 58250 35500 62250 35500 220 -1 +De 0 0 100 0 800 +Po 0 44750 41500 45750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 39750 41500 38750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 41750 41500 40750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 48750 29000 48750 20500 220 -1 +De 15 0 100 0 0 +Po 0 66250 35500 65750 35000 220 -1 +De 15 0 100 0 800 +Po 0 68750 49000 68750 51500 220 -1 +De 0 0 100 0 800 +Po 0 68250 52000 67250 52000 220 -1 +De 0 0 100 0 0 +Po 0 66750 52500 66750 54500 220 -1 +De 0 0 100 0 400 +Po 0 67250 52000 66750 52500 220 -1 +De 0 0 100 0 0 +Po 0 68750 51500 68250 52000 220 -1 +De 0 0 100 0 0 +Po 0 48750 45000 49750 46000 220 -1 +De 15 0 100 0 400 +Po 0 65250 28500 65750 29000 220 -1 +De 15 0 100 0 800 +Po 0 49750 47500 49750 46000 220 -1 +De 15 0 100 0 400 +Po 0 48750 48500 49750 47500 220 -1 +De 15 0 100 0 0 +Po 0 47750 43500 48750 44500 220 -1 +De 15 0 100 0 400 +Po 0 49250 30000 49250 29500 220 -1 +De 15 0 100 0 800 +Po 0 61750 14500 62750 14500 220 -1 +De 15 0 100 0 0 +Po 0 38750 36500 38750 35000 220 -1 +De 15 0 100 0 0 +Po 0 33500 42750 33500 49750 220 -1 +De 0 0 100 0 0 +Po 0 49250 30000 49250 31000 220 -1 +De 15 0 100 0 800 +Po 0 48750 44500 48750 45000 220 -1 +De 15 0 100 0 800 +Po 0 57250 32500 57750 33000 220 -1 +De 15 0 100 0 800 +Po 0 72750 38820 72750 37760 220 -1 +De 0 0 100 0 C00 +Po 0 72750 35560 72750 34480 220 -1 +De 0 0 100 0 C00 +Po 0 72750 39900 72750 38820 220 -1 +De 0 0 100 0 C00 +Po 0 72750 36640 72750 35560 220 -1 +De 0 0 100 0 C00 +Po 0 72750 37760 72750 36640 220 -1 +De 0 0 100 0 C00 +Po 0 72750 41000 72750 39900 220 -1 +De 0 0 100 0 C00 +Po 0 72750 34480 72750 33380 220 -1 +De 0 0 100 0 C00 +Po 0 41750 41500 42750 41500 220 -1 +De 0 0 100 0 C00 +Po 0 65750 32000 66250 32500 220 -1 +De 15 0 100 0 400 +Po 0 44250 35000 47750 35000 220 -1 +De 0 0 100 0 0 +Po 0 47750 35000 48750 36000 220 -1 +De 0 0 100 0 400 +Po 0 38750 33000 38750 35000 220 -1 +De 15 0 100 0 800 +Po 0 59250 28500 59750 28000 220 -1 +De 15 0 100 0 800 +Po 0 57750 48500 57250 48000 220 -1 +De 0 0 100 0 0 +Po 0 64750 28000 65250 28500 220 -1 +De 0 0 100 0 400 +Po 3 62250 35500 62250 35500 600 -1 +De 15 1 100 0 0 +Po 0 35750 52000 34750 52000 220 -1 +De 0 0 100 0 0 +Po 0 34250 51500 34250 50500 220 -1 +De 0 0 100 0 400 +Po 0 36250 52500 35750 52000 220 -1 +De 0 0 100 0 0 +Po 0 36250 54000 36250 52500 220 -1 +De 0 0 100 0 0 +Po 0 36750 54500 36250 54000 220 -1 +De 0 0 100 0 800 +Po 0 34750 52000 34250 51500 220 -1 +De 0 0 100 0 0 +Po 0 57750 49000 57750 48500 220 -1 +De 0 0 100 0 800 +Po 3 47750 41500 47750 41500 600 -1 +De 15 1 100 0 0 +Po 0 62750 28000 64750 28000 220 -1 +De 0 0 100 0 0 +Po 0 49250 29500 48750 29000 220 -1 +De 15 0 100 0 0 +Po 0 44250 35000 43750 35000 220 -1 +De 0 0 100 0 0 +Po 0 48750 39000 48750 36000 220 -1 +De 15 0 100 0 C00 +Po 0 57250 48000 49750 48000 220 -1 +De 0 0 100 0 0 +Po 0 47750 41500 47750 43500 220 -1 +De 15 0 100 0 0 +Po 0 61750 28000 62250 27500 220 -1 +De 15 0 100 0 400 Po 0 36250 22500 36250 24000 170 -1 -De 0 0 101 0 C00C00 +De 0 0 101 0 C00 Po 0 66250 16500 66250 15000 170 -1 -De 15 0 102 0 C00C00 -Po 0 61250 16500 62250 15500 170 -1 -De 15 0 103 0 400800 +De 15 0 102 0 C00 Po 0 62250 15500 62250 15000 170 -1 -De 15 0 103 0 800400 +De 15 0 103 0 400 +Po 0 61250 16500 62250 15500 170 -1 +De 15 0 103 0 800 Po 0 50750 46000 50750 44500 170 -1 -De 15 0 104 0 C00C00 +De 15 0 104 0 C00 Po 0 51750 46000 51750 44500 170 -1 -De 15 0 105 0 C00C00 +De 15 0 105 0 C00 Po 0 52750 46000 52750 44500 170 -1 -De 15 0 106 0 C00C00 +De 15 0 106 0 C00 Po 0 53750 46000 53750 44500 170 -1 -De 15 0 107 0 C00C00 +De 15 0 107 0 C00 Po 0 46250 36000 45250 36000 170 -1 -De 0 0 108 0 400800 +De 0 0 108 0 800 Po 0 52750 36500 56250 36500 170 -1 -De 0 0 108 0 800400 +De 0 0 108 0 400 Po 0 52500 36750 52750 36500 170 -1 De 0 0 108 0 0 Po 0 45250 36000 44750 36500 170 -1 -De 0 0 108 0 800400 +De 0 0 108 0 400 Po 0 47750 36000 48500 36750 170 -1 -De 0 0 108 0 400800 +De 0 0 108 0 800 Po 0 47750 36000 46250 36000 170 -1 -De 0 0 108 0 C00C00 +De 0 0 108 0 C00 Po 0 48500 36750 52500 36750 170 -1 De 0 0 108 0 0 -Po 0 47750 39000 48250 38500 170 -1 -De 0 0 109 0 400800 -Po 0 46250 39000 45250 39000 170 -1 -De 0 0 109 0 400800 -Po 0 47750 39000 46250 39000 170 -1 -De 0 0 109 0 C00C00 -Po 0 49750 38500 50250 39000 170 -1 -De 0 0 109 0 800400 -Po 0 45250 39000 44750 38500 170 -1 -De 0 0 109 0 800400 Po 0 48250 38500 49750 38500 170 -1 De 0 0 109 0 0 -Po 0 66250 29500 66750 30000 220 -1 -De 15 0 110 0 400800 -Po 0 50250 43000 49750 42500 220 -1 -De 0 0 110 0 0 -Po 0 37750 44500 34250 44500 220 -1 -De 0 0 110 0 C00C00 -Po 0 62750 44000 62750 38000 220 -1 -De 15 0 110 0 400800 -Po 0 66750 32000 67250 32500 220 -1 -De 15 0 110 0 800400 -Po 0 50250 46500 49250 46500 220 -1 -De 0 0 110 0 0 -Po 0 49750 42500 49750 41500 220 -1 -De 0 0 110 0 800400 -Po 0 59250 46500 50250 46500 220 -1 -De 0 0 110 0 0 -Po 0 37750 46000 37750 44500 220 -1 -De 15 0 110 0 C00C00 -Po 0 32750 34500 34250 36000 220 -1 -De 15 0 110 0 0 -Po 0 67250 27500 67750 27000 220 -1 -De 15 0 110 0 400800 -Po 0 62750 38000 62250 37500 220 -1 -De 15 0 110 0 800400 -Po 0 38750 50000 38750 52000 220 -1 -De 15 0 110 0 0 -Po 0 32750 33000 32750 34500 220 -1 -De 15 0 110 0 400800 -Po 0 49250 46500 48750 46000 220 -1 -De 0 0 110 0 800400 -Po 0 59750 45625 59875 45500 220 -1 -De 0 0 110 0 0 -Po 3 65250 29500 65250 29500 450 -1 -De 15 1 110 0 0 -Po 0 62750 37000 62250 37500 220 -1 -De 0 0 110 0 800400 -Po 0 59750 46000 59250 46500 220 -1 -De 0 0 110 0 400800 -Po 0 59750 46000 60750 47000 220 -1 -De 0 0 110 0 400800 -Po 0 64750 53000 64750 54500 220 -1 -De 0 0 110 0 800400 -Po 0 49750 41500 48750 41500 220 -1 -De 0 0 110 0 C00C00 -Po 0 59750 46000 59750 45625 220 -1 -De 0 0 110 0 400800 -Po 0 67750 21250 67250 20750 220 -1 -De 15 0 110 0 0 -Po 0 66750 30000 66750 32000 220 -1 -De 15 0 110 0 0 -Po 0 37750 47000 38250 47500 220 -1 -De 15 0 110 0 0 -Po 0 60750 47000 67250 47000 220 -1 -De 0 0 110 0 0 -Po 0 65250 29500 66250 29500 220 -1 -De 0 0 110 0 800400 -Po 0 62750 45375 62750 44000 220 -1 -De 0 0 110 0 800400 -Po 0 34250 44500 34250 36000 220 -1 -De 15 0 110 0 400800 -Po 0 67250 47000 67250 50500 220 -1 -De 15 0 110 0 0 -Po 0 33250 22500 34250 23500 220 -1 -De 15 0 110 0 400800 +Po 0 45250 39000 44750 38500 170 -1 +De 0 0 109 0 400 +Po 0 49750 38500 50250 39000 170 -1 +De 0 0 109 0 400 +Po 0 47750 39000 46250 39000 170 -1 +De 0 0 109 0 C00 +Po 0 46250 39000 45250 39000 170 -1 +De 0 0 109 0 800 +Po 0 47750 39000 48250 38500 170 -1 +De 0 0 109 0 800 Po 0 34250 24000 32750 25500 220 -1 -De 15 0 110 0 400800 +De 15 0 110 0 800 Po 0 34250 23500 34250 24000 220 -1 -De 15 0 110 0 800400 +De 15 0 110 0 400 Po 0 38250 46500 37750 46000 220 -1 -De 0 0 110 0 800400 +De 0 0 110 0 400 Po 0 50250 46500 50250 43000 220 -1 De 0 0 110 0 0 Po 0 58250 36500 58750 37000 220 -1 -De 0 0 110 0 400800 +De 0 0 110 0 800 Po 0 58750 37000 61750 37000 220 -1 De 0 0 110 0 0 Po 0 59875 45500 62625 45500 220 -1 @@ -5927,13 +5883,13 @@ De 15 1 110 0 0 Po 0 38250 47500 38250 49500 220 -1 De 15 0 110 0 0 Po 0 58250 28500 58750 29000 220 -1 -De 0 0 110 0 400800 +De 0 0 110 0 800 Po 0 38750 52000 38750 54500 220 -1 -De 0 0 110 0 800400 +De 0 0 110 0 400 Po 0 48750 46000 48250 46500 220 -1 -De 0 0 110 0 400800 +De 0 0 110 0 800 Po 0 66250 29500 66250 28500 220 -1 -De 15 0 110 0 C00C00 +De 15 0 110 0 C00 Po 0 38250 49500 38750 50000 220 -1 De 15 0 110 0 0 Po 0 67250 50500 65250 52500 220 -1 @@ -5943,13 +5899,13 @@ De 15 1 110 0 0 Po 0 67750 27000 67750 21250 220 -1 De 15 0 110 0 0 Po 0 37750 46000 37750 47000 220 -1 -De 15 0 110 0 400800 +De 15 0 110 0 800 Po 0 32750 25500 32750 33000 220 -1 -De 15 0 110 0 800400 +De 15 0 110 0 400 Po 0 65250 36500 64750 37000 220 -1 -De 0 0 110 0 400800 +De 0 0 110 0 800 Po 0 66250 28500 66250 27500 220 -1 -De 15 0 110 0 C00C00 +De 15 0 110 0 C00 Po 0 65250 52500 64750 53000 220 -1 De 0 0 110 0 0 Po 0 64750 37000 62750 37000 220 -1 @@ -5957,17 +5913,81 @@ De 0 0 110 0 0 Po 3 65250 52500 65250 52500 600 -1 De 15 1 110 0 0 Po 0 67250 20750 67250 20500 220 -1 -De 15 0 110 0 800400 +De 15 0 110 0 400 Po 0 62625 45500 62750 45375 220 -1 De 0 0 110 0 0 Po 0 61750 37000 62250 37500 220 -1 -De 0 0 110 0 800400 +De 0 0 110 0 400 Po 0 65750 29000 66250 28500 220 -1 -De 0 0 110 0 800400 +De 0 0 110 0 400 Po 0 65250 36500 65250 29500 220 -1 -De 15 0 110 0 400800 +De 15 0 110 0 800 Po 0 66250 27500 67250 27500 220 -1 -De 0 0 110 0 C00C00 +De 0 0 110 0 C00 +Po 0 59750 45625 59875 45500 220 -1 +De 0 0 110 0 0 +Po 0 49250 46500 48750 46000 220 -1 +De 0 0 110 0 400 +Po 0 32750 33000 32750 34500 220 -1 +De 15 0 110 0 800 +Po 0 38750 50000 38750 52000 220 -1 +De 15 0 110 0 0 +Po 0 62750 38000 62250 37500 220 -1 +De 15 0 110 0 400 +Po 0 67250 27500 67750 27000 220 -1 +De 15 0 110 0 800 +Po 0 32750 34500 34250 36000 220 -1 +De 15 0 110 0 0 +Po 0 37750 46000 37750 44500 220 -1 +De 15 0 110 0 C00 +Po 0 59250 46500 50250 46500 220 -1 +De 0 0 110 0 0 +Po 0 49750 42500 49750 41500 220 -1 +De 0 0 110 0 400 +Po 0 50250 46500 49250 46500 220 -1 +De 0 0 110 0 0 +Po 0 66750 32000 67250 32500 220 -1 +De 15 0 110 0 400 +Po 0 62750 44000 62750 38000 220 -1 +De 15 0 110 0 800 +Po 0 37750 44500 34250 44500 220 -1 +De 0 0 110 0 C00 +Po 0 50250 43000 49750 42500 220 -1 +De 0 0 110 0 0 +Po 0 66250 29500 66750 30000 220 -1 +De 15 0 110 0 800 +Po 3 65250 29500 65250 29500 450 -1 +De 15 1 110 0 0 +Po 0 62750 37000 62250 37500 220 -1 +De 0 0 110 0 400 +Po 0 59750 46000 59250 46500 220 -1 +De 0 0 110 0 800 +Po 0 59750 46000 60750 47000 220 -1 +De 0 0 110 0 800 +Po 0 64750 53000 64750 54500 220 -1 +De 0 0 110 0 400 +Po 0 49750 41500 48750 41500 220 -1 +De 0 0 110 0 C00 +Po 0 59750 46000 59750 45625 220 -1 +De 0 0 110 0 800 +Po 0 67750 21250 67250 20750 220 -1 +De 15 0 110 0 0 +Po 0 66750 30000 66750 32000 220 -1 +De 15 0 110 0 0 +Po 0 37750 47000 38250 47500 220 -1 +De 15 0 110 0 0 +Po 0 60750 47000 67250 47000 220 -1 +De 0 0 110 0 0 +Po 0 65250 29500 66250 29500 220 -1 +De 0 0 110 0 400 +Po 0 62750 45375 62750 44000 220 -1 +De 0 0 110 0 400 +Po 0 34250 44500 34250 36000 220 -1 +De 15 0 110 0 800 +Po 0 67250 47000 67250 50500 220 -1 +De 15 0 110 0 0 +Po 0 33250 22500 34250 23500 220 -1 +De 15 0 110 0 800 $EndTRACK $ZONE $EndZONE diff --git a/demos/interf_u/interf_u.sch b/demos/interf_u/interf_u.sch index 2b7169d274..8d64403ae2 100644 --- a/demos/interf_u/interf_u.sch +++ b/demos/interf_u/interf_u.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date 02/02/2011 07:13:59 +EESchema Schematic File Version 2 date 18/12/2011 10:04:44 LIBS:power LIBS:device LIBS:conn @@ -10,13 +10,15 @@ LIBS:adc-dac LIBS:memory LIBS:xilinx LIBS:special +LIBS:image LIBS:interf_u-cache EELAYER 25 0 EELAYER END $Descr A3 16535 11700 +encoding utf-8 Sheet 1 1 Title "INTERFACE UNIVERSEL" -Date "7 dec 2010" +Date "18 dec 2011" Rev "2B" Comp "KICAD" Comment1 "Comment 1" @@ -24,6 +26,1164 @@ Comment2 "Comment 2" Comment3 "Comment 3" Comment4 "Comment 4" $EndDescr +$Bitmap +Pos 11200 10550 +Scale 1,000000 +Data +89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 E5 00 00 01 0E 08 02 00 00 00 F9 5F 47 +B4 00 00 00 03 73 42 49 54 08 08 08 DB E1 4F E0 00 00 20 00 49 44 41 54 78 9C EC BD 77 94 5D 47 +95 2E BE 77 55 9D 7C 73 DF CE 92 5A DD 8A B6 25 27 D9 20 CB 11 4C 70 C2 66 86 E1 0D 03 CC 10 DF +03 33 F3 18 0C 4C 78 C3 0C B3 CC 90 7F 0C F0 06 93 6D 78 6B F0 44 C6 30 38 DB 60 92 2D 63 6C 2C +5B B6 92 15 5A B9 83 BA FB 76 F7 8D 27 55 ED DF 1F D5 7D 75 D5 2D CB CA A9 FB 5B 5A 5A F7 9C 5B +A7 AA EE E9 EF EC B3 53 ED C2 DF FD EE 77 30 8B 59 9C 21 C0 20 08 4E F5 1C 66 31 8B C3 C2 8B 2F +BE C8 4E F5 1C 66 31 8B 23 C0 2C 5F 67 71 26 41 D4 3F BD F8 E2 8B A7 70 1E B3 98 C5 CB 61 F9 F2 +E5 F5 CF E2 E5 BE 98 C5 2C 4E 07 4C 11 A3 B3 FA C0 2C CE 24 CC F2 75 16 67 12 66 F9 3A 8B 33 09 +B3 7C 9D C5 99 84 59 BE CE E2 4C 82 78 E5 26 B3 38 3C 48 29 1F 7A E8 E1 F1 F1 F1 25 4B 16 5F 72 +C9 25 A7 7A 3A 67 27 66 F9 7A C4 D8 B3 67 CF 5D 77 7D 8F 88 A6 9C 8F E3 F8 AE BB BE 37 36 36 76 +D1 45 17 5D 7F FD 75 52 CA C6 6F DF F3 9E 77 77 75 75 9D C4 69 9E 9D 98 E5 EB 61 41 29 45 44 5F +FA D2 3F 3E F3 CC 33 C5 62 E9 F1 C7 1F 3F 44 E3 E7 9E 7B EE B9 E7 9E 9B 72 72 F5 EA 27 9B 9A 72 +44 14 C7 F1 87 3E F4 A1 6B AF 7D ED 89 9C EF 59 8B 59 BE BE 02 46 46 46 10 F1 91 47 1E FD FC E7 +BF D0 D7 D7 57 2E 97 8F AE 9F 27 9E 78 A2 FE F9 B9 E7 9E 9F 3B 77 EE B7 BE F5 8D A6 A6 26 D7 75 +13 89 C4 71 9A EC D9 8F 59 BE BE 2C F6 EE DD BB 73 E7 CE 8F 7E F4 E3 BD BD BD 71 1C D7 6A B5 E3 +D5 73 7F 7F 7F 7F 7F FF D5 57 BF 46 4A F9 F6 B7 FF D1 FB DF FF BE 85 0B 17 7A 9E 77 BC FA 3F 8B +31 EB 1F 38 38 FA FA FA 3E F2 91 DB AE BD F6 F5 6B D7 AE 2D 95 4A C7 91 AC 75 94 4A A5 6A B5 7A +E7 9D 77 AD 5A 75 C5 57 BE F2 D5 87 1F 7E 44 29 75 DC 47 39 CB 30 2B 5F A7 A2 52 A9 DC 71 C7 D7 +9F 79 E6 99 07 1E 78 F0 E4 8C A8 94 FA CC 67 3E 9B CF E7 FF E8 8F DE F6 C6 37 BE 71 56 B5 3D 04 +66 F9 7A 00 C2 30 FC 9B BF F9 C4 5D 77 7D 6F 8A 75 7F 12 30 56 18 FE DA D7 EE 78 E8 A1 87 97 2D +3B EF 53 9F BA 7D D1 A2 45 27 79 02 67 04 66 F9 3A 01 DF F7 4B A5 D2 A7 3F FD 99 3B EF BC EB 94 +BC 97 15 81 60 B0 75 EB D6 AD 5B B7 F6 F6 6E FF E7 7F FE 7F AD AD AD 99 4C E6 E4 CF E4 74 C6 AC +FE 0A 00 10 86 E1 B7 BE F5 ED 73 CE 39 EF 7B DF FB FE 49 23 2B 02 21 10 E2 C4 A1 22 90 93 23 BF +F0 C2 0B 2B 57 AE 7A EF 7B DF 37 38 38 78 72 26 73 A6 60 96 AF 10 45 D1 D7 BF FE 8D 4F 7C E2 6F +2B 95 4A 1C C7 27 61 44 C6 98 65 19 C9 84 93 F0 6C D3 10 9C 73 00 04 80 C6 08 84 EF FB 0F 3D F4 +F0 FF FE DF 1F EE EF EF 3F 09 53 3A 53 30 AB 0F 40 B9 5C FE F2 97 BF 72 D2 C4 2A 63 CC 71 2C CF +73 1D C7 E1 5C 04 41 10 04 7E AD E6 87 61 A4 E2 58 1E 18 35 BB EF BE FB 95 A2 15 2B 5E F7 91 8F +FC 89 E3 D8 27 67 86 A7 33 66 3A 5F C3 30 BC FD F6 4F 8D 8E 8E 9E 9C E1 18 82 29 D0 B6 2D C7 71 +35 38 E7 41 10 54 AB D5 6A A5 52 2C 15 03 3F 88 63 A9 1A 58 FB C0 03 0F 3C FC F0 EA C1 C1 91 2F +7E F1 E3 A6 69 9C 9C 79 9E B6 98 D1 7C AD D5 6A FF E7 FF FC CD 77 BF 7B E7 C9 D3 59 19 33 4C CB +B6 1D D7 75 33 99 8C E7 79 96 65 4B 29 83 C0 1F 1B 1B 73 5C B7 50 28 D4 2A A5 20 3C 80 B2 52 8E +7D E7 3B FF E4 38 D6 E7 3E F7 D1 93 33 CF D3 16 33 9A AF DF FD EE 9D DF FE F6 77 4E DA 70 88 68 +1A 02 D9 04 1C C7 4E A5 52 C9 64 12 80 6A B5 9A 69 9A A6 69 01 40 51 70 56 2A D6 02 D9 F8 14 11 +95 D6 AE FD E5 E0 E0 3B 5A 5B 5B 4F DA 84 4F 43 CC 5C 7B AB BF BF 7F F5 EA D5 27 75 48 22 19 C7 +8C 21 E7 DC 30 0C CE 0D DB B6 3C CF CB 66 73 D9 6C 36 9F CF 27 93 49 CF 4B 78 9E E7 26 52 96 65 +30 3C E0 E2 5F FC E2 B1 0F 7F F8 CF 67 B8 F9 35 73 E5 EB B3 CF AE B9 F7 DE FB 4E E6 88 04 20 09 +A4 54 44 4A 08 61 59 13 5A AC 69 9A 88 10 04 A1 6D 9B AE EB C4 71 14 45 91 92 36 03 55 F3 A3 46 +C5 E0 DE 7B EF 43 C4 3B EE F8 5A 3E 9F 3F 99 33 3F 7D 30 43 E5 EB DE BD 7B BF F0 85 2F 9E FC 71 +89 80 73 0E 00 8C 31 CE 19 E7 9C 31 A6 0F 19 63 86 61 1A 86 61 DB B6 65 59 96 6D 1B 96 AD 1B 37 +E2 C1 07 1F EA EB EB 3B F9 33 3F 4D 30 43 F9 BA 6D DB B6 E7 9F 7F FE 94 0C 8D 08 86 61 68 9A 02 +80 94 71 A5 52 AE 56 AB BE EF 87 61 48 44 88 68 59 B6 69 5A 96 65 D9 8E C5 F9 01 7F A3 28 8A FE +E7 FF FC C0 8E 1D 3B 4E C1 D4 4F 03 CC 44 BE 16 8B C5 0F 7C E0 D6 93 13 1A 98 02 C6 10 91 01 A0 +10 02 11 95 52 41 10 94 4A A5 B1 B1 F1 F1 F1 F1 72 B9 EC FB 7E 1C 4B 3C 00 53 3B 79 E1 85 17 3E +F8 C1 5B A7 2F 70 98 09 98 89 7C 7D F8 E1 47 46 46 46 4E FE B8 08 60 0A D4 F2 32 8E E3 30 0C 4B +A5 D2 F0 F0 48 A1 50 28 14 46 C6 C6 C6 CA E5 72 A5 52 2E 97 8B 51 14 49 29 A5 94 4A 4A 06 34 8D +B1 D0 DB BB FD F1 C7 9F 98 3E C4 59 8F 19 67 6F 11 D1 37 BE F1 CD 52 A9 74 0A C6 46 24 60 4A 29 +29 65 18 46 B5 5A 4D 2B 00 B5 5A AD 56 AB F9 BE AF 03 07 52 C6 9C F3 38 8E 7D 3F 08 A3 38 8A 0F +22 48 77 EF DE 7D F7 DD 77 5F 75 D5 95 A7 E0 57 9C 52 CC 38 BE 86 61 78 0A D3 A2 19 E7 88 A8 94 +0C 82 5A A9 84 51 14 69 41 AB A3 B2 51 14 57 AB 55 29 95 60 80 9C 07 41 A4 D4 CB BE F5 1F 7A E8 +E1 1F FF F8 BF 7F EF F7 DE 7C 52 7F C0 A9 C6 8C E3 EB ED B7 7F EA 54 95 14 27 A2 20 08 39 E7 9C +FB 88 58 AB F9 44 10 04 35 BF 56 0B A3 58 4A 19 04 91 7E 96 62 00 40 79 68 0D 75 78 78 F8 F9 E7 +5F BC E5 96 5B 18 9B AE 2F 9C B5 98 71 7C 1D 1E 1E 3E 55 96 0A 02 70 A0 28 8A 00 20 8E 63 20 D2 +8A 41 E0 87 F2 C0 29 11 00 BC F2 24 E9 4B 5F FA EE 95 57 5E FB BA D7 AD 3A 51 33 3E FD 30 B3 EC +AD F5 EB D7 6F D8 B0 F1 54 8D 4E 00 B1 22 24 15 45 A1 EF FB 61 14 95 4B E5 6A 2D 90 47 F9 FC A0 +52 23 0F 3E 78 CF A9 D1 C5 4F 11 66 16 5F 7F FA D3 9F 3D FB EC B3 A7 70 02 8A 20 8C 29 0C A3 6A +D5 AF 56 FD F8 98 15 E9 EF 7D EF FB 03 03 03 C7 63 6A 67 06 66 9C 3E 70 6A A1 EB 65 E8 CF 52 1E +07 B3 8F 88 7C DF 3F F6 7E CE 14 CC 2C F9 7A F6 21 0C C3 0F 7E F0 43 95 4A E5 54 4F E4 24 61 96 +AF 67 3C 06 06 06 66 4E E1 82 19 C4 D7 BE BE BE 93 9D 40 78 52 50 2A 95 4E 5A A9 84 53 8E 19 C4 +D7 17 5E 78 F1 FE FB 1F 38 D5 B3 00 00 E0 08 D3 B3 02 8E 1A A5 52 E9 CE 3B EF 3A 6E DD 9D DE 98 +B5 B7 A6 01 C1 E4 88 DC 00 92 24 55 A4 8E 8F BB 56 30 50 04 0C 41 11 38 8E A5 00 39 E7 8C A1 94 +DA 0B 1B 1E 17 F3 EB AC C7 2C 5F 01 00 10 91 21 18 06 47 C6 81 08 19 33 0C C3 10 5C 47 A4 42 BF +16 49 38 46 D2 4A 02 22 20 00 22 A8 FA A1 EB 3A 86 21 92 C9 94 E7 B9 AE 9B 28 95 8A 7D 7D FD 95 +4A 45 A9 99 98 75 75 F8 98 E5 2B 30 44 CB 36 11 80 14 29 45 24 23 6E 58 8E E3 24 12 9E EB 7A BE +EF 0F 0F ED AB 56 2A C1 61 4B 5A FD AA 9F D2 54 5F AA 14 00 90 52 50 A9 D4 AA 55 3F 08 42 A5 72 +4D 4D F9 F6 F6 B6 7C 3E BF 65 CB 96 E1 E1 91 59 CA 1E 02 33 48 7F 3D 28 38 E7 A6 C9 A5 94 51 1C +07 61 18 04 61 18 93 EF FB E3 E3 C5 6A B5 A6 94 CA E5 72 5D F3 BB D3 D9 9C 69 70 7C 25 21 8B 93 +BA E9 14 F5 94 88 94 52 88 64 DB 86 96 AC 3A 4B AB 52 A9 F5 F7 0F 6C DD BA 75 68 68 68 CE 9C 39 +E7 9E 7B 6E 3A 95 38 8C 48 EC 54 EC DA B5 EB E7 3F FF C5 91 5E 75 26 62 56 BE 52 2C 21 8E 0F A8 +EE 46 04 BE 1F 0C 0E EE 1B 19 29 A4 D3 A9 8E 8E 8E 39 73 3A 0D C1 47 86 86 6B E1 A1 B2 BC 09 80 +00 A6 C8 47 C6 58 32 99 68 6F 6B 6F CA 65 D2 D9 8C 10 46 10 F8 85 C2 E8 8E 1D 3B 46 47 46 A2 48 +0E 0E EE AB 55 CA 41 E0 B7 B6 B6 B5 B5 B5 95 2B D5 28 3A B2 6A 73 BB 77 EF BE E7 9E 7B 5E FB DA +D7 1C D1 55 67 22 66 3A 5F 1B AD 1C 53 B0 54 2A E5 26 12 51 14 95 CB 95 72 B9 E2 FB 41 18 8E 28 +A5 7A 7A 7A 3A E7 CC 95 52 86 43 C3 52 1E 5C FE 21 02 D1 01 64 75 2C A3 A5 AD BD A3 A3 A3 B3 B3 +23 9F 6F 4E A6 92 A9 64 D2 71 1C 00 0A C3 68 EF DE BD 1B D6 AF DF B8 69 D3 D0 D0 F0 58 B1 BC 69 +D3 E6 28 8A 33 D9 5C 3E 3F 3E 38 38 3C 73 5C AA 47 84 99 CE 57 00 20 02 CB 32 DA DA 5A 17 2E E8 +59 B4 78 51 3E DF AA 94 EC EB EB DB B4 69 D3 C6 8D 9B 8A C5 D2 D8 58 71 70 70 B0 AD AD 2D 93 CD +15 4B 95 4A A5 7A D0 7E 84 10 71 3C 91 04 88 88 89 84 DB D3 D3 B3 78 F1 E2 7C 3E 9F C9 64 52 A9 +A4 69 9A 96 65 DB B6 0D 00 96 69 2E 58 D0 73 E9 A5 97 AE 59 B3 E6 81 07 1E D8 BE 7D 47 AD E6 F7 +F5 F5 CF 9D C3 52 A9 74 B9 5C 29 95 66 4A C8 EA 88 30 CB 57 B0 6D 73 E9 D2 25 2B 56 AC E8 E9 E9 +6E 6E 6E CE E5 9A 38 E7 E3 E3 E3 0B 16 2C 68 6F 6F 5F B3 E6 B9 BE BE BE DD BB F7 16 8B A5 44 C2 +15 82 69 39 3A 05 88 10 47 F1 E4 69 6C 6A CA 9D 73 CE D2 C5 8B 17 E7 72 B9 44 22 61 DB B6 EB 3A +B6 ED 18 86 61 59 96 10 DC 75 1C DB B6 19 63 2D CD 79 C7 71 7E F4 A3 1F 6F DF BE 7D 7C 6C D4 AF +55 1C C7 35 84 10 82 4F D1 52 66 01 B3 7C E5 9C F5 F4 74 5F 76 D9 65 F3 E7 CF 6F 6A 6A CA E5 B2 +99 74 C6 30 8C 5C 36 93 C9 A4 4C D3 48 A7 33 4F 3E F9 E4 F6 ED 3B 0A 85 31 3F F0 C5 44 2D C1 A9 +84 15 08 12 80 08 10 B1 A9 29 7B FE F9 E7 2F 5C B8 A0 B9 B9 D9 75 DD 4C 3A 6D DA B6 21 84 69 9A +AE E3 18 86 00 80 54 3A 63 18 06 11 09 21 2E BE F8 A2 52 A9 FC D0 43 0F F4 F7 F5 57 6B 61 10 84 +89 64 C2 B6 CD 72 F9 F8 17 A1 3F D3 31 A3 F9 4A 44 A9 54 72 F9 F2 F3 DB DA DA 13 09 2F 9D 4E 65 +32 19 C7 71 01 20 0C 94 E7 26 5A 5A 5A 95 52 88 40 24 77 EF DA 15 85 21 08 C1 11 E2 69 F2 55 4E +F8 56 C9 B2 CC 85 0B 17 2C 58 D0 D3 D6 D6 DA D2 D2 9A 4A 26 1D D7 B1 2D 9B 73 CE 85 30 84 60 9C +71 2E 2C CB B4 2C BB 5A AD D6 6A 3E 10 74 77 CF 3F FF 82 0B C6 C7 C7 C3 70 5C 2A 88 82 00 D9 8C +FE D3 BC 1C 66 F4 4D E1 9C 77 75 CD 9F 33 A7 33 99 F4 92 89 A4 6D D9 42 18 7A AD 1F 01 71 C1 93 +C9 44 AD 96 59 B2 64 71 A5 52 1E 2D 8C 8E 8E 8D FB 41 74 50 AF 96 36 B3 18 63 AD AD 2D DD DD F3 +9B 9A 9A 5A 5A 5A E7 74 76 34 E5 9B 93 C9 84 61 18 86 61 0A 21 84 10 52 4A C6 18 11 49 29 95 92 +D5 0A 23 20 21 44 4F 77 CF EE 5D BB 5E 2C AE 53 B1 F4 83 08 F0 C8 96 9B 87 61 78 3C 6E C9 E9 8E +99 CB 57 22 F2 3C A7 B3 B3 3D 99 4C A5 D2 69 D7 F3 92 A9 64 36 9B 4D 24 3C C3 30 88 40 29 39 77 +EE DC D1 D1 D1 C2 C8 88 10 62 F3 4B 9B 0A 85 02 01 3B 84 77 D4 34 C4 D2 A5 4B 17 2D 5A D2 D3 D3 +D3 DD DD DD D9 D9 91 4E 67 4C D3 34 0C 21 04 07 40 C6 B4 FA 4B 4A A9 30 8C 5B 5A 9A 47 9B F2 8E +E3 04 41 58 28 14 BA BA E6 EF D8 B1 73 64 64 54 C1 C1 74 E4 43 E2 DF FE ED DF 57 AD 5A F5 9E F7 +BC FB D8 EE CA E9 8E 99 CB 57 06 94 CF 65 3B 3B E7 74 74 B4 2D E8 EE 69 6D 6B 6B 6E CE 27 12 09 +D3 34 74 91 15 00 88 A2 B8 AB AB 2B 08 82 EE 9E 9E 1D 3B 76 BC B4 79 5B AD E6 1F A4 82 C5 24 52 +49 F7 DC 73 CF B9 F0 82 F3 17 2D 5E 3C 77 EE 5C CF 73 75 63 44 04 C0 28 8A 0A 85 91 30 8C 52 A9 +64 22 91 70 1C 4B 4A D9 DC 9C 4F A7 53 E9 4C 16 11 C3 30 DC DE BB 6D 6C 74 EC 28 22 5C 52 CA 99 +90 05 3B 73 F9 4A 00 E9 74 BA BB BB 6B F9 B2 E5 3D 0B 7A D2 E9 34 22 16 8B C5 30 0C 39 17 D9 6C +86 73 A6 6D 23 D7 75 BA BB BB AF B9 E6 35 0F 3E F0 E0 B6 DE ED 88 53 6B 5A 69 20 42 BE A5 7D E9 +D2 73 E6 77 77 77 76 76 7A 9E 57 27 76 14 C5 DB B6 6D FB D9 CF 1E 5B FB DC 9A F1 62 A9 6B FE FC +95 2B 57 5E 73 CD D5 4D 4D 39 00 70 1C 7B C9 92 45 A9 54 32 95 4A F5 F6 F6 BE B4 65 5B B5 52 3D +C4 53 31 93 31 73 F9 CA 85 C8 E5 5B 7A 7A 16 CD EF EE CE E5 72 61 18 FE FA D7 4F 3C F8 E0 03 7D +7D 7D 9E E7 5D 7C F1 C5 37 DC 70 7D 77 F7 7C 5D E8 4A 08 7E E1 85 17 2C 59 B2 78 FB 8E 9D 8D 9D +20 00 67 A0 97 61 21 62 73 73 73 26 93 B1 6D 87 73 0E 40 3A 95 40 4A F9 E4 93 4F FE D3 3F FD D3 +2F 7E F1 AB 72 A9 64 59 66 2A 9D 79 EC B1 C7 D6 AC 59 F3 9E F7 BC 6B E1 C2 85 DA 65 DB D6 D6 B6 +62 C5 C5 1B 37 6E 5C BD FA C9 EA CB B8 78 67 31 43 F9 AA 1D 49 ED ED 6D 8B 16 2D CA E5 32 88 F0 +F8 E3 4F 7C E2 13 9F 58 B7 6E 9D 61 88 E6 E6 E6 A7 9F 7E FA B9 E7 D6 DC 76 DB 6D CB 96 9D A7 45 +5D 6B 6B EB B9 CB CE FF E5 AF 1E F7 FD 00 11 35 C9 4C CB 40 00 19 44 04 00 80 9E E7 69 A3 CA 34 +4D 7D 15 11 AC 5D FB E2 17 BF F8 FF FD EC 67 8F 85 61 94 48 24 56 AE 7C 55 77 77 F7 EE DD 7B EF +BB EF BE E1 E1 E1 3F FF F3 3F 5F B2 64 31 63 88 08 2D 2D 2D 97 5E 7A 49 67 67 7B 5F DF 8C 2E F2 +7A 08 CC A8 7C 17 D6 F8 7C 5A 96 D5 D5 D5 D5 D2 D2 4C 04 7B F6 EC BD EB AE BB D6 AC 79 4E C5 F1 +92 C5 8B 6F BC F1 C6 E5 CB 97 AF 5D FB C2 77 BF 7B E7 9E 3D 7D 00 40 44 B6 6D 9D 7B CE D2 54 C2 +B5 6D D3 32 05 67 40 00 8C 71 C6 26 6A 0D 32 04 CB 32 85 10 8D E5 07 F7 ED 1B BA FB 07 3F 78 EC +B1 C7 A2 28 66 0C 39 2A CE 79 57 57 D7 6B 5E 73 D5 45 17 5D F4 C4 EA D5 77 DF 7D F7 F0 F0 88 36 +AE 84 10 F3 E7 77 B5 B5 B5 71 3E AB 0C 1C 1C 33 8A AF 1E 40 7E B2 18 05 19 86 99 4E A7 39 E7 9C +B3 2D 5B B6 3C F9 E4 6F 00 40 12 04 61 90 4A 25 17 2D 5A 34 67 CE 9C FB EE BB EF D1 47 1F 0D C3 +08 00 18 63 CD CD CD A6 ED 00 91 30 0C C3 B4 6C CB 4C 26 13 8E EB 01 20 90 62 0C 6C 7B 7F F9 4B +1D 06 5B B3 E6 B9 FF FE C9 7D 41 10 69 93 AB 5C 0D D6 AE 5D FB F4 D3 CF 04 41 B8 78 F1 E2 96 7C +D3 4F FE FB BF 5F 78 E1 85 C9 1A 2D D4 D4 94 EF EA 9A 9F 48 24 66 D5 D7 83 62 46 F1 35 04 38 60 +37 78 C6 38 11 55 AB B5 DF FC E6 37 C3 C3 C3 FA 0D BE 67 4F FF BA 75 EB 89 28 9F CF C7 71 7C FF +FD F7 EB DD 63 E2 58 9A A6 E9 79 AE 69 08 D7 75 52 A9 44 67 67 47 77 77 CF E2 C5 8B 96 2E 5D D2 +D2 D2 8C C8 94 94 08 75 A2 61 B1 58 FC F9 CF 1F DB BD 7B 77 5D DC 12 D1 E0 E0 D0 EF 7E F7 CC B6 +6D BD D5 6A 35 D7 94 EB EF EF 5B BB 76 AD EF FB 5A C7 48 24 12 0B 17 2E 74 5D 77 46 56 CB 7C 65 +CC 28 FD D5 07 28 4D A6 53 83 10 DC 34 0D C6 98 94 72 ED DA 17 A3 68 C2 3F 5F 2A 95 B6 6D DB 96 +C9 64 6C DB 6E 6E CE F7 F6 6E DB BD 7B 57 6B 6B 0B 00 E8 72 D8 DC 30 88 48 7F 56 4A 79 5E C2 B6 +9D 64 2A 3D 32 BC 4F 2A 15 37 6C 3C 3B 3C 5C F8 ED 6F 9F 56 4A 35 1A FB A6 69 04 41 B0 61 C3 FA +4A A5 4C 84 86 69 6D DC B8 71 74 74 BC BD DD 06 00 A5 54 47 47 87 69 9A 75 9F DA 2C 1A 31 83 F8 +6A 9A 96 69 5A F5 38 10 11 11 29 C6 58 1C CB B1 B1 B1 FD 8B 02 88 06 07 06 B6 6D DB B6 68 D1 C2 +44 22 B9 79 F3 96 0D 1B 36 5C 72 C9 25 52 CA 6A B5 E6 FB 41 10 84 61 18 81 52 95 72 65 68 68 C8 +30 0C C7 71 3C CF 2B 57 AA DB B6 F5 F6 F7 F7 2D 5D BA 34 8E 63 21 78 A5 52 1E 18 18 A8 D3 4E EF +14 87 88 52 C6 5B B6 6C E9 EB EB 6B 6F 6F B7 2C 6B 70 70 B0 EE 3A 25 22 6D B4 9D FC FB 73 46 60 +06 DD 97 D7 BE F6 35 7F F1 17 1F FF CC 67 3E AB 0F 95 A2 30 8C 82 20 30 0C C3 71 6C C7 31 03 3F +8C 15 11 80 5F 2D 17 0A 23 43 43 99 E1 E1 91 6A B5 BA 67 CF 5E A5 48 4A B9 75 EB 96 D2 F8 78 B5 +E2 C3 A4 7F 40 43 08 9E 4A 25 A3 28 2C 97 CB 3F FB D9 63 8B 17 2F C9 E5 72 A6 69 48 19 2B B5 5F +DC 2A A5 74 4D 42 00 20 A2 4A A5 EA FB B5 5A 4D 6F 6E 18 02 00 22 48 29 EB 9B 1A CC 62 3A 66 10 +5F 01 20 91 48 D4 3F EB D2 40 44 64 9A 46 47 47 07 E7 9C 70 22 F1 2A 92 AA 50 18 CD 64 0A 51 14 +10 51 14 45 51 24 B7 F5 6E FF E9 CF 1E AB D4 AA A6 01 96 41 A6 00 02 24 05 31 A1 54 52 46 25 19 +51 10 51 EF F6 ED 3B 77 EE 58 B2 64 09 91 16 E1 07 E8 A1 8D 6B B3 A4 54 A3 A3 45 A5 14 E7 CC 30 +F4 C6 85 DA 05 36 AB 09 BC 2C 66 16 5F EB 40 C4 28 0A 4B A5 62 18 86 4A B9 F3 BB BA C2 30 AA AF +35 88 62 2A 14 46 65 FC 52 18 46 4A 11 00 8D 8D 0E FD EC A1 7B CA 03 BF BB FA BC 68 4E 0B 4B 27 +30 61 83 04 0C 62 C5 41 54 82 B8 1A A9 F1 71 E8 DD CB 54 30 B4 F6 85 75 2B 56 5C 92 CD 66 12 89 +A4 6D 3B AF 34 17 6A 6A CA 7B 9E AB 0F 94 52 D5 6A 65 76 71 C1 CB 61 86 F2 15 00 7C DF 1F 1A 1A +F2 7D 5F 08 B1 FC FC E5 AE E7 F9 C1 58 FD 5B 29 D5 68 61 9C 10 2C DB A9 55 8B 2F AE FE 21 1B F8 +E1 FB 5E 5B E8 9A CF F2 4D 9C 33 E2 0A 09 A9 A6 98 67 00 49 21 15 55 03 D8 3D 44 2F ED DE 37 32 +FA D3 A7 1E 6F CD E5 DE 91 48 24 96 2E 5D BA 69 D3 4B 87 90 97 8C B1 45 8B 16 26 12 09 2D 56 95 +52 E3 E3 C5 20 08 4E CA 3D 38 F3 30 43 F9 AA 93 4B FA FB 07 2A 95 0A 63 6C F9 F2 E5 AB 2E BB EC +A1 87 1E 52 B4 5F 31 55 80 1C A1 33 13 5A 43 3F F4 B7 B3 15 5D A3 1D 79 91 CA 33 8B 63 A8 20 50 +24 24 BA 40 80 40 0A 05 C3 04 51 26 87 CB 16 50 58 DE B6 6B FC CB 1B 56 6F 5F 70 E1 FB AF B9 6A +D5 A3 0F DD 5F 0D D4 41 19 AB 94 3A E7 9C A5 AF 7B DD 6B 53 A9 24 11 49 A9 AA D5 EA F6 ED DB 4B +A5 F2 41 5A CF 62 C6 F2 15 00 94 52 BB 76 ED DE B3 67 CF A2 45 8B 9A 9A F2 EF 7A F7 BB B6 F5 F6 +6E DD BA 2D 8A 62 1D F8 CF B8 70 61 37 BB 61 25 3B AF 73 04 02 94 8C 49 00 43 41 2C 08 10 4C 82 +88 11 11 48 89 FB 86 69 60 80 FC 1A 54 22 EC 99 C3 E6 CF C7 8B DA C6 6B E1 BF 14 5F F8 65 4F 76 +E5 AB 2E 6C 5F FD EC 9E 30 C2 29 EB BC 89 54 36 9B F9 C3 3F FC 1F 17 5D 74 91 3E 23 65 5C 28 8C +6E DC B8 31 8E 23 9D 23 7B 6A 6E CD 69 8C 99 6C 87 E2 C0 C0 60 6F 6F 6F B9 5C E6 9C 5F 7B ED 6B +DF F6 B6 3F 74 5D 57 29 C5 10 16 B6 E3 1F 5D C9 DE F7 7A 7E FE 3C AC 49 3E 5A 44 C7 26 37 81 88 +48 00 8A 81 34 01 4D 86 1C 11 C9 74 C8 70 21 24 18 19 55 BB F7 C9 52 19 81 B3 84 1B B7 A7 77 9D +97 F9 E1 9F DD 3C F8 9E 1B F9 F9 DD E8 5A A0 14 28 A5 F3 5F 65 2E 97 7D EF 7B DF FD BE F7 BE 27 +99 4C 6A 6A 06 41 B8 69 D3 A6 4D 9B 5E 2A 16 CB 47 41 D6 B5 6B D7 16 0A 85 13 70 A3 4E 23 CC 5C +F9 8A C8 8A E3 A3 1B D6 AF 1F 1E 1E 4E A5 92 E9 74 E6 7D EF 7B FF D8 D8 F8 DD 3F F8 41 BB 3B FA +96 CB F8 B9 5D 2C 95 04 D7 52 4E 16 5C 0B DA 9A 99 67 22 23 00 09 8C 83 04 64 40 28 10 01 D3 69 +C8 A4 54 6D 1E 1B 1D 89 2D 1B 12 29 12 2E 08 99 8C 65 2D 99 92 57 5D C2 2F 3C 57 AC 7B 49 3E BD +56 FE 66 03 6C EF 57 C5 30 31 AF 7B D1 DB FE F0 0F DE F1 F6 B7 B7 B5 B7 6B 6A 56 AB 7E A1 30 FA +F4 D3 4F 6F DF BE FD E8 FC 03 77 DF FD 2F 6F 7B DB DB AE BD F6 B5 C7 FB 56 9D 46 98 C9 7C 05 DF +0F D7 AD 5B BF 7B F7 EE B6 B6 36 CB B2 DA DA 5B 3F FC 67 EF 6B 31 F6 8A 7D F7 2F 6C 8D BC 04 25 +92 90 4D 82 9B 00 C3 41 0B 11 88 22 D1 B0 7D 9B 40 13 81 4C DD 9D EB 81 CC 35 A7 39 37 0C 43 30 +A3 24 64 1A 64 28 15 61 48 19 87 AE 78 35 5E 72 AE B8 A1 9F 7A 77 B3 6D 7D 98 99 B7 F8 B5 D7 BD +3E D7 94 D3 CC D4 DB 71 6D DA B4 E9 17 BF F8 65 A9 54 9E F5 BF BE 1C 66 2E 5F 01 00 90 6D D9 BA +75 ED DA B5 6D 6D ED 8C 09 DB 12 63 BB 9F 3D 37 F5 22 33 95 69 32 CF 81 64 02 DC 04 3A 36 E3 88 +92 13 10 10 00 2A 20 06 80 10 2B 30 2D 10 26 03 20 42 07 C0 E6 9C 0B C1 18 73 18 66 94 F2 19 35 +73 40 70 7D 45 63 4C 2A 53 A8 65 1E 76 CF A3 15 C5 A0 52 7A AC B4 66 68 CD D6 57 19 4D 2B 72 6D +8B 18 E7 A3 63 C5 47 1F 7D 64 ED DA 17 66 9D AF 87 C0 4C E3 AB 01 20 F4 FE 56 00 80 08 E3 E3 C5 +07 1F 7C F0 DC 73 CF 4D A5 92 C5 1D 8F EE FD ED 57 8C A8 DF B6 C1 74 D0 F6 C8 70 00 6C 04 04 C9 +88 21 12 12 28 20 01 0A 80 71 E0 1C 98 C1 00 01 99 E0 02 11 05 1A 9C 94 02 11 23 64 99 B2 48 09 +84 71 60 01 27 00 09 92 90 99 2C 19 A2 6D C5 81 55 2C 45 AB E3 D2 53 C5 A1 D4 D6 B5 9D E3 BE D8 +35 1C AE 7D 7C 2B C3 18 90 4D 5F 2F 3E 0B 8D 99 C6 57 1B C0 02 88 EA 59 2F 44 B4 71 E3 A6 E7 9E +F9 25 8E 3E 11 EE BC CF 93 7B 4D 0B 3D 0B 6C 9B 6C 13 6D 06 96 02 E0 80 04 44 A4 18 80 01 80 00 +08 08 A0 14 70 00 40 20 30 88 08 B9 04 E0 8C 31 24 17 D1 23 94 C8 7D 52 35 84 31 BD D4 00 05 20 +33 80 84 10 15 C3 E0 16 03 15 AB 5C 75 B4 B3 5A A8 14 59 87 A3 D2 97 2B 46 F0 E4 06 5E F3 E5 2C +65 0F 8A 99 C6 D7 12 40 05 F6 A7 FC 01 11 D8 AC 3A BA EE EE 91 6A 39 9F E0 96 C5 1C 4B 09 13 B8 +40 D3 04 C6 20 24 B2 00 51 01 20 A0 02 42 90 0C 51 00 30 34 18 21 02 22 72 23 04 74 91 9B 00 8C +93 07 C0 00 01 88 80 C6 80 57 81 98 96 E8 4C 20 60 04 66 C4 40 20 A0 A5 24 72 54 7E AC FC 54 B2 +C9 4D 8F 0F 75 34 81 6B 46 32 C4 A7 B6 70 3F 38 05 DB 87 9F FE 98 69 7C 3D 00 44 D0 9A C5 37 2E +97 17 CD AD E4 6C 26 18 98 82 6C 81 82 93 61 00 17 40 06 0A 81 08 40 0C 48 9B 40 08 C4 80 08 0C +A6 6B 67 32 02 0F A0 0A 40 A0 3C 44 0B B8 0B 24 01 08 A1 02 10 23 D4 00 19 70 63 62 7D 36 22 20 +30 25 81 14 00 00 43 E6 9A CC 24 52 4D DC 32 1D B7 F6 EA 65 85 BE 42 BC 7B 84 7A 07 8E A2 AE E6 +D9 8F 99 6B 87 12 41 C2 86 6B 97 C3 55 CB 44 36 C5 0C 01 A6 20 C1 81 19 64 59 28 04 32 00 93 81 +81 40 02 18 01 43 00 0E 80 C0 19 70 06 80 80 1C 01 89 F1 10 C0 46 EE 01 03 24 13 80 01 5A 00 03 +80 DB 80 0D 03 11 10 01 02 80 02 44 50 31 28 05 28 80 71 00 02 29 49 CA 48 F9 32 AE A2 93 37 92 +56 22 2F 97 CC 87 79 79 3A BA 4D 61 C7 C6 C6 5E B9 D1 99 8C 99 C5 D7 B6 B6 B6 64 32 A9 3F 73 06 +F3 5B 70 F9 3C CC 24 C8 60 64 1A 68 0A 12 06 71 03 84 89 A6 01 5C BF 7B 68 42 0D 50 08 00 40 02 +25 00 63 13 3A 05 22 12 D9 00 82 91 C9 E4 72 64 09 00 04 88 40 11 00 01 46 20 E3 89 7F 80 20 23 +60 7C 82 A9 4A 12 61 B5 8A BB 7B 55 EF 26 B9 6B C7 9E 6A 69 2F 51 28 62 60 04 C2 E0 E2 A8 FE 32 +1F F9 C8 6D 3B 77 EE 7C E5 76 67 2C 66 16 5F DF F6 B6 3F 7C F3 9B 6F 01 00 00 4C BA 6C 45 0F B4 +E7 91 23 31 06 9C 83 E0 60 70 B4 0C 34 04 70 01 C8 51 32 40 44 64 C0 00 81 00 98 7E B7 23 70 44 +86 00 80 CC E6 1C 91 65 91 E5 98 D1 0F 50 05 55 06 DA 01 6C 37 40 08 80 20 0C E0 02 90 4D EC 5E +A0 14 C8 08 64 A8 22 55 1A 55 2F 6D 8C 7E FB 3B F9 E2 F3 6A 70 47 18 0C 16 FC D2 50 A5 02 43 63 +54 28 63 24 8F 46 C0 96 CB 65 29 CF E6 AA 86 33 55 7F 45 48 79 C6 9C A6 28 21 00 09 10 41 70 65 +08 B0 CC FD CE 4F 02 B0 90 91 76 BB 32 BD BA 16 09 41 86 C4 4C 04 06 C8 19 A0 20 70 41 59 C0 0C +92 11 80 22 E8 47 D5 0F DC 00 00 90 F1 44 C6 80 8C 41 18 40 0A 88 94 54 32 82 9D 3B E2 BE 7E 35 +56 24 43 19 4D 69 CA 39 E4 57 43 19 E1 58 09 0B E3 38 52 9C 5A A4 7B 16 1A 33 4B BE D6 41 04 AE +49 69 17 81 B1 89 6A 41 00 8C 23 70 42 03 98 00 C6 C0 E0 08 40 48 C0 11 15 27 00 D0 3B BF 9A 0E +EA C7 9C 31 64 DC 64 98 43 70 48 C5 00 0A 70 17 C0 E8 C4 2E 30 44 30 91 00 4E 80 0C 64 0C 44 24 +55 61 04 9E 7D 46 BD B8 5E C6 A3 D4 6E E1 A2 56 35 2F AF 6C 13 54 4C 61 4C 11 51 D1 27 19 45 47 +E7 CF 0A 82 E0 F6 DB 3F 75 16 A7 23 CE 54 F9 0A 80 8C 84 20 04 40 04 C6 D1 34 C1 32 18 07 40 46 +0C 01 10 39 43 12 C4 14 A2 4E 9E B6 90 03 21 A1 92 C4 0C 06 00 04 29 04 0F 51 72 23 45 2A 04 DA +8E 34 02 93 2B B3 01 19 28 39 41 5C 00 00 08 02 B6 67 57 B4 6E BD 94 35 D6 91 C2 B4 0D 9C A3 61 +02 E3 88 08 2A 22 00 32 00 88 30 22 01 10 1D C5 8F 22 A2 27 9E 58 AD 77 EF 38 3E B7 E9 34 C3 0C +95 AF 40 E4 FB D1 B8 CF 02 89 CC 44 66 82 30 88 99 8A 09 25 26 15 02 62 C4 09 89 91 34 09 04 20 +11 72 04 36 51 67 88 1B 4C 29 8E 90 44 F0 94 2C 21 6D 45 2C 00 17 A0 08 18 07 29 41 46 04 9C 08 +08 50 29 18 19 A1 B5 4F C7 6B 7E 0B 66 0D 17 67 A9 C9 03 43 A0 C5 B9 10 04 40 2A 22 00 20 89 5C +12 67 71 3D 02 37 6D D6 AF 2C 74 FB FA FA 3E FC E1 3F 3F 7E 77 EA F4 C2 CC 95 AF C3 25 F6 E4 16 +1C AB 50 7B 06 E6 74 52 3A 8D DC 44 61 00 E3 20 04 72 0E 9C 26 4A 0B 22 80 62 04 06 12 02 33 18 +29 42 40 40 40 06 C4 CA 44 21 60 81 A8 86 44 40 0A 10 48 29 50 A8 88 14 2A 20 16 D5 68 EF 6E DA +B4 39 AA 0C 53 67 86 67 D3 60 9B 60 08 9D 26 20 75 49 6E 40 82 98 11 61 C5 57 7D 43 38 5E 56 13 +DA 44 03 0C 83 0B 61 48 29 75 FD 8E 43 E0 2C 2E 54 38 43 F9 8A 08 65 9F 9E DA 04 A5 71 D5 95 57 +23 25 16 4A 5C B6 00 1D 1B 84 20 C3 40 C1 10 88 88 21 72 20 06 0A 10 24 80 00 40 E0 B6 AE E5 06 +9C D7 18 C4 04 B1 60 3E C8 18 98 00 15 13 B2 58 82 8A 88 08 49 A9 7D FD D4 BB 4D 0D ED 55 36 C7 +45 CD CC 73 C9 34 10 50 C7 0E 00 39 82 02 8A 09 24 8F 63 53 4A 7F C3 2E B5 A6 97 05 31 21 1E 20 +4A 85 E0 DD DD F3 17 2F 5E 5C 2E 57 36 6C D8 50 18 1E 8E 5F 7E 89 D7 E6 CD 5B EE BD F7 BE 9B 6F +7E D3 09 BD 87 A7 04 33 94 AF 00 00 44 E5 4A 3C 38 8E F3 9B 20 28 AB 0D 1B 60 74 9C 5E B5 8C B5 +B5 82 05 A0 10 A4 00 13 41 01 01 81 E0 18 9B 08 46 8A 98 40 56 93 D2 63 54 E3 DC 07 F2 19 03 D0 +0B 15 55 2C 15 CA 48 49 85 32 A4 D1 7D B0 6E 9D DC BE 53 A5 0D 68 CD 42 73 0A 1C 87 0C 2E 18 D7 +99 06 93 5B 75 11 44 01 54 6A 8A 61 54 28 C3 CF 5E 30 36 ED 95 D3 B7 38 24 22 C7 71 17 2E 5C 64 +9A 66 4B 4B F3 F3 CF 3D DF 3F 30 F8 72 CB 66 06 06 06 7E FE F3 9F CF F2 F5 EC 03 0D 96 78 7F 11 +5A 53 11 29 E8 DF 43 BF 89 D4 F9 CB CD C5 F3 21 C5 88 01 10 03 86 18 19 00 48 C0 93 DC 4C 91 62 +80 36 17 06 42 4C 32 20 6D 56 11 92 42 15 53 14 AA 5A 89 86 0B B0 A3 57 6D DA AC 40 41 67 52 75 +36 F3 4C 9A 0C 01 26 E7 4C 48 00 00 04 C6 11 00 64 04 71 2C 8B 15 5E AE 31 21 AC DE B1 B9 3B C7 +2B C8 06 11 E3 29 AA 2A 11 94 4A C5 B1 B1 B1 39 73 E6 F4 F4 2C 68 6A CA 6F DB B6 6D FD FA F5 95 +4A C5 AF 1E 64 AF D0 72 B9 1C 45 D1 E4 32 F1 B3 07 33 9C AF A0 08 B7 8F A7 DA 3B A0 27 A7 44 54 +1A 2B C4 BF 79 46 8E 15 61 D1 7C 6C 49 31 D7 26 E5 A2 21 88 59 18 03 49 49 86 48 28 55 60 3C 40 +92 40 84 04 32 04 DF 57 A5 82 2A 97 D4 9E 01 39 BC 97 ED 1E 00 08 55 7B 0E 3A 72 90 49 A2 ED 28 +CE 41 20 47 21 75 90 8C 31 8C 63 92 01 F7 23 A3 12 32 5F F5 50 B6 BD 6C CD CF CF 59 78 A5 D9 37 +54 FC D1 CE 9D BB A6 6C 66 84 08 B5 5A AD AF AF 2F 9F CF 5B 96 D5 DC DC 92 4C 26 BA BA BA 0A 85 +D1 8D 1B D7 EF D8 B1 AB 5A 3D 60 33 99 7F F9 97 7F 5D B5 6A D5 7B DF FB 9E 93 79 33 4F 02 66 34 +5F 11 01 48 D5 42 E5 7B AF 9E B3 7C 5E D0 F7 78 69 60 73 14 CA 35 CF E3 F6 1D AC B3 35 EE C8 63 +A6 8D 79 29 10 36 71 56 32 04 04 BC 1C C4 E3 32 94 51 04 24 B1 5A C6 42 41 ED 1B 52 71 19 FC AA +0A 24 4F 70 75 4E 2B BA 0E F3 1C F0 2C 12 1C 90 13 00 44 24 41 A2 44 20 82 D8 27 19 A9 30 4A 90 +D7 4A F9 95 56 F2 55 68 E5 2D E1 A5 29 5A 99 9A BB 67 CF EE 42 A1 30 3A 3A DE 38 55 22 A8 56 6B +7B F6 EC 99 33 67 4E 47 47 07 00 B9 6E C2 B6 DD B6 B6 B6 64 32 51 2A 95 2B 95 3D 53 12 BD 1F 7F +FC F1 9B 6F 7E 53 3E 9F 3F A9 F7 F4 04 63 46 F3 95 23 28 29 A5 94 73 E6 76 77 2C 7E 4D DC 3A 6F +EF 73 DF 8D C6 76 31 80 51 9F D6 BD 44 DB 77 52 2E 47 4E 8A 6C 0B 91 31 01 05 E4 50 AA 51 24 19 +C4 92 14 17 92 07 55 02 80 AC 07 99 0C 9A 26 38 26 9A 06 98 86 12 88 C8 89 11 02 31 09 0A 11 C2 +88 E2 08 C2 18 6A A1 83 56 1B 66 AF E2 AD CB 79 A2 9B 44 5A C5 11 90 52 68 A4 53 EA AA 2B AF DA +B0 61 D3 D8 D8 8B 8D AF 78 A5 54 B1 58 96 72 57 73 73 73 73 73 8B 65 59 00 A0 94 E4 9C 37 35 E5 +DB DB 3B 0A 85 42 AD 16 34 16 DA F8 F7 7F FF 8F 77 BF FB DD 57 5F 7D D5 C9 BF B1 27 0E 33 9A AF +52 01 67 90 C9 64 97 2F 5F 9E 48 24 21 71 11 D2 BB FA 9E FB 96 E9 0F 25 13 8C 21 E3 48 31 A2 A1 +C8 31 81 0C 19 57 51 2A E5 58 CC 8E D1 32 B9 81 CC E2 C0 9B D1 16 24 04 20 21 29 E2 0C 18 03 04 +14 8C 49 A9 14 20 12 48 05 A1 84 50 A2 8C 31 62 19 C8 BE CA 68 7F 9D 91 59 C4 CC 94 61 88 38 8E +24 F1 38 26 00 62 5C CC 9D 37 B7 B3 B3 63 DD BA F5 53 32 01 88 C8 F7 83 DD BB 77 2F 5A B4 A8 A3 +A3 53 D7 D7 40 64 A6 69 2E 5B B6 8C 31 DC B0 7E 5D A9 54 A1 86 EC DE 7F F8 87 4F 9F 77 DE BF 9E +4D 22 76 46 F3 95 31 B0 2C 33 97 CD B6 B6 34 33 C4 58 82 D7 B6 22 B7 E8 96 B1 8D FF 69 44 45 14 +8C 31 B2 19 A4 6D D1 D4 0C B9 56 CE 14 01 71 52 14 86 A0 22 2E CB 8A 4B 94 24 11 01 94 5E 68 40 +24 11 91 94 C4 58 12 30 52 12 62 45 51 C4 6B A1 8A A4 01 89 05 A2 F3 46 FF EB 12 33 00 00 20 00 +49 44 41 54 91 7F 35 0A 8F B8 30 4D C1 18 63 CC 24 C3 08 82 20 8E 42 52 CA 34 8C 7C 53 13 E7 5C +A9 A9 56 14 22 94 8A C5 4D 9B 36 A5 D3 69 CF 4B 28 A5 18 53 88 90 CF 37 CD 9B 37 6F EB 96 AD 8A +2A 8D 4A C1 9A 35 6B 76 EC D8 71 36 F1 75 A6 C6 B7 00 00 00 19 77 13 49 C7 75 C3 28 22 00 CE 39 +22 6F 5E 70 7D 66 C1 CD 11 4F 87 BE F4 03 AA 05 50 F2 A9 5A A4 A8 84 04 0C 81 09 8E 06 80 19 4B +47 00 32 65 72 6E A2 10 4C 08 E4 20 91 24 C4 11 46 31 F8 21 55 6B E8 87 50 F4 A1 14 66 7D D5 04 +CD 57 1A 0B DE 23 DA AE 41 91 20 52 00 10 45 91 7E 83 73 CE 11 91 71 AE 8B C5 76 F7 74 27 13 AE +31 2D A7 50 49 59 1C 1B DD B2 65 73 A1 50 20 52 A6 69 2A A5 AA D5 EA 8E 1D 3B 76 EC D8 19 85 C1 +94 AC D9 5A AD F6 C7 7F FC AE 67 9F 7D F6 64 DD D1 13 8E 99 25 5F 37 6E DC B8 69 D3 4B FB 8F 89 +84 E0 44 54 8F 18 21 22 33 9C 96 C5 6F E0 20 8B DB 1E 50 C1 B8 52 18 96 65 51 70 8B 51 3A A1 4C +4E B1 60 14 82 8C 11 24 82 C4 98 24 12 8B A5 52 04 4A 81 24 F0 43 8A 25 00 81 24 C6 18 0B 50 60 +32 C7 B2 D7 18 F9 57 0B A7 19 64 0D 98 29 25 02 84 A4 24 63 CC 34 4D C3 30 10 21 0C 23 04 88 A2 +68 E9 92 25 8B 16 2D 7C 6E CD 9A 29 7B 2B 4B 05 52 51 B5 52 1D 1C 1C 4C A7 D3 A6 69 4A 29 4B A5 +D2 9E 3D 7B B6 6D DB 56 AA D4 1A 95 01 8D 1D 3B 76 7C F2 93 7F FF C0 03 F7 9F F0 9B 7B 52 30 B3 +F8 FA C8 23 8F 3E F3 CC 33 0D 27 26 F6 32 90 F1 FE 78 7D 2C A5 E1 34 E7 16 5F CF 19 8D 6C 79 30 +F0 CB 14 02 2B 2A A6 30 AC 92 6D 92 C5 75 95 4C 44 26 51 61 AC 40 91 52 8A 82 08 C3 88 94 02 A9 +20 8E 81 71 34 04 00 33 58 6A 85 E8 78 A3 C8 5E 80 68 00 45 48 44 04 42 70 2E 84 65 5A B6 E3 B8 +AE 6B 59 96 DE 54 B1 5C 2E 16 8B 45 61 18 AF 7F C3 1B 37 6F DE 12 8D 8D 4F CF 18 F0 FD 60 D3 A6 +4D C3 C3 43 D9 6C 2E 91 48 8E 8E 16 76 EE DC 39 3E 5E 7C B9 AA 86 1B 36 6C FC C9 4F EE BD E5 96 +9B 8F F3 DD 3C 15 98 59 7C 8D A2 03 23 EF 44 32 8A A4 94 38 59 9F 82 73 8E 4A 29 45 60 64 B2 4B +7E 8F 8C F4 BE 97 7E 58 2B 8D 53 AC C2 48 06 21 78 16 18 06 E8 D5 05 88 8C 31 60 A0 FC 10 E2 98 +6A 01 49 A9 C5 21 59 26 1A A6 40 73 0E E5 96 DA 6D AF 83 F4 39 08 00 71 51 31 87 D0 E6 4C 08 21 +1C D7 4D 24 12 89 44 C2 34 4D DB B6 75 7D FA A6 A6 4C A9 54 DE BB B7 7F D9 B2 65 F3 BB 7B 9E 7F +7E ED C4 4A AF C6 5F 11 CB 5D BB 76 EF DA B5 3B 95 4A 66 B3 D9 F1 F1 F1 D1 D1 F1 38 96 2F 57 B7 +60 60 60 E0 17 BF F8 C5 2C 5F CF 24 10 D1 8F 7F FC DF 5F FE F2 57 0E 3C 09 52 4A A5 94 94 31 00 +20 63 40 34 51 5B 85 14 72 23 B7 F0 7A 91 68 1F 58 FF 13 7F 64 73 54 AB F9 81 2C 99 68 9B 34 AD +6F 08 43 8A 95 A6 16 5A 96 E1 7A 1C 53 8B B1 ED F5 BC 79 25 0A 97 08 08 28 56 86 E0 8C 31 34 4C +C3 75 BD 7C 3E 9F 48 24 2C CB 34 4D 83 73 AE EB 13 5A 96 05 80 2D 2D 91 94 F1 55 57 5D B9 E5 A5 +8D 95 4A 4D 4D 7B CB C7 B1 24 82 42 61 7C 6C AC 48 74 90 E4 98 46 20 E2 DD 3F B8 FB CA 2B AE 78 +CB 1F BC E5 78 DC CB 53 89 99 C2 D7 DE DE DE 5B 6F FD 50 B1 58 6C 3C A9 00 C3 58 C6 71 CC 19 37 +4D CB B2 2C A9 94 EF D7 94 94 C0 2D 90 35 40 48 75 BE CA 4C F7 94 77 3D 39 B2 FD 89 6A B1 37 F2 +2B BE AF 00 70 32 9F 1A 01 88 31 C1 98 89 C0 0C 53 5A 5E AB 95 5D 66 B6 B6 59 CD 17 A3 37 1F 80 +01 28 29 25 00 09 C3 14 86 61 DB 8E EB BA 99 4C C6 F3 3C D7 75 4D 73 E2 4F A0 9D 53 BA DE 77 26 +93 91 52 5E 7D F5 D5 4F 3D B9 FA E9 A7 9F 81 69 7C 05 1D EC 00 9A 9E 69 30 1D 9C 73 44 F5 EC B3 +BF BB FE 86 EB 5D D7 3D D6 5B 79 4A 31 23 F8 1A C7 F1 BD F7 DE 37 3D CB 4E 08 CE 18 0A 21 72 4D +B9 E6 96 16 22 E5 FB 01 11 05 81 AF A4 24 EE 28 29 19 80 93 6C 76 CF BD 31 D9 7E 5E A9 EF F9 F1 +D1 9D F1 F8 76 0A 8A A0 18 80 41 58 43 20 C3 CE B8 5E 8A DB F3 EC 64 4A E4 7A AC 6C 0F 73 DA 01 +14 AA 80 80 91 8C 18 77 00 81 0B 61 DB 8E EB 3A E9 74 CA F3 3C CB B2 EA 64 D5 A8 CB 48 DB B6 F2 +F9 FC 05 17 5C 70 CD 6B AF DD BC 65 4B 61 74 FC A0 94 3D 4C 28 25 E3 18 EF B8 E3 8E 1B 6E BC F1 +8A 2B AE 38 EA 7E 4E 07 CC 08 BE D6 6A B5 3B EE F8 FA F4 85 78 24 A5 63 3B D7 5D 77 FD C2 85 8B +93 C9 44 14 45 4A 51 1C C7 71 1C 2B 29 01 80 F3 89 AD 8D 09 85 D3 B4 D8 C9 CE 4F FA 51 54 DE 1D +55 46 20 F6 51 49 C0 1A 00 A1 99 B4 13 39 EE B4 19 76 06 B8 03 00 18 57 09 79 14 45 C2 4A 10 08 +00 B2 2C DB B4 6C CF 75 3D CF 73 1C D7 75 DD FA CE 72 07 85 69 9A 1D 1D ED 6F BA E9 A6 C7 1F 7F +7C F5 EA DF 1C CB CF 57 8A 82 30 32 0D 7E D7 5D 77 2D 5F BE 3C 9D 4E 1F 4B 6F A7 16 67 3F 5F C3 +30 FC BB BF FB E4 E0 E0 E0 F4 AF 08 E0 F2 2B AE F8 E3 3F 79 67 7B 5B 5B 14 C5 B5 5A 4D CA D8 F7 +FD E9 2D 19 63 00 A8 D0 70 5C C3 76 97 2A 45 48 11 50 AC B7 8A 57 C0 B8 E1 01 48 92 13 3A 2C 31 +01 C0 98 E1 21 32 CB 12 42 08 DB B6 4D CB 4A 24 12 8E E3 68 EB 8A 1D B2 C4 00 22 18 86 58 B6 7C +D9 35 D7 5C B3 61 C3 86 72 B9 52 DF 21 EC 28 40 04 5C 18 0F 3D F4 A0 52 74 E7 9D DF 3D 73 F3 B6 +CE FE 78 C1 A7 3F FD 99 EF 7C E7 BB 6A 9A 70 55 4A CD EB EA 7A EB 5B FF A0 6B DE 5C CB B2 F4 2E +42 A6 69 D9 B6 CD 18 36 E6 8E E8 6D 05 94 92 7A D3 2E 20 C5 90 90 19 C8 1D 26 1C 61 26 18 33 41 +45 24 25 00 81 8A 30 AE 00 0A 64 DC B2 2C CB B6 13 C9 64 32 95 4A 24 93 E9 74 DA 75 5D D3 34 6D +DB 3C 34 59 35 88 28 91 F0 DE 7C CB CD CB 96 9D 27 04 67 08 C7 B2 AD 6C 1C 4B C6 D8 0B 2F AC 1D +18 18 38 FA 5E 4E 35 CE 72 BE 0E 0E 0E 6E 5A FF A2 E0 CC 32 79 23 43 88 C8 75 AC EB AE 7B C3 CA +95 97 31 C6 19 43 DB B6 3C 2F E1 79 9E E7 79 AE EB 09 31 29 81 10 D9 A4 56 70 20 08 80 88 54 1C +47 13 3C D6 60 06 09 17 11 0D D3 32 4C D3 75 5D C7 71 12 89 84 E7 79 8E E3 58 96 E5 BA 0E 3F 78 +87 07 1B 83 E8 9C 73 CF BD F1 C6 1B 33 99 34 01 CA 63 58 E4 1D 86 51 14 46 FD FD 7D 7F F1 17 7F +79 F4 BD 9C 6A 9C CD 7C 1D 1C 1C FC 8B 8F 7F EC 57 8F 3F 9E 4C 25 1C CF B3 2D A3 4E 59 CE D8 25 +2B 56 FC FE EF BF A5 A9 A9 69 E2 0C 67 86 C1 2D CB 4A A7 D3 99 4C DA F5 DC 09 11 7B 60 34 81 B1 +57 A6 1A 63 C2 71 3D CF F3 D2 E9 54 32 99 4C 26 93 89 44 22 99 4C 78 9E EB 38 96 10 87 4B 56 0D +DB B6 AE BB EE 8D 17 5F BC C2 75 ED 23 BA 70 3A FC 5A 4D 46 D1 E6 CD 9B 9F 7A EA A9 63 EC EA 54 +E1 AC E5 6B A1 50 B8 ED B6 DB 1E 7A F8 11 D3 B2 74 F4 88 F3 FD 22 B6 A5 B5 E5 7F BC ED 6D CB 97 +9F AF BD 42 FA 24 E7 CC 34 0D D7 75 52 A9 74 3A 9D 36 2D EB 60 25 D7 0E 2D E2 90 73 61 3B 8E E7 +79 AE EB B8 AE 97 4C 26 5D D7 F5 3C 1D C1 12 47 67 E6 2F 5C B8 E8 A6 9B 6E 6A 6E 6E 31 F8 31 15 +DE 8E 15 D4 6A E1 E6 CD 9B 3F F4 A1 3F 3B 30 CE 77 C6 E0 AC E5 EB C0 C0 C0 23 0F 3F 02 4A EA 97 +AF 94 52 2A 42 C6 01 C0 36 F8 E5 97 AF 7A CD 6B 5E E3 79 8E 69 1A 75 0E 31 C6 18 43 CE B9 65 59 +AE EB B9 AE 87 D3 A4 E9 21 76 72 43 44 C3 34 BD 44 22 99 4C 7A 9E A7 49 EF 79 6E 32 E9 E9 8D 95 +11 F1 D0 3E 81 83 22 8A 62 C6 F8 EB 5F FF BA 57 BD EA 12 C3 60 C7 E0 D7 02 00 90 44 52 AA 8D 1B +37 3E F7 DC F3 C7 D4 D1 29 C2 D9 C9 D7 ED DB B7 BF F7 BD EF AF D6 FC 4A 2D 1C 1B 2B 96 4A E5 4A +A5 16 84 51 14 2B 44 5C B0 78 F1 5B DF FA D6 F6 F6 76 21 04 63 6C 4A 64 08 11 6C DB 74 1C 3B 91 +48 38 AE 8B 87 08 1C 35 80 21 3A AE 97 CD 66 B3 D9 6C 3A 9D D6 0A AB E7 39 3A 9F 46 29 75 38 06 +D6 41 21 04 37 4D 31 77 EE 9C 37 BC E1 0D A9 74 F6 50 81 AC 23 C1 A7 3E F5 0F CF 3F 7F E6 51 F6 +2C E4 EB 4B 2F BD F4 CE 77 FE C9 DA B5 6B 01 80 88 82 20 D4 3B 6A 33 86 40 2A 93 49 5D 77 DD 75 +57 5C 71 45 3A 9D 32 8C 83 BB F3 10 D1 30 4C CF F3 12 89 84 10 C6 2B 56 A9 10 86 91 4C 67 D2 E9 +74 26 93 49 24 12 C9 64 32 9B CD 58 96 C9 18 D3 7A C8 E1 1B 58 07 9D 0C 00 08 61 AC B8 E4 D2 73 +96 2E 01 15 1F 17 C2 8E 8C 8C 3C F5 D4 6F E3 F8 0C AB 8A 7C 16 F2 F5 9B DF FC D6 9A 35 6B 1A CF +44 51 AC 94 8A 22 69 18 7C D9 79 E7 DD 74 D3 4D B9 5C EE D0 01 77 CB 32 1D C7 C9 66 B3 F9 E6 66 +D7 F5 0C D3 14 C2 68 74 14 E8 BD 8C 19 E3 B6 ED 64 32 99 74 3A 9D CD 66 35 C5 5D D7 01 00 21 F8 +71 DD 39 83 16 2D 5C B0 EA 8A 2B 6D C7 3D 5E FB C8 FD D5 5F FD F5 9D 77 DE 75 66 ED 55 7B B6 F1 +F5 89 27 9E 78 EC B1 9F 1F F4 2B A5 54 26 DB 74 FD 0D 37 9E 7B EE B9 53 02 A1 D3 C1 18 26 12 6E +3A 9D 6E 69 69 E9 9C 33 A7 B5 B5 35 93 CD BA AE 67 3B AE FE 97 48 A6 52 E9 4C AE A9 A9 B9 A5 B9 +B5 B5 35 9B CD 66 32 29 CF 73 4D D3 E0 7C AA 8E 71 EC 20 22 C7 71 DE F8 86 37 2C 5C B8 40 1D 27 +BE 86 61 F8 ED 6F 7F E7 CC 12 B1 67 55 7C EB A9 A7 9E FA 5F FF EB 83 DB B7 6F 9F FE 15 11 39 8E +7D E5 95 97 5F 77 DD 1B B2 D9 57 0E 48 22 22 E7 DC 71 98 6D 5B 9E E7 55 AB D5 5A AD 56 AD 56 89 +14 22 0A 61 E8 77 BD 6D DB 42 08 D3 34 10 B1 51 BB 38 31 1B 68 D1 F9 17 9C 7F C1 85 17 AD 5B BF +F1 70 D2 5C 0E 07 DB B6 6D FB E4 27 FF FE D3 9F FE 07 21 CE 0C 26 9C 19 B3 3C 1C FC F6 B7 BF 7D +E7 3B FF 64 EF DE BD 07 FD 96 88 9A 9A F2 37 DC 70 C3 E2 C5 4B 74 F2 DE E1 F4 89 88 88 60 9A 82 +31 4F AB A1 52 C6 8C 71 CB B2 0D 43 30 C6 4C D3 90 52 BD A2 B4 3E 2E 20 A2 64 32 F9 EA 57 BF EA +DE 7B EF 1B 1F 2F BE F2 05 87 81 28 8A BE F6 B5 3B 18 63 9F FC E4 DF D9 F6 B1 FA 77 4F 02 CE 12 +BE D6 6A B5 0F 7C E0 D6 97 23 2B 00 08 21 2E BF FC B2 D7 5D 7B AD E3 D8 34 2D 03 FA 15 21 04 B7 +2C 8B 31 16 C7 B1 61 08 CE B9 10 13 56 D4 51 B8 A8 8E 01 74 CE 39 E7 34 35 E5 6A B5 DA 2B 56 7D +3B 4C 28 A5 BE F2 95 AF 72 CE FF FA AF FF CA F3 BC E3 D2 E7 89 C3 59 A2 BF DE 77 DF FD 07 CD 68 +A9 A3 A3 A3 E3 E6 9B DF A4 93 06 8F 6E 08 CE 99 61 18 A6 69 1A 86 69 59 E6 B1 98 FC 47 0D 29 E5 +FC F9 DD 6D 6D 6D C7 DD 48 FA D2 97 FE F1 73 9F FB FC 41 73 7D 4E 2B 9C 0D 7C FD 8F FF F8 CF 8F +7D EC E3 87 D8 1A C5 B2 CC AB AF BE E2 D5 AF 5E A9 5D A1 47 31 84 52 4A 4A A9 DD B5 E2 E8 B6 C2 +38 4E 68 69 69 3E FF FC E5 E2 D8 72 5F 0E 8A BB EE FA DE 94 7C F6 D3 10 67 3C 5F EF B9 E7 47 1F +FB D8 C7 87 87 87 0F D1 A6 B5 B5 F5 86 1B 6E F0 3C 8F 48 49 A9 8E C2 58 D1 A1 29 44 D4 A6 D5 31 +CC F7 E8 A1 67 CE 39 BB E8 A2 8B 85 69 F1 E3 6D 21 8D 8F 8F DF 76 DB 47 4B A5 D2 F1 ED F6 F8 E2 +CC E6 EB 33 CF 3C F3 A7 7F FA 67 23 23 23 87 68 C3 39 3B FF FC F3 16 2E 5C C8 39 9F B4 B2 8E 86 +AF 44 87 55 DE FA C4 41 7B 7C 95 82 45 8B 16 79 9E 4B EA 65 17 18 1E 75 FF 3F FA D1 8F 6F BD F5 +43 A3 A3 A3 C7 B3 DF E3 8A 33 98 AF 51 14 AD 5E FD E4 F8 F8 F8 21 DA 18 1C 3B 3B DA 2E 5F 75 85 +6D D9 7A 69 A1 2E E3 73 14 C3 09 C1 19 63 71 2C A5 3C D9 0E 76 A5 54 14 C5 52 4A A5 48 29 D5 D6 +D6 36 AF 6B BE 02 3C 11 5E B3 7B EE F9 D1 6D B7 7D F4 D0 EF AB 53 88 33 95 AF 52 CA 3B EE F8 FA +27 3F F9 F7 87 68 C3 10 5D CF 9D 3B AF AB B3 B3 A3 1E 9A 3A 46 11 C9 18 2A A5 4E 1A 65 95 52 71 +1C 4B A9 A2 28 8E A2 58 AF 47 4F A7 D3 2B 56 5C CC 10 E9 C4 84 A6 FE E3 3F FE F3 2F FF F2 AF 0E +FD D6 3A 55 38 53 FD 59 5F FD EA FF FD EC 67 3F 37 B5 9E C0 14 20 22 E3 ED ED ED 8E E3 46 51 28 +A5 2E 02 7C 4C 84 8D 22 09 00 44 74 A2 DD 58 44 A4 39 1A C7 B1 65 99 7A F1 59 1C C7 3A 4E B1 64 +C9 12 2E 38 29 09 70 42 76 EA FA B7 7F FB F7 38 8E BF FE F5 3B EA DB 41 9E 26 38 F3 F8 4A 44 5F +FD EA FF FD CC 67 3E 5B AB D5 0E A3 B1 F2 3C 17 19 D6 6A 35 9D 45 C0 18 8B A2 D8 98 DC EF E2 95 +2E 07 5D 11 08 11 E2 58 C6 F1 84 46 41 C4 7C 3F D4 21 83 63 57 22 E3 38 D6 6B 1C 26 6D 41 92 52 +01 68 BE 46 51 14 F9 BE AF 63 1C 9C 73 4D D9 AE AE 79 C9 64 AA 56 AD 04 61 A4 8E 61 5D D7 21 F0 +5F FF 75 8F 52 EA 9B DF FC C6 69 45 D9 33 8F AF FF F5 5F F7 7C F2 93 7F 7F 38 51 6F 22 F2 BC 44 +53 53 3E 08 C2 4A A5 52 2A 95 6C DB E6 9C DB B6 15 45 B1 10 42 EF 06 FF 32 D7 02 00 44 51 C4 39 +0B C3 58 67 03 4A 29 C3 30 0C C3 50 57 BC D2 EC 37 CD 89 95 33 3A 18 A6 F5 E3 89 82 45 A8 4D 34 +5D 0C 66 FF AC 60 C2 80 9B 10 8C 8C B1 28 8A 0C 43 48 A9 F4 1B 43 AB 01 71 1C 47 51 18 45 91 94 +52 A7 CF 1A 86 89 88 96 65 65 32 D9 64 32 59 2E 97 0D 0E 71 74 6C AF 8C 97 BF 7B F7 DC F3 A3 6C +36 FB B5 AF FD D3 09 E8 FE 28 71 86 F1 B5 54 2A 3D F5 D4 53 87 99 A2 81 40 E9 74 3A 9D 4E C7 51 +54 AB D6 CA A5 92 5E 68 00 00 96 65 FA 7E C0 39 B7 2C A1 14 D4 93 53 75 79 40 22 52 8A A4 54 44 +14 86 81 A6 8E 6E 40 44 52 CA 6A B5 CA 18 B3 6D 5B 47 BC B4 DD A3 E3 5E 61 18 59 96 88 22 A9 5D +60 51 24 39 47 A5 68 32 6D 7C A2 96 0C 63 4C 07 A8 EA AC F5 FD A0 5E AE 30 8E A3 28 8A 89 94 DE +BD 48 4A 29 04 57 8A 4C 33 32 4D 8B 31 96 4E A7 BB BB BB 06 F7 0D A8 F0 C4 BA 2C D6 AD 5B DF DB +DB DB D3 D3 73 42 47 39 7C 9C 49 7C AD 56 AB B7 DF FE A9 6F 7C E3 9B 87 D3 18 11 0C 83 67 B3 99 +64 32 29 95 AA D6 6A 46 A9 08 08 4A 29 BD A0 0A 00 34 11 75 C9 8C 29 97 2B 45 52 4A 29 A5 EF FB +61 18 4A 39 E1 3C D2 4E 31 A5 64 14 85 61 18 EA 88 97 65 59 3A 91 80 31 06 40 71 AC 94 22 C6 40 +4A C5 18 EA 1D B6 C2 30 52 8A F4 55 4A 29 22 15 C7 92 88 E2 38 46 44 29 A5 F6 56 E9 41 B5 23 02 +26 3C 03 51 9D D3 42 08 CF 93 8C 61 2E 97 5B B9 72 E5 FA F5 EB 8B E3 E3 80 F2 84 08 58 00 00 78 +EA A9 A7 3E F4 A1 3F FD C6 37 BE 7E 9A 50 F6 4C E2 EB D8 D8 D8 0F 7E 70 F7 E1 B4 44 04 C7 B1 11 +21 9B CD B8 AE 4B 44 51 14 55 AB 35 C1 19 10 84 61 10 04 81 E3 38 3A 09 CB 30 0C 2D FF 10 81 73 +2E A5 34 0C 83 28 D6 12 51 27 5C FB BE 1F 45 A1 52 4A 0B 60 C6 B8 6D 1B 00 A8 5F D3 BA 1F 2D A4 +11 99 2E E6 CA 39 D3 81 89 28 8A 4C D3 D0 D7 86 61 58 AB D5 A2 28 94 52 46 51 1C 86 A1 E6 62 A3 +E1 A8 87 40 6D FE 23 C6 51 34 51 4A 9B B1 28 8A F4 66 B7 B9 A6 A6 5B 6E 79 F3 E6 97 36 3F F8 D0 +C3 44 E1 09 B9 DD 93 F8 D5 AF 7E 7D EB AD 1F FA FE F7 BF D7 D1 D1 71 42 07 3A 1C 9C 31 7C 8D A2 +E8 B6 DB 3E 7A D8 01 43 34 4D 43 08 C3 F3 92 8C 31 2D BD 84 10 D5 1A 07 60 04 C0 18 97 32 16 42 +68 8D 90 31 B4 2C 83 08 38 67 8C A1 94 B1 4E 0E 8C 22 B0 AC 04 00 30 C6 8A C5 18 40 11 91 10 86 +69 9A 9A EE 3A E2 A5 AD 2E AD 0A 9B A6 A6 96 4E 85 41 5D 0F 4B 4A A5 EB 65 0B C1 2D CB D4 39 0C +5A 82 6A 81 AA 63 01 71 1C 71 CE 81 48 4E 50 96 29 29 19 E7 5A DF D0 8A 8A EF FB DA F0 EA EA EA +FA C8 6D 1F A9 54 AA BF F8 E5 AF 0E 6A 7A 32 C6 F4 C3 70 EC 61 8E D5 AB 9F DC B9 73 E7 2C 5F 8F +00 BB 76 ED 5A BB F6 85 C3 6C CC 18 5A 96 6D DB 56 22 91 D0 85 30 88 C8 30 0C CB 34 2D DB 36 4D +93 31 C6 B9 E0 5C 08 21 4C D3 14 42 BB 0B F4 8E 00 13 00 00 ED 46 D0 5C B7 2C CB F7 09 11 1D C7 +71 1C C7 30 84 76 69 4D B1 D8 A6 1F D6 C1 D8 44 57 9C 0B 29 A5 E3 48 DF F7 6B B5 5A 1C C7 5A 49 +A8 33 0C D9 64 20 8E 14 A9 03 AA 0E 28 19 03 51 99 31 CB B2 CE 39 E7 DC BF FE EB BF 2A 57 CA 4F +3C F1 E4 94 BC 88 54 2A D1 D1 D1 11 C7 D1 D8 D8 F8 D8 58 51 3F 12 47 78 CB F7 43 4A F9 81 0F DC +FA EB 5F FF 32 93 C9 1C 75 27 C7 05 67 0C 5F 3F F1 89 BF DD B9 73 E7 61 36 36 38 17 9C EB D7 A8 +61 18 44 94 48 24 2C D3 4C 24 92 A9 74 DA B2 2C CB B2 1C C7 31 4D C3 71 1C FD 77 6C CC B7 AA 73 +4E 7F 40 44 D3 14 95 0A E8 04 6D D3 34 1C C7 3A A2 C9 EB 7E 18 63 8E 63 13 91 EB 3A DA 8A 32 4D +D3 75 DD 38 8E 82 20 D4 29 35 D1 24 00 40 49 C9 90 31 C1 95 52 13 0E 0B 04 20 20 A2 5A AD 56 2E +97 6D DB BE E4 D2 15 1F FE F0 87 FB FB FB B7 6E ED AD 33 12 11 2C CB CA E7 F3 B9 5C B6 50 18 DD +B7 6F 70 CF 9E 3E BF 56 3B 16 4F ED C0 C0 C0 EA D5 4F DE 70 C3 F5 A7 2A 7D 42 E3 CC E0 EB AF 7F +FD F8 8B 2F AE 3B FC F6 8C 61 14 47 A6 65 65 B3 39 CE 79 C2 F3 92 C9 A4 E3 38 E9 4C 26 91 48 D8 +B6 6D 18 86 6D 5B 8C 31 2D 23 B5 D5 AF 29 1B C7 72 4A 49 0B 22 8A 63 A5 B5 52 D3 34 6D FB 50 64 +D5 BE 85 E9 D1 84 38 96 DA 56 23 02 21 04 00 72 CE 6C DB D6 7A AD F6 03 44 51 14 04 41 1C C7 41 +E0 EB 00 AC 76 66 D1 E4 A6 F4 4A 2A 44 24 20 8E 18 04 41 B5 5A B5 6D EB F5 AF 7F DD 4B 2F 6D FA +C7 7F FC EA C8 C8 88 26 13 11 0C 0F 8F 20 6E 5E BC 78 91 6D DB 1D 1D 9D 88 6C 78 68 5F B9 5C 89 +E3 F8 E8 62 73 A5 52 E9 73 9F FB FC F5 D7 5F 37 CB D7 57 C6 A3 8F 3E DA DB DB 7B F8 ED D3 D9 AC +52 B2 BD BD BD BB 7B 7E 3A 9D 4A A7 D2 9E E7 25 92 89 44 22 A9 4B 57 C4 B1 9C B2 38 16 11 A5 54 +5A 0D D5 61 7A 21 78 1C 4B 9D 96 A5 3D A9 8C 31 C6 D8 94 CC D7 7A 63 00 88 E3 58 DB 6D 52 4A 44 +D6 B8 86 7B 52 C4 A2 76 C7 EA F6 7A 0E 88 10 45 D2 71 1C 22 0A C3 30 8A 62 A5 64 AD E6 07 81 1F +45 51 18 86 41 10 4A A5 E2 28 02 ED 4C 50 92 28 0E 82 C0 F7 FD 72 B9 92 CB 65 DF F1 8E B7 6F DE +BC E5 5F FF F5 DF C2 30 9E AC 4A 03 43 43 23 A1 EF 73 C3 CC E7 9B 72 B9 9C EB 3A C3 C3 23 C5 F1 +B1 6A 2D 38 BA D2 71 9B 37 6F FE F6 B7 BF 73 EB AD 1F 3C 8A 6B 8F 17 CE 00 BE 3E FA E8 4F BF FF +FD FF 77 88 06 53 36 A5 D0 16 BD 65 99 2B 57 BE 7A 4E 67 67 26 93 49 26 53 BA D6 9A E7 B9 9A 73 +96 35 21 56 B5 7A 3A 61 8F 13 C1 04 A5 00 91 01 80 26 AB FE A0 5D 01 00 A0 93 12 85 10 51 14 EB +32 83 DA F9 A5 17 CC 34 76 45 44 F5 07 83 73 56 8F 1D 68 4C E6 5B 91 10 BC 3E 90 10 8E 0E 71 D9 +B6 1D 45 51 18 46 DA A5 10 04 81 0E 74 49 29 91 21 29 0A 83 A0 54 2A 71 CE 2C CB 6A 69 6E 7D FF +FB DE F7 D2 C6 0D BF 79 EA 69 C0 7A A6 04 8D 15 4B 44 50 2C 96 AA D5 EA DC B9 F3 BA BB 53 43 43 +43 E3 E3 E3 85 42 C1 F7 8F D8 AB 50 2A 95 9E 79 E6 99 59 BE BE 02 86 87 87 0B 85 C2 41 BF E2 0C +1D DB 64 C2 A8 54 6A 3A C2 4E 44 AE 6B 13 A9 73 CE 59 7E E9 A5 AF CA E6 72 D9 6C 36 95 4A 39 8E +AB 8B 10 0A A1 F7 0C 62 4A 29 CD 15 AD 00 D4 6D 2C 98 E4 71 E3 40 8C 31 2D FF 34 9B B5 88 AD AF +D8 AE BB 6F 27 09 4D F5 CF 86 C1 E5 64 29 59 CD 5D 29 A5 56 06 F4 B8 9C 1F C0 60 98 94 C1 B6 6D +D9 B6 AD 3D C4 8E E3 F8 BE 5F AB 55 4D D3 D4 62 55 82 24 29 A3 28 1A 1F 2F 5A 96 ED 38 CE 25 97 +5E F2 F6 77 FE F1 E6 2D BD C3 23 23 0D 79 5B 88 08 51 14 F5 F7 0F 56 AB B5 AE AE 79 ED ED 1D 8E +63 2B 25 47 46 46 8F 42 CA 8E 8C 8C 14 0A 85 5C 2E 77 A4 17 1E 2F 9C A9 F9 59 DA 4F D4 D2 DA D2 +39 77 5E 2E 97 AB EB 8B 9A 4F A9 54 EA 9A 6B AE 99 37 6F 5E 26 93 71 5D 2F 95 4A BB EE FE 5A 6B +3A 70 C5 18 6B 7C 29 D7 53 AE 88 20 8E 75 E6 DE 44 88 4B 29 02 40 ED 55 30 0C 43 EB 93 4A 1D C0 +E9 FA DE 6E 3A 07 60 F2 5A 00 C0 7A BD 8C 49 41 CB F5 6C B5 F3 41 77 A2 F7 23 D0 5B 18 E8 0E F5 +37 86 21 1C C7 F6 3C 2F 93 49 67 32 B9 4C 26 A3 83 1D 8E E3 08 C3 50 52 C6 71 3C 36 36 56 2E 97 +88 E8 4D 37 DD B4 72 E5 AB 0F BA 50 27 8E E3 91 91 C2 86 0D 1B 06 07 07 F2 F9 E6 05 0B 16 E6 F3 +4D E2 C8 53 76 5E F1 5D 77 A2 71 BA F3 75 DF BE 7D F7 DD 77 DF F4 F3 AE EB F6 F4 CC EF EA EA 62 +8C 15 8B 45 1D 2F 25 02 1D 6D 5A B5 EA F2 CB 2E 5B D9 D4 D4 94 CB 65 B3 D9 8C 69 8A C6 25 AC 93 +04 3D A0 22 6C 3D 4B 50 B3 04 00 88 48 08 0E 80 44 8A 31 64 4C 2F 94 45 C3 E0 00 34 E9 34 9D 70 +A3 6A 85 44 73 8E 73 36 F9 F6 DF 4F 41 CD 48 CD 63 3D A2 36 F2 EA 53 42 04 FD 08 D5 DD B1 F5 6F +4D 53 D8 B6 95 4C 7A E9 09 A4 12 09 CF B6 6D 44 8C E3 B8 5C A9 8C 8E 8E D5 6A B5 8E CE 8E B7 BF +E3 8F 72 B9 EC CB B9 AE 7C 3F DC BA 65 EB F6 DE AD 8E E3 74 74 74 24 13 EE 51 D8 4E 3F FD E9 4F +8F C8 96 38 BE 38 DD F9 BA 6B D7 AE 9F FC E4 DE 29 27 39 D2 9C CE F6 EE EE EE 52 A9 B4 63 C7 CE +D1 D1 E2 E4 12 17 E2 9C CD 9D 3B E7 9A 6B AE 6E 6B 6B CB 66 B3 9E 97 70 1C 9B 73 AE 14 E9 54 C0 +3A B4 81 35 C9 51 14 82 37 FE F1 18 C3 49 F7 2A 00 68 23 09 B5 7A 0A 00 75 C7 42 3D 4C 50 37 CB +EA BE 85 7A 87 93 FF 23 A2 6E 3F 21 BF 27 BB 9D 8E FD DE 34 9D 11 56 3F 74 1C CB F3 DC 64 32 A5 +2B CA 3B AE CB 18 23 A5 8A C5 62 B1 58 0A 82 F0 9A 6B 5E 73 C5 15 97 1F 62 2D 64 10 86 3B 76 EC +DE B9 73 67 32 99 6C 6D EF B0 2C F3 95 FF 06 07 E2 57 BF FA F5 11 F9 6A 8E 2F 4E 77 BE 1E 04 44 +A9 74 A6 A3 B3 B3 50 18 DD B5 6B 57 B5 5A 6B 5C F2 4A 44 97 5C 72 C9 05 17 5C 98 CF 37 7B 9E 9B +48 B8 8C 71 5D 78 50 08 26 75 99 42 22 44 D4 27 EB 26 BC 3E 13 45 B1 4E 18 84 86 B0 90 16 96 53 +16 D6 B2 FD 5B 76 4D 0D 23 35 1E EA 6E 61 72 D9 B7 3E D4 51 34 00 9A CC 6E D1 E5 92 E2 BA 78 6E +6C 59 F7 01 EB CF 96 65 D9 B6 9D C9 64 52 A9 94 EB BA 5A CA 46 51 54 2C 8E 97 4A C5 5C 2E FB AE +77 BD 2B 95 3A 48 06 E0 E4 C3 81 7A FB AE 3D 7B F6 E4 72 B9 A6 5C D6 38 F2 85 8B 7F FB B7 7F B7 +63 C7 8E 23 BD EA B8 E0 B4 E6 2B 11 6D DB 36 F5 D5 C3 18 E6 F3 B9 74 3A 3D 30 30 50 2E 57 1B 95 +48 04 9A DB D9 71 DD 75 37 2C 58 B0 40 07 05 74 37 13 DF A2 56 25 59 A3 D0 6A 1C 0B 00 74 92 E1 +64 A4 54 E9 0F 00 C0 39 E3 9C 47 51 DC C8 45 9D B0 A2 BD A7 07 3D D4 A3 E8 97 3B 34 10 BA 4E 41 +2D 8C 75 04 4E 1B 82 8D CA C3 94 CC C3 BA 47 CC B2 0C CF 73 53 A9 64 2A 95 F4 3C 4F D7 B9 28 97 +2B C5 62 89 48 5D 7A E9 A5 AB 56 5D 36 7D 97 39 C1 D1 36 B9 E0 9C 31 16 04 E1 BE 7D FB A2 28 EA +9C 33 D7 3B F2 F4 D6 9D 3B 77 1E 4E F2 F1 89 C0 69 CD D7 E1 E1 E1 8F 7E F4 63 8D DA 18 11 09 C3 +CC 64 73 A5 52 69 74 74 74 DA 57 C6 65 97 5F 71 C9 25 17 DB B6 65 59 06 22 1C 68 FA 4C C0 30 84 +66 92 16 A5 DA 42 D2 44 D1 E7 B5 FE AA C9 D4 A8 71 6A 0B A9 7E 46 1F 32 C6 B4 7F 60 FA 61 7D 14 +AD AE 68 C5 B4 F1 51 A9 13 17 26 25 68 DD 04 D4 1E 5F DD 58 5F D8 68 8A 31 86 8E 63 27 93 A9 4C +26 E3 79 13 52 B6 52 A9 8C 8E 8E E7 F3 B9 B7 FE C1 5B 32 99 74 E3 CD 41 44 61 9A 96 EB 66 B2 A9 +6C 36 E5 79 4E E8 FB 7B 76 EF 36 4D AB BD BD DD 75 9D 23 8A 02 28 A5 7E F5 AB 5F 9F 92 C2 5B A7 +35 5F 61 5A 7D 60 C6 30 97 CB 38 8E B3 67 CF 9E 4A E5 80 47 5C 08 BE 60 41 CF 2D B7 DC DC DC DC +1C C7 13 82 B0 C1 F4 A1 46 03 4B 53 4A 7B 55 B5 7A 30 A9 77 D2 94 3E EB E2 AD BE 10 9C B1 7A E3 +09 0F 6B BD FD 94 C3 FA 28 FA 15 2F 84 98 0C 54 C1 64 BA E0 01 D6 58 1D FA DB 7A 6C 62 D2 5F B6 +9F F4 30 19 DD 75 5D 37 99 4C 7A 9E 6B 18 46 10 04 A3 A3 05 A5 E8 CA AB AF BE FC F2 CB 89 26 66 +A2 E3 C9 B6 6D BB AE AB BD 25 99 4C DA B4 ED F1 62 71 70 70 A0 B5 B5 AD B5 AD C5 10 47 50 9F 56 +4A F9 F9 CF 7F 61 FA 7E 66 27 01 A7 2F 5F A5 94 9F F9 CC 67 0F 5C 0E 4F AE 6D 76 76 76 C6 71 DC +DF 3F D8 C8 0C 00 48 B8 F6 2D 37 DF BC 6A D5 E5 93 64 DA 7F FF A7 9F 21 DA 6F 7E 69 C3 48 29 A5 +43 A6 D3 12 56 26 2E D7 A6 D2 E4 DC EA 4B 0E B1 D1 6E D3 87 D3 47 99 34 B0 1A CD 38 6C EC 53 3F +15 F5 29 D5 3B A9 2B 15 5A 99 D1 5F 12 81 76 9D 72 CE 5C D7 D6 D1 10 1D 70 56 8A 46 47 C7 3A DA +DB AE B8 F2 0A DB 76 EA 0E 5D 9D F9 90 4C 26 33 99 4C 2E 97 4B A7 33 C9 64 C2 34 8D E1 E1 E1 20 +F0 3B DA DB 13 9E 77 A4 95 BB 67 E5 EB 01 50 4A 3D F1 C4 EA 46 A1 88 C8 9A 9A 9B 5B 5A 5A 86 86 +86 AA D5 6A 23 AF 10 61 EE BC AE DF 7F CB 5B 9A 9A 72 30 61 DC D0 14 7F 78 83 71 A3 05 EA FE DF +AE 45 AC 66 92 BE AA 51 79 D5 D0 F1 2D FD AD 36 D4 88 08 71 22 05 71 D2 6E 3B C0 84 AA 8F A2 2B +6C 36 BE A0 B5 D4 6F B4 C6 EA 95 63 A8 61 31 63 DD DE 82 49 F5 77 B2 25 AF CF CA 75 9D 6C 36 9B +CB 65 5B 5A 5A D2 E9 B4 CE FF BA EC B2 CB 7A 7A 7A B4 8D 48 34 F1 4E B0 2C 47 EF B0 AC 77 01 71 +5D 37 8A A2 BE BE 3E 21 8C 6C D3 7E 1F F6 E1 60 70 70 70 8A AA 76 72 70 FA F2 B5 B7 B7 B7 5A AD +36 9E 49 38 E6 FC AE F9 8C B1 A1 A1 E1 29 DE 53 CF 73 DE FC 7B 6F 5E B2 64 71 9D C4 88 A8 83 49 +BA E5 81 C6 CD 84 BE A8 DD 05 00 10 C7 B2 EE BA 9F 6C C6 84 98 6A 60 E9 6F EB D6 8F 36 B0 EA C3 +4D 1B 85 D1 FE B5 5C 13 ED A1 C1 FC 6A C8 7F 9D 30 CB EA B1 83 7A 05 9A FA 28 3A E4 AB 4F EA 96 +52 2A 2D E1 18 43 D3 34 52 A9 54 3A 9D 6E 6A 6A CA E5 32 8C E1 82 05 0B CE 3F 7F B9 16 C6 3A 0F +DD 34 2D C3 10 7A 45 90 65 59 B6 ED 58 96 4D 44 03 03 83 A3 A3 A3 ED ED 1D D9 6C F6 88 DC B1 EB +D6 AD 3F F9 5E 82 D3 97 AF B7 DF FE A9 C6 4A AE 1C B1 B9 AD AD 29 9F EF EB DB 5B 2E 97 0F 70 0B +20 76 77 77 DF 70 C3 0D DA 52 9E 5C C2 0A 3A 4B BA EE 8C AC 53 AA 6E B8 34 86 9A 1A 7B AB 7F AE +E7 BF 4A A9 EA B5 36 74 CF 70 A0 F9 55 8F 6F 35 9A 50 9A 61 75 7B 4B 8F 52 F7 97 4D 09 77 35 C6 +0E 1A E5 D6 A4 19 B7 7F D1 CE 64 80 97 21 EE 2F 86 20 04 77 1C CB 71 2C FD 1E 68 6D 6D B9 F0 C2 +0B 93 C9 24 E7 28 84 30 0C 43 FF AF CD C1 C9 89 49 C3 10 32 8E 06 07 07 4D D3 EC EC EC 74 8F 24 +4F 72 C3 86 0D 5F F8 C2 17 0F BF FD 71 C1 E9 CB D7 29 EF 1A CB 36 5B 5B DB CA E5 72 6F EF 8E C6 +17 3D 63 98 4C 7A 37 DD F4 A6 A5 4B 97 EA 77 6B 43 D1 A1 89 4F 53 62 4B 93 02 6E 2A EA 16 55 DD +9F 35 69 D7 2B 21 78 DD 54 6A 7C 1D D7 0F 75 A0 6B 4A 4C B5 D1 DE AA 0B 63 6D E4 4D B1 B7 00 26 +96 E2 4C FF ED D3 C3 5D 75 E2 D6 A5 F8 F4 DF C2 B9 B1 62 C5 C5 6D 6D AD 86 21 1C 67 62 3B 27 00 +88 A2 A8 52 A9 84 61 58 AD 56 F5 36 B9 4A D1 D8 D8 F8 D8 D8 58 53 53 53 3A 93 3D A2 18 ED C9 AF +25 7F 9A F2 F5 3F FF F3 87 8F 3F FE 44 E3 99 44 32 95 C9 64 B6 6F DF 51 2C 96 1A 45 20 63 6C D9 +B2 65 37 DC 70 43 32 99 9C 5C 12 B8 7F 4D D5 64 9B FD B1 25 98 78 E3 1F 60 09 69 5B 67 32 01 6B +22 09 81 B1 89 F0 52 5D 9E 31 86 75 ED 56 F3 AC FE E4 68 52 36 06 B4 A6 40 2F 3C AC 5B 54 93 3A +09 1C A8 85 E3 64 6F BC DE 73 C3 8F 3D F8 DB FA 65 36 A0 53 0B 17 2E 9C 37 6F 8E CE 47 03 80 30 +0C 7D DF AF 56 AB A3 A3 A3 85 42 A1 58 1C AF 54 2A 51 2C 15 41 18 86 7D 7D 7D B6 6D B7 B6 B4 88 +23 D9 5A F6 D1 47 7F 7A FF FD 0F 1C 7E FB 63 C7 69 CA D7 4D 9B 36 35 D6 C3 11 82 B7 B7 B7 87 41 +38 D0 B7 B7 51 9C 30 C6 3C CF BD F6 DA 6B 97 2F 5F C6 18 EA A5 5A F5 44 AD FA 9F BC AE 4A EA E5 +D7 8D F6 96 66 A1 3E AC 33 A3 DE 9E 73 16 45 31 E7 3C 08 42 DD AD 26 47 DD C0 3A 50 D0 4E 19 45 +4D 99 43 63 2D CE FA 92 AC C6 29 D5 EB 73 69 8D B3 DE 12 27 AA CD 4D 3C 21 5A 9D 9D 4C 99 A0 C9 +47 68 E2 87 EB 43 22 6A 6B 6B 5B B8 70 91 5E 62 1E 86 61 AD 56 1D 1E 1E 1E 18 18 18 19 19 1E 1D +1D AD 54 AA 7A E7 1C 00 20 82 B1 B1 B1 6A B5 DA DD D3 93 C9 64 0E BF 66 D3 E0 E0 E0 D6 AD 5B 0F +F7 8F 7A 3C 70 3A E6 13 96 4A A5 29 95 B2 13 09 2F 9F CF 0D 0E 0E 56 1B B2 36 11 D1 34 8D 85 0B +17 5C 7D F5 55 C9 64 52 FF 39 EB 61 52 44 9C 9E CB A7 3F E3 64 CE 2B 4C 5B FA 52 5F 5C 20 A5 44 +C4 6A D5 8F A2 C8 B2 4C C7 B1 1B 17 FD C1 81 6A 6E A3 45 D5 38 0A 1C 98 4F 38 C5 FC AA CF A1 71 +4A FA E5 A0 DF FE 88 BC 3E 90 DE 6D 0E 1A 52 BC 19 13 71 2C EB CA 49 9D DF F5 15 13 96 65 2E 5B +76 9E 6D DB A5 52 39 8E 2B 86 E1 93 52 52 11 90 8A B4 5C 6D A8 26 E6 FB E1 B6 DE DE CB 57 AD 6A +CA 65 87 87 86 0E 7F 0D C2 AE 5D BB AA D5 AA EB BA 87 7B C1 B1 E1 74 94 AF 8F 3C F2 E8 3F FF F3 +0F EA 87 42 F0 B6 B6 56 21 C4 E0 E0 E0 81 0A 13 09 C1 2F BC F0 C2 F3 CE 3B 0F 26 13 02 EB C6 0D +00 4C C9 E5 D3 E1 A2 BA 25 A4 D7 05 D4 2F D4 DF D6 73 FC 84 10 88 8C 73 16 86 61 B9 5C D1 EF F1 +7A 9C AC 6E 60 4D B7 A8 EA A3 4C CF 27 AC 37 9E 0C 40 4C CC A1 D1 38 AB 3F 45 F5 AE F4 2F 91 F2 +FF 67 EF 4D 83 25 39 8E 33 C1 CF 3D 22 32 EB 78 AF DF D1 07 BA 1B 67 03 20 6E 80 38 48 82 14 0F +48 BC 75 AC 2E 52 A4 44 89 5A CD 9A 64 D4 48 A3 B5 9D 5D B3 35 AD A4 19 93 CD CE D8 CE 92 5A 91 +18 51 D2 0C 89 E6 E9 0B 00 00 20 00 49 44 41 54 47 87 0D B5 82 0E 52 22 D7 44 90 22 45 F1 04 20 +82 20 01 42 04 41 12 04 D0 00 1A 8D BE 8F 77 D4 AB AA CC 08 F7 FD 11 99 51 59 F5 FA 75 BF D7 8D +3E D6 6C DD 1A B0 97 95 99 91 99 95 5E 11 FE B9 7F EE 9E 0E 93 A6 B3 22 36 BA 6F D6 9F 6B 04 D5 +E4 96 5B 6E E9 74 3A 83 C1 70 30 18 AE F4 56 86 83 C1 A0 3F EC 0F 4A 3F 4A B1 19 C9 D1 C3 87 0F +1F 3E 94 65 AD D5 5D 1D 4F 22 7F F8 87 FF 79 C2 72 3B AB 72 C1 E9 EB C1 83 07 FF FA AF FF 3A 6D +AA 6A BB DD DE B9 F3 E2 98 E7 D9 3C 92 81 AD 5B B6 BC EE 75 77 6D D9 B2 59 55 9A 01 AD A6 A7 09 +A3 70 FC E8 0D 45 C8 52 93 00 AB 99 26 71 02 93 A7 69 30 18 AA 6A 83 EE A4 31 87 36 C1 AF 13 22 +AA C6 B0 13 D1 B2 51 50 6D E2 1E D2 66 B3 9C 72 33 F7 26 86 33 B0 2A 84 D6 D8 3B 09 F2 98 F9 8A +2B AE D8 BC 79 4B A5 E8 82 F2 A4 85 35 8A 61 71 E4 F0 91 4D 33 53 CE D9 0D F9 55 CF A5 17 F6 82 +D3 D7 17 5E 78 E1 93 9F FC 54 DA 24 A2 4D 9B A6 AD B5 FB 5F D8 EB CB B1 14 8E EE 54 F7 A5 B7 BE +F4 95 AF 7C 65 4C F6 9F C0 EC 13 E0 86 A8 8A 2D AD 0E 35 25 93 34 51 04 53 D1 CC 88 CD 63 4A 16 +1A AB 3C 6A C3 B7 79 3F 75 E9 8C B1 61 9B 24 C6 66 04 2B 9D 92 6E A9 89 F9 52 04 2B 8E A0 AA 31 +F1 26 0E 1B 2B 71 44 AD 2D CB 10 D7 99 94 52 D0 34 9A 37 6F DE 7C E3 8D 37 AC B3 4C 6C 19 64 69 +79 B9 D5 6A 77 3A 1D B3 11 D2 D6 7B DF FB BE FD FB F7 AF FF F8 33 91 0B 4E 5F 8F 1E 1D 63 B1 64 +CE ED DC B9 B3 2C CB 23 C7 8E 37 D3 91 BB DD CE 96 AD 5B BE FF FB 7F E0 E2 8B 77 26 A6 5F D3 7B +3F 01 6E D2 AE A8 67 E9 A5 46 AC 83 C6 04 86 1A E2 44 CF 40 08 B1 84 65 65 E8 47 B8 93 82 08 AB +51 5D 63 D8 51 7C AB B9 99 02 04 4D DF 42 13 F3 C5 C0 45 24 37 02 48 1F 26 B5 E3 46 EB E4 E6 DE +E8 CD 68 70 21 90 65 EE 96 9B 6F 5E 67 6B 10 55 5D 5E 5E 32 C6 CC CC CC D8 8D 74 13 79 F8 E1 87 +CF 59 15 F9 0B 4B 5F 8F 1C 39 F2 9E F7 FC 72 1D 31 07 A0 D3 53 ED 99 99 99 03 07 0E F4 7A 63 D4 +C1 2C 73 BB 76 ED 7A ED 6B 5F D3 6A E5 A9 CC 65 64 AF A2 A6 F6 45 E0 D2 0C 26 61 55 20 2A 15 C4 +AC 19 7D D1 B0 8B B3 57 34 30 AC 6B B8 78 62 7C 2B 31 06 D3 27 09 45 35 E3 5B 29 67 C6 34 6A B4 +A4 00 41 DD 0A 79 22 AF 66 F4 BB AA 79 0B 94 3E 4F B6 6F E2 89 37 CF 8D E6 6C 1C 30 BA 0B 44 F4 +AA AB AF 5A 6F 2B 1B D5 61 7F 60 8C 9B 9B 9B CB 33 43 67 AF 28 D7 19 C8 05 A4 AF AA FA 99 CF FC +43 4A 2D 64 80 99 E7 B7 6E 6B B5 5A C7 8E 1D 6F 42 8A B8 38 DE 76 DB 6D BB 76 ED AA 37 39 82 A4 +06 21 90 52 2A 15 1A 48 08 35 C0 6A EA 41 12 11 89 16 6A 72 E9 A7 BA 82 F1 00 5A 45 20 A4 2A FF +7B 32 30 0B 40 24 AC 82 5F D5 55 1A 3F A7 51 6C 2C 6E A6 9B 49 BA A8 AA 22 D1 78 95 66 3C A2 DE +9B B0 A6 A4 23 23 C8 CB 32 B7 73 E7 C5 27 2F 98 30 1A 07 28 83 12 C1 39 A7 CA EB D7 56 EF FD A7 +3F FD 99 73 43 7F B9 80 F4 35 84 70 F7 DD FF 29 72 06 98 20 40 9E 67 3B 77 6C 1F 0C 06 C7 8E 1D +6B BC 3C 64 99 DB B6 6D DB EB 5F FF 86 E9 E9 A9 E6 08 E3 91 27 8D E9 31 35 12 6A 22 2A 6D A0 1C +93 22 FB 69 33 FE 1D 5F 7F 9C 77 A3 C2 AD D5 58 A6 89 B7 44 B4 09 7D 1A 20 4F 13 54 4A 57 8F 88 +2A DD 4D DC 8C E3 34 71 55 FC 29 A2 11 D0 4A FE 0A 91 11 BD A1 09 01 D3 89 F3 F3 73 9B 36 6D DA +C8 5B D0 10 42 19 C2 FA 41 54 08 E1 FD EF FF C0 B9 61 70 5F 40 FA FA BB BF FB FE EF 7E F7 BB F1 +6F 26 30 90 65 59 A7 D3 3D 74 E8 70 BF 3F 68 38 4A 51 96 FE 86 1B 6E 8C 7C 8E 09 B0 DC 4C C9 9A +88 6F 8D 03 AC 31 E8 C3 CC 89 90 95 CC CA 58 CB D2 FB 52 44 53 78 EC 84 F1 AD B8 59 E3 2D 30 9F +80 40 18 41 5B 9D 0E 3E E6 C1 48 3A 9A EE 36 FD 71 C2 54 88 94 05 9E EE 2A 71 74 9A A6 79 94 2C +CB B7 6F DF B1 21 08 1F 82 17 91 B5 C2 69 E7 57 2E 14 7D ED F7 FB 0F 3E F8 60 EA AF 17 14 02 4C +4D 75 99 E9 F0 E1 43 CD 23 63 98 E0 95 77 DE 39 3F 3F D7 F4 5C D6 4C 3F 6E A2 2B AD A9 CD 13 6F +91 C6 F9 84 11 DF 24 6D 16 D1 C1 60 E8 BD 57 15 D5 E8 28 95 DA E4 30 E9 2A 18 F9 16 38 5D 97 1A +79 57 AB 2F 9A EE 6D C2 A6 6C 12 C3 9B A1 2F 63 4C CA 29 6F 2E B8 71 9C 44 71 6C 42 C0 78 93 A9 +EC 61 A7 D3 BE FC F2 CB D6 F9 16 88 60 2D C7 52 48 A7 91 3A 7B 0E E4 42 D1 D7 3F F8 83 3F 6C BA +B1 54 41 44 33 B3 73 0B C7 17 0E 1D 38 D0 B4 E4 F2 3C BB EA AA 2B 6F BA F9 E6 2C CB A2 2B 27 91 +F0 E3 6B 8B 09 58 D1 30 4C F3 16 8D E8 85 23 4B 74 9C 4F 38 32 3D E3 A4 15 F1 0A 1A 39 83 31 A9 +35 02 B2 98 6C 03 8C E6 39 8C A3 BA 38 60 E2 34 26 2F 44 BC 62 A4 22 24 DF 3E 50 29 77 42 87 09 +57 C5 DA 89 F1 17 85 06 F0 6A D2 5F 9A 10 B0 8E 93 99 38 6D 1B 63 E6 E6 E6 D6 FF 22 12 5F 62 43 +32 1C 0E 1F 7F FC F1 8D 9E 75 1A 72 41 E8 EB DE BD 7B 1F 78 E0 81 89 0F 3B 9D F6 FC DC DC 91 A3 +47 0B 3F B6 20 8A C8 D5 57 5F BD 6B D7 15 B1 64 10 46 F0 05 AA A3 04 2C AA 32 60 B9 99 BF 15 B1 +F9 5A 7C C2 26 27 B0 F2 30 D5 3F 93 A4 6D D1 2C AE F5 6C 84 7E E2 DF 13 41 A9 C6 55 4C C4 5E 5C +17 E9 40 95 E0 35 1A 36 CE 8B CD FB 8F 87 A5 79 2E 1D AC AA 4D 7A 21 55 85 0B EC C4 89 A8 5C 10 +98 99 99 59 E7 8B 50 C5 CA 4A FF 34 BA C8 1E 39 72 E4 37 7F F3 DF 6C F4 AC D3 90 0B 42 5F BF FA +D5 87 9A 93 2B 00 86 CE CF CD 76 3A ED 89 C6 65 91 E0 72 ED B5 D7 6D DB B6 0D 48 9C 8F 31 A6 5F +93 EF DC 2C 5D 91 66 8E 89 4D D4 A9 1D 69 9C E8 8D AF D5 57 E3 EC 8B 7A D5 4E 56 41 4C A4 99 08 +8F A1 86 53 29 87 2C 4A 9C 26 9B 17 1D 1F 27 95 35 30 F5 B9 40 15 B3 95 89 83 D3 0D A7 BD 4D 51 +1D B3 1C F2 CC 4D 75 3B EB 71 FF D7 86 84 1F 0E 87 A7 D1 B2 F4 DC C8 F9 D7 D7 EF 7D EF 7B EF 7B +DF EF 4C 7C 48 84 56 AB E5 7D 58 59 5E 9E F8 BC D3 69 EF DA B5 6B 6A AA AB AA 75 19 EB 11 D3 0F +35 BA 6A 4A 54 AC E8 56 47 FD CA A9 41 A4 6A 8E 33 71 27 D6 BA D5 49 5D 8D FB A1 26 D6 41 9D E6 +0A 80 D9 34 C3 54 E9 F8 B4 2C 4C C8 78 E8 C1 44 B5 E3 C6 C3 C4 78 5B 7D E7 F1 11 46 29 3A CD 4C +8A 66 40 CB 65 D9 CC A6 E9 75 1A A3 91 D6 33 1C 16 E7 32 C4 BA 21 39 CF FA BA B0 B0 F0 73 3F F7 +F3 8F 3C F2 C8 C4 E7 6C 2C 88 45 94 C6 63 89 22 32 3B 3B 77 E5 95 57 18 E3 50 C5 5D 47 E4 8F 74 +CC 44 E4 09 35 10 61 A6 A8 A0 A8 54 27 F6 1D A8 54 2D F5 DA 9C 20 F3 47 B7 40 13 D5 25 D5 69 5A +9C AB 08 84 94 FC 6B CD 8B C6 F2 86 8D A1 42 B3 C6 4C F3 DC 54 ED 30 96 D2 60 66 E6 D1 01 D1 2A +68 40 40 13 F7 4E 38 68 8D E1 E9 99 59 36 A7 26 E2 C5 EF 67 65 65 E5 42 EE 2A 7F 9E F5 F5 D1 47 +FF F9 84 55 B3 8D 35 D6 9A 2C 73 90 31 DB DF 5A 7B F5 D5 57 5F 76 D9 E5 D1 AF 3E B1 BC 56 E7 9A +D8 C6 6D 2C 7F AB 51 F9 C2 46 A3 B6 79 56 D4 B3 34 47 AA 6A EC AE 81 CA 78 A0 9A 09 95 92 58 B8 +09 F2 BC F7 29 66 D1 BC 68 23 BE 65 93 7B A8 11 DF 6A F2 1B AB 9B 49 11 AC E6 13 C5 72 04 F1 DF +04 DE 8A 97 48 40 13 AB 12 D7 98 B9 DD 6E AF A7 99 37 11 4D 4F 6F 22 A2 C1 60 E4 3D 5C BF 1C 3B +76 EC 89 27 9E D8 E8 59 1B 95 F3 A9 AF 22 F2 1B BF F1 9B AB 1B 16 13 20 21 00 D4 6A E5 4D 6E 1B +11 A6 A6 BA 57 5C 71 C5 96 2D 5B A2 B3 26 E2 8C 66 6D 40 8C D3 FB 4F C4 27 8C 97 1E E3 13 C6 77 +9C F0 53 5C C7 CB 06 BD A6 99 1B 83 06 81 B0 89 75 C6 51 5D AC B5 91 E2 5B D5 DF 13 E7 A6 EF 21 +46 13 D2 CA D0 A4 38 4E 5C 74 02 6F A5 64 B5 58 A7 BB E9 D3 8D BE B0 F8 35 AE 95 36 33 F6 B5 13 +B5 DB 6D EF 4B 5D 55 1B 66 3D F2 F8 E3 8F DF 7D F7 59 EF 2C 77 3E F5 F5 CF FF FC 9E 66 46 61 53 +8C 61 11 71 2E E3 F1 89 A1 DB ED 6C DF BE 3D CB B2 26 EC 68 48 4A D8 AA 48 F8 6B B9 66 62 DD A1 +89 B3 EA 28 FF C4 7B 8D F0 85 9A 07 13 45 A7 FA E4 91 D1 93 D0 88 96 8D 6E 3E 65 F9 A5 C4 B2 D5 +01 4C 55 AD D9 86 AB 47 AE 4E 9C 78 F0 88 D5 9A 86 47 ED AC AD AE 45 84 2C CB 53 13 C6 93 48 D4 +D7 95 95 BE 9C F3 06 E4 EB 97 F3 A6 AF 1F F9 C8 47 7F FD D7 FF B7 13 16 22 16 05 C8 C4 EC 4D 8C +15 B9 40 96 65 D3 D3 D3 0D AF 53 E2 AC 54 B4 92 B8 0E 32 9B DA 03 CA 4D DB 31 01 2C 34 70 C9 84 +EB 3E B1 07 6B 89 7E 7B 6A 56 2A 26 22 63 6C 23 DC 15 42 08 B5 B9 89 26 DC A1 31 5E D5 58 AC A1 +61 8C 72 34 A7 1B 39 02 06 AB EE 30 9D 18 1F 3C D9 D0 49 98 D9 98 31 67 AD 31 26 8E CC EB A0 60 +67 96 3B ED D6 A0 DF BF 30 23 05 51 CE 8F BE 86 20 8F 3C F2 CF 6B 55 CD 06 D4 18 13 3B 07 4E 18 +52 CE 65 CD F6 BB CC 54 1B 6A 63 EB 60 5D CC A2 42 2D E3 7C C2 35 73 4A D7 58 31 35 7A FB 53 24 +29 5D BA E1 1C 18 CB 1A 4F A8 6E 62 40 AE 9B D0 4E D8 2D B1 56 61 F3 1E E2 1C 19 7F 0C 27 2C 99 +18 C3 BC 75 CA EB 58 B6 70 7A F0 F4 A1 31 66 75 03 C7 D5 E2 F2 BC DD E9 0E 06 FF BF BE AE 92 CF +7C E6 BE 0F 7C E0 4F 56 AD 7A 95 50 D5 AA 4A 9A C4 53 54 CE AC CE DC DC 5C B4 16 9A C6 62 24 35 +37 07 49 6C FC B5 36 55 53 14 60 C4 7F 3D 91 CA 92 73 AE E6 00 54 F9 E2 13 70 0D 0D A6 5F DC 65 +AD 4D 0C AF 66 7C 0B 0D BC D5 BC 87 3A E3 5C 9A F1 B6 F8 EC 11 6C AD 2E 99 98 24 25 6C 25 4F 05 +1A EE 2D 80 5A AD 56 96 9D BA CE EB A6 4D 9B FA FD FE D2 72 2F C8 85 AB B0 E7 41 5F 17 17 17 FF +FE EF FF 56 F5 D8 5A 8C 0A 63 38 CB B2 B2 F4 C3 E1 70 9C 1B 4F 79 9E 77 BB 5D 22 8E 51 F5 66 8D +09 8C 12 A4 AA 50 13 4E 5A AB 42 55 6B 27 43 05 DD E2 E4 54 A7 55 4D 54 DF 1E E9 62 8C 6F 35 40 +5E 62 FA 8D 02 6C CD 7B 68 C6 B7 26 EE 30 DD 43 B3 BE 36 1A 75 3A 92 E9 B2 AA 64 62 68 DC DB 18 +04 6C 5E 34 1E 30 C1 02 3B A1 10 D1 FC FC E6 43 87 0E 0F 06 C3 93 BD BC F3 2D E7 41 5F F7 EE DD +7B 92 1A F8 44 94 E7 59 BB DD 9E 9E 9E 76 CE 76 BB DD E6 AE 6E A7 D3 ED 74 6B 8E 5F F5 79 5A AF +57 8F 56 33 FD 46 E5 0A 9B 2C FD E4 93 4A E6 6F 6D 20 02 20 40 57 93 B5 9B F1 AD F1 0B 99 7A 59 +3F B1 5A 9C 70 45 5E 8B 40 38 21 4D 64 16 B9 BF CD 83 27 AA 20 36 CE 0A AB 10 E1 9A 62 AD 99 9A +EA 1E 3E 7C 48 C2 79 A8 E2 B6 7E 39 FF F1 AD A6 10 A1 D5 CA A6 A6 BA ED 76 DB 39 47 44 9B 37 6F +6E EA A1 CB B2 2C 77 F5 C1 54 E3 92 58 4D 6D 84 4B 68 9C 1B C5 1C DB 10 00 B5 EB 3E 45 3B 9B 6D +36 E2 FF 4D D5 81 5B 22 D2 8A A3 25 2D 6F 52 57 93 96 A7 0F 27 20 A0 AE E2 67 8D DF E1 68 28 80 +E2 E5 52 CC A2 2C 7D BA 2E AF 4A C0 4A 3F AD E6 5D 4D C4 2C 62 EA 84 F7 25 11 9D DC 7E 55 D5 F9 +F9 F9 2C CB 96 97 97 2F D4 40 6C 25 17 96 BE 66 96 3B 9D F6 F4 F4 A6 A9 A9 A9 6E B7 DB ED 4E ED +D8 B1 23 99 0D D6 9A D9 D9 D9 3C 6F C5 39 6C 02 FA A4 49 A8 91 2C 55 65 B1 C6 99 2F 1E 10 51 7C +FA BB 5E D8 AB BD 71 26 4E B6 60 94 48 12 A8 E3 0E A3 F8 56 83 87 E0 13 7F 20 2A 62 BA 87 58 7F +20 84 AA 54 51 2A 66 D1 8C F2 C7 DB 4B 0C DD 66 BA 62 94 A8 C1 4D 87 40 8D EA 2A 05 AD 1F 87 C7 +49 8F 71 29 B0 CD B2 F7 6B C9 E6 CD 9B 97 96 96 86 FD FE 85 1A 88 AD E4 5C EB AB 88 3C FC F0 23 +6B D5 5D D2 AA 24 84 8B 25 1F 63 A1 FE 34 BF 6E DA 34 7D E9 A5 97 66 59 9E A6 93 84 57 50 C3 0E +D4 58 07 55 B8 28 44 4B 34 99 80 71 41 4F 30 CE 39 1B DF 6B 02 37 00 8A 62 B2 97 5A 02 E3 CD F8 +56 BC 01 AE 2B A8 25 43 36 76 FE AE E7 BF 44 ED F3 68 D8 D9 3A 22 73 4D 10 08 47 69 14 49 E2 59 +B1 80 0D 1A 39 3C CD A0 DA 84 79 DA B4 04 88 98 E8 64 FE AC 2C 73 53 53 DD A3 47 8F 16 6B 18 24 +17 8E 9C 6B 7D 5D 5A 5A FA CD DF FC AD B5 DC F8 45 51 AE AC F4 97 96 96 96 97 97 CA B2 18 0E 87 +9B A6 A7 F3 2C 11 E7 AA 84 A7 44 02 4C F8 06 E3 B5 C7 1A C5 D5 4C AD 58 63 C5 D5 D6 29 09 75 45 +80 85 46 5C 17 E3 E4 BD 38 A5 25 F5 6D DE 43 F3 E0 78 0F 49 9B 9B 78 0B 8D 12 85 AA 31 02 27 CD +1B 6E 38 34 42 7A 96 C6 34 5F C5 47 26 3C 5F A8 16 9C 93 29 E2 EC EC 8C 2A 96 96 96 56 1B 1E 17 +9A 5C 70 F5 88 FA FD E2 E0 81 83 C3 41 5F 55 3A 9D EE B6 6D DB 3A DD E9 95 7E D5 C9 37 AA 87 2A +EA A4 D6 91 27 DC 5A 2B 75 2B 57 22 6A 3A 1F A2 0B 3D 89 F7 DE 18 1B 73 F7 E2 CC 97 82 BA D1 5A +68 58 7B 27 A8 B5 56 96 3E 4D CF F1 DC FA 06 C6 E6 30 AA 2A 6F 8E 75 4F 9E C0 84 13 DE 0F 11 05 +62 DC A1 62 26 34 D1 5B 3A B8 DE 35 76 63 75 51 4E 89 D4 EF 74 80 AA C6 2E 9E 93 5F 74 2D CE D9 +AD 5B B7 2C 2F 2F 2D 2D 2D 9D 5E 5F D9 73 29 17 E0 EF 49 4B 1F 16 97 96 F7 EF DF FF F4 D3 4F 1F +3E 7C 78 76 76 36 EE 20 42 9E E7 59 96 C5 A9 6E 82 47 87 3A 9A AF 3A 56 5F BB DE 44 04 34 00 98 +C7 E8 85 35 37 6F A4 D4 4D 1B C3 39 57 87 88 52 B9 8A 51 6C 69 62 42 1A 0F 77 F1 44 09 BA 26 84 +AA CB B6 35 93 C6 D4 5A 43 C4 E3 E8 2D B5 58 02 1A E5 E1 E3 B3 A4 47 6B 96 32 88 B4 98 06 40 94 +A5 A5 C5 89 8A B9 4D 99 9D 9D D9 B4 69 66 69 69 69 38 2C 4F E3 6D 9D 63 B9 E0 E6 D7 28 22 58 58 +58 24 E2 6D DB B6 CD CD CD C6 98 8D 73 59 D4 1B E7 8C 6A 4A B2 AB 16 62 AA 04 91 36 9A 7C 99 B1 +E0 05 11 79 1F E2 5C 98 88 AA 40 42 63 D5 6A 1B 5F 76 F2 C0 1B 13 13 C4 35 9A A4 F1 DE 98 47 93 +77 08 12 35 12 55 18 69 AC F4 5A 7D F0 A8 83 1C 6A C3 34 B9 C6 88 34 6D A2 CE A6 8C 53 6C FC 24 +11 03 9C B3 29 2D 2C B5 A2 8D 3F 89 88 2C 51 CF DF D1 70 0F A1 22 2D 1C 3F 7E BC DF 1F AB 54 8E +DA 60 30 C6 4C 4F 4F 97 A5 EF F7 FB D1 C7 42 69 09 83 AE E1 24 3C 9F 72 81 EA 6B EC F3 0B 2C EC +D9 B3 67 66 66 66 6A AA BB B2 D2 27 4A 76 64 04 D4 D4 38 5E AC E5 68 CE 26 E2 52 9D 12 38 82 56 +D1 E6 8B E1 31 E6 D8 F2 58 6A CA 08 C7 BC 56 66 0E 63 FC 51 13 A7 BD 38 66 73 1A 46 C3 39 1F 37 +9B BB D2 0D 24 A1 AA 28 41 75 0F 71 D5 4E D0 B0 39 66 F4 30 24 80 98 2E 54 EB F4 58 F8 00 55 2E +5A 35 6C BA 6D D4 0C AF 85 85 C5 E1 B0 68 5E 42 55 B3 2C 6B B7 F3 D8 C8 A0 D7 5B 62 26 CB 0C CB +AD 56 CB 18 D6 E0 45 64 58 F8 D2 AF A6 F5 9C 58 BA DD EE 0D 37 DC B0 9E 23 CF 44 2E 50 7D 8D 52 +14 C5 33 CF 3C 7B E5 95 57 BE E4 25 2F 79 EA A9 A7 44 64 30 18 A6 78 63 02 CB C6 B0 73 55 0B 97 +64 CE 36 D5 C5 FB 10 67 A6 F4 3A E3 DE 94 2A 93 A4 0E 2F 55 16 42 74 4B 89 28 73 85 69 22 63 61 +75 BC 20 E6 73 03 A3 BD 22 1A 15 26 DA 0F 71 16 17 91 E6 EC 2B A2 40 55 06 34 EA 56 A4 EC C4 40 +74 74 B4 A5 C9 7E E2 DC FA BA 81 1B E5 89 D2 66 7D 4B 5C 96 E5 C1 83 07 9A F6 6B 9E 67 9D 4E E7 +A2 8B B6 CD CC CC 10 51 BF DF 5F 59 E9 FB B2 24 D2 A9 E9 6E B7 DB 8D A4 99 38 37 F7 7A BD C1 60 +D0 EB F5 A3 B9 1F 1B 3D 9C F0 65 DD 7A EB AD BF FA AB BF B2 AE F7 7A 06 72 1E F4 F5 24 6B 8C 73 +56 1B 11 72 EF 83 F7 2B BB 77 EF BE EE BA 6B 6F BF FD B6 63 C7 8E 2E 2C 2C A4 B0 78 3D CB 9E 78 +A8 09 08 45 44 69 13 8D 49 37 AD B6 09 D4 4F 44 89 B4 D1 9D AB 5E D0 2B DA 4A 1C 36 84 90 D8 89 +69 11 47 9D EB 17 0F 4E B9 83 00 C5 72 C4 C9 51 1A 41 7D 7D 56 F3 FF 55 98 AD 71 4B D4 BC C3 58 +A5 3E 8E 99 80 66 3A A6 4E 01 C2 CA 4A FF B9 E7 F6 A4 72 9C AD 56 B6 63 C7 8E AD 5B B7 F6 FB FD +FD FB F7 17 45 51 16 45 AF B7 5C 0C BD 40 7B BD 7E 8A 14 C6 46 E0 D6 DA B9 B9 39 EF FD 70 38 2C +8A 62 A5 DF 2F 06 FD 61 E1 CF 97 9B F6 5C EB EB F4 F4 F4 EF FC CE FB 7E E1 17 FE 45 F4 47 5A 83 +99 29 77 F5 45 E1 BA 4B 68 66 93 B0 91 43 C7 CC 37 9F E3 E7 0E D9 A5 E5 61 5C E3 FA 2B BD DD 4F +3D 79 DD 0D 37 EE DA 75 E5 60 30 58 5C 5C 40 83 7A 12 63 42 A9 36 60 F4 CC 37 2A 4F 51 3A 38 6E +26 EB 16 B5 2E A2 01 9B 12 18 4A 37 1C 83 4F 4D 9F 40 3D 5A 44 36 A3 80 56 73 6F 6D 4F 57 EB 7E +73 6F 9C D1 CB D2 27 EA 6A 32 70 13 AB 26 46 16 22 A9 20 61 E2 3A 2D 2C 06 C3 E2 1F A3 CE 47 35 +81 70 14 0F 8B 3F 89 E5 E5 DE B3 CF 3E 17 8F 69 B5 B2 AD 5B B7 B6 5A AD C3 87 0F 1F 39 7C 70 79 +B9 1F AB C3 40 55 41 00 06 83 61 F2 3D 0F 56 7A 0B 0B ED 98 0E 3E 3B 3B 9B 08 09 BD DE F2 9E 3D +CF 1F 3F BE B8 96 13 FD AC CA B9 D6 57 66 BE FD F6 DB 76 EC D8 B9 F7 F9 67 77 CE F3 6B AF A7 EF +BF 1D 57 5D 6A 37 6F A3 F9 AE E6 86 FA 8A 23 87 F4 BE 87 FD 9F 7D CE 7C E3 69 F5 5E 83 E0 E8 B1 +C5 C7 1E 7B EC D6 5B 6F BF F1 C6 1B 97 96 96 87 C3 32 CE 1F 11 76 24 BA 93 73 D6 18 13 F3 FA 93 +A1 99 9C 5F F1 03 22 E3 BD A7 8A 4D A2 71 16 8C 4B 27 6A 28 36 BE 64 8B B5 1C 13 6F A2 63 01 95 +9F 35 95 B7 A0 DA 57 60 62 32 6D 8D 84 38 5D A5 8E 1B 57 B7 81 F1 C2 47 B1 FA 67 3D C7 57 C0 B1 +99 CB 15 17 E2 04 16 13 B8 8C 3F D4 64 00 34 9F 34 1E 23 22 7B F6 3C B7 6F DF 3E 22 CA F3 6C F3 +E6 CD 44 B4 EF 85 BD BD DE 8A F7 4D B3 B4 69 76 57 1F F7 07 65 7F 58 02 58 5E EE 1D 3C 78 B0 DB +ED 6E DF BE FD 92 4B 2E BD FE FA EB AE BA EA EA 47 1F FD C6 F3 7B 9E 0F 3E A4 61 2E BE 78 E7 8B +A6 25 6B CB 79 B0 07 76 ED DA 75 F7 EF BE F7 FF FA B7 FF FD DB 5E 2B B7 5C 81 1D 5B 75 EB 36 CE +5B 95 C3 A8 0B CC 4F D3 CE 8B F4 EA CB E4 43 F7 E2 33 0F A1 5F 00 84 85 85 A5 7F 7E F4 91 6E B7 +7D E3 8D 37 2D 2D 2D C6 BE 70 AB 11 49 FA 23 CE 4F 09 DC 24 73 96 88 12 85 25 CE 7A 91 B9 D7 44 +3F 51 7D 13 5C 4B 86 63 59 86 06 AA 33 11 E4 51 CD 0A 88 7B 6B 24 34 BA 87 04 E3 A2 02 35 A7 F6 +74 D1 78 0F D1 56 4E 8B 43 63 2F 35 C1 62 AA 3A 5F 1B CA 15 76 C4 88 8A 59 99 07 45 51 3E FC F0 +23 FB F7 EF 77 CE CC CD CD 18 C3 B1 B8 D3 7A 5E 93 56 FF 21 B6 39 58 5A EA F5 7A 3D 66 9E 9E 9E +DA B5 6B 57 96 39 6B DD 9E E7 9E 0B FD A1 02 3B 76 EC 78 FF FB 7F F7 4C 35 63 1D 72 7E F0 D6 B5 +97 B6 7E F1 8D EE CA 4B 87 17 6D C5 EC 6C D6 EE 8C 37 89 05 A6 DB F4 8A 9B 78 66 DE 6E EA 86 8F +7F 59 96 FA 20 C2 CA F2 D2 83 5F F9 0A 11 65 99 BB EB AE D7 6D DE 3C 5F CF 5E 27 F0 22 A7 C0 69 +DC 14 D1 89 D8 8D 8E 17 44 8F 9B 75 19 AC CA 11 11 E7 D9 10 2A 37 FE 04 AA 73 CE D4 33 DF 08 A5 +35 6F 29 FD 84 52 F4 2B 01 AC E8 3B 9B B8 87 F8 1B 69 CC CD F1 96 C6 10 15 46 B9 68 D5 55 22 0A +24 B6 54 FD 42 38 06 81 55 B1 B0 B8 FC D0 D7 1E 1E F4 07 9D 6E BB D3 E9 1E 3B 76 EC B4 73 5F 55 +75 79 B9 B7 6F DF BE 6E B7 4B 44 79 9E 6F DF BE BD B7 BC 7C E0 C0 81 D2 4B 73 16 38 AB 72 1E F4 +75 B8 7C E0 F0 37 FF E0 B2 ED 61 7E D6 B4 36 89 B3 A4 01 93 F1 6D 46 DE A2 EB 2E E3 7F F5 93 20 +A2 8F 7D 29 2C F5 51 06 5D 5C 5A 7E E4 91 47 DA ED B6 88 DC 75 D7 5D 9B 37 CF C7 15 30 A2 90 C6 +CC E7 E3 0B 8B F0 1C 00 AA 66 C1 92 7C E9 11 CE 27 D7 41 8D EE 47 A5 36 93 44 BD 8C A8 28 59 A2 +69 73 35 7C 5C 0B 02 26 80 05 20 56 EF AA 4D EA D5 10 0A E9 0E 53 EE 61 DC 9B 0E 4E 57 51 95 62 +F1 99 E2 D0 43 7E 70 54 95 98 29 88 46 AB 77 65 69 79 A6 78 70 C7 3C 69 36 15 82 5F 5E 5E 11 59 +F3 F6 4E 29 F1 C7 B3 B2 B2 B2 67 CF 1E 6B CD 60 30 68 B5 DB 6C AC 96 93 74 8B B3 27 E7 43 5F 97 +5E 08 87 EF 9F D9 24 DD 29 58 28 23 A8 AC D2 57 80 19 2D 47 D7 5C CE EF F9 51 10 F1 C7 BE 2C 0B +BD 20 A5 3F 76 EC F8 FD F7 DF B7 B0 B0 B0 B8 B8 F8 D6 B7 BE 65 C7 8E ED 18 F5 59 D5 46 31 C0 C8 +46 4D E1 CA 8A B2 84 06 D6 01 46 F1 A1 E6 7C BC 1A 49 A4 14 9A 74 64 13 42 A5 78 41 0D 92 C8 7B +1F DB 75 A4 25 BE 81 ED 12 A3 25 65 7B 73 F3 66 9A 88 0D 63 2E 55 6E 1E 5C DB AC 52 1C BC 7F E1 +F1 0F E9 F2 83 D6 0C 6D 46 41 33 20 44 7D ED 04 FE 1F 5E 7F E8 A5 97 D8 2F 3D E6 BF F4 8D 7E 51 +96 A7 AD AC 44 D4 6A 65 F1 41 CA B2 5C 5E 5E 3E 7E FC F8 CA CA B2 B1 56 31 8C 93 EE 69 0E BD 11 +39 D7 FA BA 7C E8 3B DF BE F7 5F 77 AC E4 99 63 1E B6 AC 15 58 C6 1A 91 40 82 73 74 C3 2E FE E5 +1F 53 43 F6 6F BF 24 C7 7B 3A 18 0C 0E 1F F6 5F F9 CA 57 16 17 17 07 83 FE 8F FC C8 8F 5C 7C F1 +C5 13 5E F7 FA 5D 6A 32 03 9A EF 38 15 03 4C 5E A4 3A 3E 54 D9 94 31 64 95 CA 4F 94 A5 CF 32 D7 +8C 36 A1 B6 2F E3 DF 09 9F A5 BD 91 64 53 83 A1 8A 81 D5 34 4C 57 7F 92 20 54 5C FA 6B 80 A5 13 +0F 95 EC 5A 11 31 C6 16 8B CF AD 7C F7 F7 B1 F0 B9 EE 74 E1 BA 84 76 2C 3D A7 00 69 A9 34 A0 EB +AF A1 4B B6 63 B1 18 FE E3 D7 8B 04 C8 4E 4F BA DD CE DC DC 3C 11 F5 7A BD E5 E5 E5 A5 C5 85 41 +7F 65 6E CA EC 9C EB FC D9 87 FF 78 6A 6A EA D4 43 9C B1 9C 53 7D 55 D5 27 3E FD 3F CB C2 37 B2 +29 9B 99 92 80 A0 26 B7 02 85 0A D6 A8 D3 03 97 D1 0D 57 D2 7B 7E 54 18 E6 AF BE E8 97 56 2A 7F +D3 13 4F 3C 71 CF 3D 7F D1 EF 0F DE FE F6 B7 EF DC B9 A3 E9 FF 4F 5E 2A E6 51 50 AA 09 B9 54 D5 +7B 71 CE D4 D0 8A D2 44 98 D8 FE 22 21 3A 71 22 12 8A 98 A6 09 83 12 DE 6A 3E E0 44 08 2A 5D 34 +1A 9D CD 8B 36 01 56 ED 31 1D B9 05 22 C0 52 D5 58 04 2E 4D F0 54 77 F9 62 E6 B2 0C 83 BD FF E0 +17 FF A9 D5 42 36 65 68 86 28 B3 A8 59 32 EA A1 2D 81 72 E6 4D 11 D0 2F 33 42 B1 56 0E D2 7A DE +5D 74 CD 2E 2E 2E 0E 87 C3 E1 70 D0 5B 19 6C 6A F9 77 7C BF BC E6 A5 ED CB E7 9E 80 DE B6 E6 2B +7C F1 E4 9C EA EB 91 A7 3E 53 2C 3E ED 0C AC 63 70 C9 EC 40 A1 2C B3 3C 3B 05 ED D2 38 5C 71 05 +FD EC 9B B1 B8 6C 3F F6 20 7C E9 CB D2 2F 2F F7 9E 7C F2 C9 BF FA AB BF 5C 59 59 F9 E9 9F 7E E7 +A5 97 5E 6A 4C 9E 38 D4 13 5E 9E 34 27 A1 76 4C 46 78 D4 70 1B 55 2B BC B5 A6 DF 2F 9D 73 65 59 +A2 B1 3A A3 A1 8E 71 62 75 AE D2 B3 34 EC 04 AA 5B FF 45 9B 69 95 AB 01 56 1C 36 E9 6B E3 60 2A +16 9E 18 F6 96 4D 37 C0 1B 0C 54 CB 12 B9 A5 68 1C 3B 90 D1 10 EC 62 30 FB 0E 1E 95 12 A7 AD AC +86 90 B5 F2 EE 54 77 79 79 79 38 1C 78 5F 0E 56 FA 65 51 5C 79 99 DC 75 A3 79 D9 8D 62 8E FD 56 +E1 9E D1 D6 2B F2 F9 37 9C DE 25 D6 29 E7 54 5F 8F 3E F1 71 1E EC 6B E5 64 39 58 47 44 0A 75 CC +41 03 F8 A4 E0 52 81 6E 46 D7 5E 66 7E F6 07 E9 C8 4A F8 E2 37 10 04 65 E9 17 8E 2F EC 2E CB 8F +7C E4 23 0B 0B 8B EF FA 99 77 5E 77 FD F5 9D 4E 1B 75 1E E9 84 8B C0 18 93 9C 8B AB 03 5A 35 D6 +89 A8 C8 D6 97 45 BF 3F E0 3A 4D B7 AE DA 32 62 EB 8D C7 A5 D0 28 D8 11 E2 B4 DD BC E8 E4 43 D5 +10 6A D5 26 4D EC 4D 55 91 57 0F 22 81 CB A1 29 5C 28 96 34 0B 04 03 6D 95 D4 6E 30 2B 42 79 EC +58 FF C8 62 47 C8 03 A7 09 8C 94 D0 6A E5 D6 D8 E5 E5 A5 E1 70 A8 AA FD FE 70 BA 4B 2F BF C5 5C +BD 8B DB B3 65 D6 59 D2 E5 0F 0C 8E EE 24 FA 40 36 77 D7 E9 5D 65 3D 72 EE F4 75 EF 23 7F 76 F4 +7B 9F C8 0C 19 D7 62 37 30 06 AA 02 78 26 05 55 8B D8 5A EB 09 09 D4 68 77 86 6E BB 56 7E E1 4D +7A E4 18 3D BA 5B 01 94 3E 1C 5F 5C 2A FC 73 F7 DE FB 89 85 85 63 EF 78 C7 3B BF EF FB 5E 39 35 +35 15 B9 7C 69 B5 4D 00 2B C5 4B 53 26 4C 62 3C 35 33 46 EA B2 40 EA 2B 09 CC AC 5A 31 69 62 D4 +2A 9A A7 75 3C 69 84 EA D2 B0 A3 9B 27 10 51 BC 87 14 A4 88 9B 35 56 A3 26 BD A1 09 B0 EA D0 1D +47 FA 4B 8A E4 55 BF 46 02 31 20 A4 CA 1E D6 06 6F 88 68 40 22 0A 03 B5 04 A0 EC CB E1 C3 B4 B4 +54 12 4E 3F 1C 25 82 41 AF 77 D8 87 B2 2C 8B A2 24 22 06 AE D8 9E BF EE 96 72 76 BB BA 2E 09 60 +8C B6 B2 E7 B5 7C 14 F8 FF B8 BE AA 84 83 8F FF 3F CF 7E E1 3F 64 58 C8 3A 26 6B 0D 89 15 44 C6 +E6 CE 06 26 65 7B 8A 95 4A 8D 92 12 5B CD A7 E9 A5 37 D0 8F BF C6 BC 70 2C 1C 3C 56 B9 30 7B BD +95 FD FB F6 7D EA 53 9F 3A 70 E0 C0 C1 83 07 DE F4 A6 37 6E DD BA 95 99 A2 4B 1E 35 C0 9A F0 C6 +13 11 D1 08 CD A4 08 3B D5 4D 5C 89 18 55 93 8C 32 CF 5D 74 96 25 33 23 E1 F4 06 6E 1B 1B 76 42 +41 D7 22 10 4E F0 21 23 DE 4A E1 E5 74 95 54 B5 B3 B9 69 8D 31 0C 32 21 32 69 15 0C 28 04 3C 24 +CD D4 07 04 60 65 51 8F 1F D5 5E 91 29 05 C0 9F B6 49 30 28 02 CA 5E 24 83 67 99 DD 3E 13 DE F6 +5A 7F E3 8D B6 3D A5 2A 10 21 40 89 B1 B8 FB 77 02 DF DE D9 F2 9A D3 BB CA 29 E5 AC EB EB F2 0B +0F 2C EE FF D6 9E 2F FD 96 D1 7E 9E 5B 67 33 6B 07 59 4E D6 82 89 98 31 9E 0A 70 62 A1 40 00 48 +A9 95 E9 FC 16 7E C3 2B B0 E7 80 DE F3 05 ED 17 55 69 87 FE CA 4A 59 96 0F 3E F8 D5 23 47 8E EE +DE BD FB 6D 3F F9 B6 AB 5F 72 75 CC B1 96 BA 41 EB 04 FC C2 B8 3F 21 CE 5E 44 64 0C A9 EA D4 D4 +14 33 47 3F AE 31 56 44 27 68 8A C9 24 88 53 DD EA 61 53 EC 2D 5D B4 79 7A D2 F5 1A BA 8D E1 AD +B2 AC 62 B3 29 AC 3A E1 00 A9 3E 57 29 B5 AD 6A 81 52 85 01 06 AA FE 33 A1 24 CF F0 A2 C3 15 14 +03 2D CA 12 2A 67 E2 72 AA C3 5D 4A 80 31 FC BA 97 EA 1B EF C4 DC 16 95 00 5F 2A 42 00 AB 71 C8 +5D AF 77 E0 6B F9 CC 2B 8C 3B 75 85 8E D3 90 33 D5 D7 23 4F 7F EE F8 0B FF CC 10 34 96 9B 12 C6 +A1 03 5D 04 70 E4 DB 1F 5E 3A 7A B8 65 7D BB E5 AC E3 CC 15 79 1B 4C B0 86 8C 81 62 23 29 0E 0A +23 D4 ED EA CE 9D F2 A3 AF 35 4F EF D7 2F 7E B3 CA CC F6 02 3F 2C 15 BD C7 1F FF D6 BE 7D FB 0E +1D 3A FC F3 3F FF F3 37 DC 70 7D A7 D3 4E A9 DB 4D BA 74 DC 4C 48 A8 FA 2E 1A 6D 01 A3 B6 45 52 +0E D1 C8 0D 54 B3 04 47 A9 B9 F1 C8 26 5D FA 04 37 7E 22 CC 57 9B 19 C0 38 DE 4A 9B 22 A3 7A DF +89 9A 88 2A 14 17 6B 76 C0 B6 66 C8 12 00 A6 40 A2 C9 E3 1C 82 86 80 72 A8 C5 82 B0 60 AE 15 5A +46 86 6B 15 47 D8 88 30 E1 C6 8B E5 87 5F C5 3B B7 81 55 59 A1 81 8C 8A 2A 05 81 09 FA F4 57 EF +6E EF F8 89 A9 F9 CB CF F8 52 27 90 0D EB AB 8A 48 28 BE F7 8F BF ED 07 87 D8 F2 CA BE 87 FB C7 +9F 23 8E 15 AC 54 C2 4C 90 41 40 C9 D2 52 F2 00 32 57 76 3B 59 27 77 CE 15 59 56 3A 07 63 C0 CC +C4 39 93 18 B3 C1 2F 50 E0 40 73 33 7C CD 2E 7D F7 1B F4 B9 43 F6 E9 7D 23 2E 55 51 94 12 C2 C1 +E2 C0 C7 3F FE F1 85 85 85 77 BF FB E7 5E F5 AA 57 45 04 16 79 7D 18 E1 FD 11 4E 9A C8 DF 8A 87 +45 F7 B8 6A 82 81 4D 96 60 A4 B9 30 1A B8 AD E6 DC 78 6B 9B 81 FE B1 BD 18 C7 7C 54 07 D5 56 63 +BE 28 29 91 C1 56 4D 15 15 90 98 F1 12 C7 89 9E 56 55 F8 52 B5 5D DD A3 02 A5 AA 02 26 D8 50 7A +00 2D 87 F9 AE 66 16 CC 38 C3 D2 83 A2 B8 74 1E 6F 7B 65 B8 F1 6A 93 4F 31 40 12 D4 78 08 C1 29 +44 01 05 FB C1 99 D8 CA 27 97 8D E9 AB AA 3E 73 FF 07 0E 3C FE D1 FE D2 81 16 8E E4 2D 6D B5 30 +3D C7 64 E0 43 6E 51 FA B0 32 F4 A5 88 16 A1 0F 62 4B D2 CA 32 6B 8B 2C 03 51 B0 8E B3 16 98 39 +CB B2 CC 79 B6 1A 8D B9 8D 89 20 73 98 D9 C6 B7 5E 87 B7 BD 8A 7E EF 5E F4 87 9E EA DB F3 3E 04 +91 23 47 8E 7C F2 93 9F 3C 74 F0 E0 DB DE FE F6 B7 BC E5 2D 3B 76 5C 64 2D C7 1A AE C9 10 C4 28 +31 66 64 D1 26 B6 61 F2 7D A6 CB 36 C9 50 69 61 6D 5A 9F 69 73 35 FC 3A 61 7C AB 89 AB 92 4D 9C +E2 05 89 10 93 6C 8C 64 2A C4 E2 F7 21 84 C1 A0 E8 F7 07 C6 91 FA 68 5E 54 11 3D AB 34 F0 3A 1C +7A F4 D5 28 A6 BA BC 63 33 3A 79 58 5C D1 33 D1 57 55 CC 74 F0 C3 2F 37 DF 77 33 CD 4C 71 29 E4 +0A 85 C0 04 04 06 48 33 4F 0C B2 B2 15 38 5B 5C 82 0D E8 AB 84 F2 D9 07 FF 60 F7 97 FF 43 AB 25 +B3 6D 6E E7 9A 65 60 03 32 4A 0C D5 21 44 5D F0 2D 45 29 26 94 CE 72 41 50 E3 86 26 03 B3 5A C3 +CE 11 11 BB CC 19 2E 2B CB F5 B4 44 15 F9 34 36 5F 4C AF BB 43 1E 7D 46 FE E1 11 88 56 13 60 4C +3B 1A 0E CB E1 F0 F8 17 3F FF F9 DD CF 3C BB 77 EF DE 9F F8 89 9F B8 F6 DA 6B 9C B3 D1 D9 3F 81 +93 9A 6A 11 D3 65 13 54 6F 1E 9C 38 2B 54 07 A8 52 18 22 11 B8 D2 50 71 E9 6F 02 AC D5 D1 AC 34 +1A 35 E2 5B AB 32 B4 24 95 1D A0 BA 40 E2 F1 E3 4B BD 5E 6F 30 E8 F7 FB C3 D6 CA 8A F1 EA 1C 05 +61 2F A0 00 AF CA 42 22 0A AF A4 80 C2 41 AE D8 82 CB B7 E8 D1 65 14 75 4B F9 0D 11 AE 23 AE 6D +E7 78 FD 4D FC 43 2F C7 8E 8B A0 56 05 A4 02 F6 F0 50 17 88 0C 94 80 00 55 07 3D DD 57 7B 2A D9 +80 BE 1E DF F7 8D 27 BF F4 EF A6 5B 3A DD 81 CB 8C 73 81 9D 1A 43 C9 81 28 02 6F 88 54 2D 84 5A +43 25 58 06 33 88 C8 65 0E 10 B6 CE 32 3B 5B 30 9F 80 30 B0 01 51 58 42 7B 86 AF BE 5C DF FE 1A +F3 FC 61 7C EB B9 B1 79 83 A0 A2 18 94 E1 C9 27 9F FA F0 87 3F BC B8 B8 F8 CE 77 BE E3 E6 9B 6F +CA B2 BC F6 C6 C3 7B 49 B3 6C 72 D6 D2 38 CF 68 50 6E 18 3D 00 00 20 00 49 44 41 54 3C 2D 2C 66 +22 44 74 A5 21 88 73 29 F1 AB 32 46 1B FC D7 E8 49 00 1A F0 6B 22 BE 45 54 51 10 6B BC 35 02 58 +54 07 05 E2 6C 5E 3D 14 41 55 8F 1F 5F 38 7C F8 70 AF D7 2B CB 12 20 EB 03 09 82 87 75 19 21 04 +04 08 49 00 3C 82 87 F7 10 01 13 2E 9A A3 97 5F 6D 8E 2E 87 DD 07 21 CA 22 32 F4 EB B2 65 E3 B5 +19 98 9F C2 EB 6E A4 9F 7A 1D 5F BC 55 39 23 10 38 40 40 2C 1A 29 67 0A 65 05 79 0C CA 9E E0 6C +D5 DD 58 AF BE FA A2 77 E0 D1 BF CC 11 DA B9 69 B5 C1 66 68 2D 5C 6E 99 61 6C 8C D2 88 8A 7A AF +44 21 C2 0B 11 30 C3 58 47 C4 D6 90 61 52 15 C3 DE 58 3D 3D A7 4A A2 71 51 20 2D C9 E6 E8 6E A5 +5B AE C7 0F EF A5 17 8E E0 E8 32 92 0B 35 DA 7D 0A 88 C8 B3 CF EE F9 8B 7B FE FC E8 91 C3 3F F3 +AE 9F BD E3 8E 3B E6 E6 AA 66 54 CE 99 94 1B 3D 01 77 26 28 82 CD B4 B0 66 0C A2 59 5E A0 19 47 +4D 9B 13 D1 2F 5A 15 DF 4A D6 70 13 60 A5 D6 9E A8 66 C1 C4 CC 92 5E AF 77 F0 E0 C1 5E 6F 25 D4 +55 D9 54 23 E3 4C 25 14 6A 38 F2 13 CB DA 3C 57 D5 D2 AB 0A D8 D0 B5 97 60 69 40 BD 02 FB 8E 91 +A2 FE 82 4E 2A 04 18 46 EE 70 E9 3C EE BA 91 DE 74 3B 5F B6 43 5B 6D 52 80 7C 9D 79 46 0C A3 10 +75 44 08 28 84 0D 2D F2 F9 D7 D7 C1 C2 FE 6F FE 55 2B B3 B9 23 42 61 1D 59 0B 97 71 EE 18 15 2E +05 00 63 AD AA F3 7E 08 55 63 60 0C E5 8E 88 95 4D 89 40 64 41 7C DA 1E 40 80 20 80 A8 5A 22 0E +22 C2 2E A7 99 2D F8 BE 97 9A 07 BE 2D 0F 7C 3B A1 76 84 C6 9B 10 91 03 07 0F DF FB C9 4F 1D 38 +78 E8 6D 6F 7B DB 1B DF F8 C6 8B 2F DE 19 8D C8 46 42 62 C4 49 63 14 C1 B4 39 11 88 AA 9E B4 81 +DB 26 72 53 D3 66 3D 35 52 F3 2A CD 41 D6 E2 34 4E 04 E7 62 AE 5F BF 3F 38 7A F4 D8 70 38 6C 16 +6B E1 D0 83 06 09 28 4B 65 23 36 FA 07 94 42 50 00 A4 70 96 5C 86 BC A4 B9 69 7E D5 35 EA 0C 3E +FB A8 7C 6F FF A9 ED 01 22 B4 1D AE D8 4A 77 5C 89 1B 77 F1 35 17 D3 D6 59 E4 99 B2 25 C7 20 22 +83 E8 E1 51 2B 44 D1 37 62 E0 80 4E AE B4 81 EE DE 1B 93 75 E9 AB 84 F0 CD BF FF 93 20 7D 36 C6 +64 9C E5 C8 5B E4 B2 B6 31 C2 5C 12 81 00 55 08 D4 59 28 28 33 26 A8 B5 54 10 11 71 60 0B 62 52 +73 46 E4 20 C4 05 D1 C3 98 F8 FB 26 2D 35 CB 31 3D 4B 57 5E 22 3F 76 27 7F EF F9 70 70 F1 C4 27 +AA E2 E8 91 63 F7 7D E9 4B CF 3F FF FC 9E 3D CF BF EB 5D EF BA F2 CA CB 13 C0 E7 BA B0 66 72 AC +36 B3 A0 52 20 2A D6 10 6E 02 AC C6 91 63 34 C5 54 D0 20 11 55 93 71 5C 67 90 5B A0 89 D2 26 39 +8D 69 84 74 80 8A 0E 07 FD C5 C5 C5 A2 18 6B 8E E5 D5 59 10 47 97 0B A8 F4 9E 99 18 1A 24 76 0C +85 61 38 83 CC 89 0A A8 6B 5E 75 4D B8 74 9E 1E 7A 1A 0F EF C6 52 5F 23 25 DC AB 89 7D 0F BC 20 +37 C8 2C E6 A6 70 D5 0E BA E9 12 BA 74 87 D9 32 AD 33 6D EA 4E 51 A7 25 2E 23 63 41 00 07 B5 86 +94 60 2C 89 A8 25 82 00 04 66 99 9F D7 55 E9 C3 2F 9A AC 4B 5F D9 98 EB DF F0 73 0F EF F9 90 33 +03 66 21 43 C4 30 B6 40 ED 3F 25 02 18 AC C4 AC DE 08 7B 82 29 8D 27 32 20 86 06 E0 0C D0 D5 48 +08 CC D0 80 60 94 41 59 81 A1 25 93 69 77 2B DD 71 03 BF EA 71 DC FB 50 F0 6B E0 5F 51 5D 19 14 +4F 3E F9 E4 1F FF F1 1F 3D F9 E4 F7 DE F3 9E F7 DC 7A EB 4B BB DD 4E CD 94 1D 29 47 54 3B AC 4A +B4 8A 41 D4 48 93 12 09 D6 DA E4 E4 9F 38 B2 39 8E 36 12 01 6A 7C A6 21 48 33 AD A5 19 B2 AA 1E +94 62 CA 6B 68 C0 38 AF D2 8F F0 6E CC ED CF 0E CA 7E 60 8C F5 CC DC CA B8 F0 12 C3 DA 86 61 32 +0A 41 AD D3 76 80 2A 11 93 65 BE EA 62 6C 9F 97 3B AF A5 85 9E 1E 59 A4 C5 BE 0E 0B 25 A3 2A 4C +44 F3 33 B4 63 5A B6 CD 60 D3 94 71 8E 32 A3 CE 20 6F 69 3B D3 56 6E 5A 6D 31 16 C6 22 73 6C 0C +05 52 D3 28 6D 1F AF 9B 4D C3 2F 3F E7 A6 77 9D 49 78 62 2D 59 97 BE AA C8 F2 FE C7 19 A5 A3 40 +00 B1 02 A4 6A 88 CA F8 B2 C8 01 0A 66 A8 C0 0A C5 4D B5 D5 03 D0 1A 17 51 59 57 70 6B 4C E2 80 +51 B5 04 EC D5 B5 A8 25 BC 6D 87 FC E0 9D FC CD 67 F5 A9 7D B2 D6 B7 24 22 83 41 71 E8 D0 E1 4F +7F FA EF 8F 1C 39 F2 8B BF F8 8B 6F 78 C3 EB 37 6D DA 14 51 4E 5A F1 23 30 6A D2 5F D2 08 B5 7A +81 D9 D6 47 22 2A 5F 52 A3 B8 89 F1 F8 56 9D BF 05 8C 5B BA 29 BE 85 AA 90 02 A5 38 19 33 31 DB +94 35 AE E0 C2 DB 46 E6 77 7A A8 A0 75 58 21 04 19 7A B2 96 2A 17 2F 81 18 64 C0 06 D6 22 0B 04 +88 21 B2 0A 67 CD 54 17 AA 28 3D EA 9F 38 81 19 50 76 64 60 2C 41 0C 39 42 EE 90 67 68 B5 B9 DD +41 D6 0E 59 4E D6 B1 35 20 26 22 98 D8 15 8C A1 02 B2 88 7D 90 A6 6D 79 E0 6B FF EB 25 3F F8 79 +E3 BA 78 B1 65 9D FA EA BF F7 A5 BB 45 A1 B6 0A EA 11 A9 E5 12 20 B6 15 38 8C 16 2C 31 24 40 C3 +D9 65 42 2A 34 72 63 B8 50 64 30 96 3A B3 74 D3 95 78 E3 6D BC F7 88 9C BC 0C 54 08 61 D0 EF 3F +F4 D0 57 17 8E 1F 5F 38 7E FC C7 7E FC C7 E7 E7 67 01 58 6B 22 85 20 35 D2 48 9B 09 7E 9D F0 5E +6A AA 61 E5 F4 01 74 22 6C 86 55 A5 E0 1A 27 57 00 2B F9 C8 9A 00 0B 0D 26 F8 5A A5 B7 43 10 EF +33 C7 FD B2 50 63 47 7D E7 98 21 A2 4C 70 8E C4 43 44 09 62 19 A5 D7 A0 E4 2C BC 87 28 5A 19 BC +98 58 78 88 58 A1 6C 58 62 06 2E 9C 76 32 38 D6 AC 4D 9D 16 32 A7 AD 36 19 4B D6 90 21 C0 2A 07 +62 43 D5 AF A5 99 6B 4B 68 B7 0E 2D ED FE C8 EC 35 BF 70 B2 37 71 5A B2 5E BC C5 58 08 21 B0 88 +1B 15 BF 25 43 A0 80 B8 E8 8F 8E 34 75 62 71 3D 11 A8 5F 63 8A D5 0D 4E AE F1 AA 04 0E 14 A0 60 +22 21 EA 23 6F 13 66 78 6E 5B 78 F5 8D F4 D5 EF D0 C3 4F 4D A6 16 36 25 04 E9 F7 87 FD 41 F1 F5 +87 1F E9 7F F0 83 CB BD DE 4F FD D4 DB 2F BA 68 1B C6 E3 AE CD 4D 6A 54 FB 89 56 66 13 51 35 03 +10 18 8F 60 25 93 34 CD AF D1 9F 95 D8 86 09 60 11 A1 39 4E EA D8 96 82 14 00 52 CB A4 64 BF 8A +48 19 C4 A8 83 E6 06 03 05 8C 81 F7 6A 2D B1 81 08 8C 81 06 30 C3 DA CA 1D 10 CD 33 01 32 87 20 +10 85 0B C2 D0 00 06 C1 92 44 D6 17 18 99 55 EB 40 96 5C 46 59 AE 79 86 76 CE CC C4 06 6C A0 52 +97 94 A5 58 E2 A1 FA C6 24 00 8A 2E 7A 47 1E FF ED 42 B1 ED DA 5F D8 F0 0B 3E A9 AC 5B 5F B3 19 +91 A2 44 CC 65 03 40 5E 1C B8 34 27 0A 9A 4F 7E B2 D6 DC 74 7A BE 02 02 19 70 20 10 84 D5 02 10 +B5 19 3A 9B F9 BA 2B C2 5B 6E E7 DD 07 E5 F8 F2 9A 75 5F 10 FB 7B A9 8A 94 4F 3C F1 C4 1F FD D1 +1F 65 59 F6 D3 EF 7C E7 A6 99 E9 26 C0 A2 46 6A 61 B3 6C 51 4D 45 9D B0 50 C5 5A 3B 81 B7 E2 C1 +4D 7A 21 11 C5 34 C3 13 26 8D 61 1C C6 35 ED 57 54 65 07 44 C6 7B 24 55 86 F2 70 85 AD 51 6B 54 +C4 97 6A 2D 07 AF 20 18 4B 5A C2 58 25 86 33 04 21 72 EA 2C 42 89 52 60 09 A2 10 81 3A 10 48 A0 +44 4A 20 36 B1 0E 1C 8C 05 33 32 87 2C 47 AB 85 2C 63 E7 68 C4 A4 1B FD 98 C7 5F 0D C3 07 67 B3 +D0 F5 FD 85 47 FF 5D EE B6 CE 5C F9 C3 1B 7F C7 6B CA BA 96 6D B6 D9 CD 3F F6 FB 92 6F 15 B1 02 +E7 03 44 D4 97 A5 C2 92 85 06 9C DC 93 B7 96 EA 9C B6 39 4E 04 36 60 C0 0A 51 49 A6 2F 4E 74 66 +DE 6C BE 84 BF EF 16 F3 B2 97 D8 B5 7A 60 4F 0C D3 EF 0F 9F D9 FD F4 5F FC C5 3D 5F FC E2 17 56 +56 FA D1 9A 4C 71 AC F4 7F 34 E8 54 CD 58 54 52 EB BA C6 91 69 2C EB 95 E7 3F 66 E9 34 8D CE E6 +E9 F1 30 D4 D9 26 71 D1 8F 7D 32 B8 EE 77 8C 3A CE 6C 8C 6D 94 ED 8E 43 49 E9 E1 41 3E AC 78 AF +A1 EE 0E C6 86 A0 E0 F8 2D 19 B8 8C 4C 06 97 6B CB 99 DC 1A 97 A3 D5 56 EB E0 72 E4 39 DA 2D 75 +0E AD 96 3A 07 EB D4 65 C8 72 38 07 E3 B8 DD E5 56 3B 3A 2E C9 18 50 83 F6 79 C2 77 17 82 F1 A5 +71 B6 84 48 E6 CA BC 73 BC 58 FC 9A F8 17 B3 E1 CC 7A CD 4C D7 9A 31 68 43 83 86 10 DD 7F 04 25 +48 08 2F 0A F2 DF B8 08 14 15 27 4C 3D E0 95 54 A6 BA B8 FA 32 7D F3 ED 7A F1 BC 9E D2 BF 18 A5 +DF 1F 3C FE AD C7 FE EF 3F FF F3 27 9E 78 22 66 6E 25 D8 84 BA 6D 6C DD BE B5 EA D4 9A 7A 12 A5 +41 22 6C 47 95 14 50 35 CA 6A 96 71 45 5D 08 3B F1 B3 92 CD 5A 6F 8E 35 DC 6A 56 FC 8C 57 8F 69 +B7 13 76 30 11 AB A0 1F 5A A5 87 97 E0 4B 92 00 EF 05 91 A7 C5 15 5D D3 18 58 07 63 41 36 B0 0B +99 35 99 E5 2C 27 67 89 AC 92 81 CB D5 18 B2 19 D9 8C AC A5 2C E7 3C A7 96 53 1B 4F 34 71 65 38 +35 DC 37 26 B0 0D 4A 10 35 19 D3 6C C6 FD A7 EE 3E F0 CD F7 07 FF A2 35 FC 5E AF BE 2A 10 54 24 +10 83 01 95 50 59 3F AA 56 84 4F 3F 04 70 BA 42 06 44 55 B8 CB 10 11 C1 07 F0 14 E7 73 FC 7D B7 +D0 5B EE A0 4E BE AE 71 82 E0 F8 F1 A5 C7 1E FB D6 7D F7 DD BF B2 B2 12 F3 5A A9 51 E0 2D 4D 99 +B1 25 0B 11 6A EF 29 54 47 30 28 6E 52 9D 4B 63 AD 89 40 0D 75 2D F9 D8 35 29 4D C6 51 F5 79 55 +4F A5 28 F5 89 15 F0 4A 11 DA 89 C3 14 1A 82 27 BF EC 83 42 28 78 F5 1E AA 10 55 C3 04 85 B5 64 +2D 19 0B C3 C8 72 72 39 19 47 E4 82 CD D4 58 75 96 46 FF 1C 65 19 65 19 E5 19 32 07 9B 51 DE A6 +48 A6 CB 73 36 BC DE 39 49 23 6E 61 0A 6A 8D A1 A9 A9 6C E1 C9 DF 7D E1 EB BF 2B F2 E2 54 EE 5E +AF BE 12 D4 A1 14 30 40 E2 11 02 A2 27 91 E0 99 CF 67 7B DC 00 04 80 86 64 4B B1 84 7C 9A B6 6C +A6 B7 BE 92 AF BF 74 BD 5F 71 10 3D B0 EF 85 2F 7F F9 CB CF 3C F3 6C 2A 5F 9C 24 22 A1 10 24 B5 +19 8A 9F D7 E5 B3 A9 B9 59 D7 D7 AE 0E 4E D3 64 5A D6 CB 32 35 CD 32 AB EF 4F EA 72 DB F5 89 A3 +A5 8B 88 AC 75 B1 1F D8 48 65 15 50 0C 7D B7 F4 10 21 D3 68 BA 24 AA 95 17 D6 92 73 64 2C 6C FD +CF 65 64 33 72 19 B9 96 66 6D 72 2D 32 39 B9 1C CE A1 95 21 1E EC 1C AC 8D 13 33 19 43 96 D6 BB +88 1A 02 02 0C 05 E3 94 8D E4 26 6C 9B E6 A5 6F FF C1 63 5F FC AF A7 D7 F6 7B 42 D6 AF AF C2 66 +25 88 F7 C1 47 17 86 08 42 30 AA 04 51 39 7F 95 C4 59 C1 80 0F 6A 4A 32 41 3A 1D 64 B3 B8 EA 32 +FA E9 BB DC E6 B9 D6 3A C3 82 C7 17 97 9E 7C F2 C9 23 47 8E A0 4E 73 4D 8D 87 AA AB D4 AA 39 61 +DD 4E E4 1A 24 34 D6 8C F7 26 7D 4D 78 2B 4A A3 78 FC A8 E1 56 33 B4 96 30 5F 3C D2 5A DB 6A B5 +9A 74 1C 66 06 51 49 03 01 BC 68 E9 AB 1E 8B AA 30 4C 86 88 09 04 64 8E 9D 23 66 58 07 9B C1 18 +18 46 74 FB B3 81 89 7A 69 E1 2C B2 1C C6 21 CB 60 6D F5 6B A9 82 D3 B4 5E 4D A9 16 3D 86 04 86 +C2 90 74 AC DF 32 B7 E2 9F FA 3F 9F 79 E0 03 7A C6 B3 EC 06 EC 01 09 44 64 48 5C 0C 9A 4B 80 31 +31 9E 0F 32 1B E3 A7 BD 58 92 A8 41 16 A4 0A 0D 04 A6 F6 2C CF CE D0 1D 37 E0 8D 37 97 76 BD 86 +0A 2D 2D 2D A5 FE CB 3C 6A CF 3E 6A 33 94 74 2E D6 2A 4C 7B E3 66 02 58 68 80 B3 38 DA 78 87 05 +4A 0A 9A 3C AC A6 6E B8 D5 3C B1 89 DB 62 D2 AC 61 32 06 69 7E 25 C2 D2 D2 E2 B1 C5 9E 51 0F 80 +C0 04 4E B5 07 A2 33 BF AE 81 A8 99 E3 76 CB 38 4B D1 96 B5 0E 2E 83 CB 90 67 B0 06 99 03 33 5C +06 36 91 4D 0F 66 38 C7 CE 31 01 C2 AA B4 01 8B 2F F2 6F AC F3 B0 60 8B 00 74 BB 74 F9 45 0B FE +D9 FF B0 FF D1 DF 91 33 B3 65 D7 AB AF 6C 3B 73 57 DC A5 12 9B 3F B0 04 88 C0 7B 1E 79 C4 CE 87 +51 50 FD 9A EB A4 11 2A C0 41 F3 16 E7 F3 BC 6D 8B BE F5 0E BC E4 62 5A 5F 95 52 2A 8A A2 DF 5F +C1 A8 CC 56 45 02 4C CE D7 E4 4B E2 BA 63 51 DC 1B 37 65 D4 33 B1 82 53 C9 B4 8D 45 37 12 02 8B +0A 3A 81 B7 50 6B 79 BA 4A B3 D3 6C E5 4F 30 21 33 92 98 62 65 59 7E E9 CB 5F FE EE 37 BF 3A 2C +3D 13 C0 AA A4 00 44 41 44 12 10 54 01 58 8E A1 28 35 04 E3 C8 65 6C 2D B1 A9 D4 8F B9 5A F7 9D +AB 5C E6 CE 92 31 64 1D 13 83 08 8E 29 03 9D 46 9B 23 82 8A 68 00 B3 B1 B0 68 4F F1 D6 AD 5A 3E +FD 1F 0F 7D EB EE 33 81 5F EB F7 0F 6C BA EC 95 BF A6 8A A0 56 C1 C1 47 4A 9A D0 59 63 8E AD 5F +88 01 81 8D 85 78 4A 68 A9 AE 43 ED 79 BE FE 72 FA C1 57 F0 74 67 9D 73 7F 35 93 A2 F2 2E 49 5D +68 2D 4D 75 23 80 15 21 14 1A 61 A7 98 DB 98 FC 53 4D A0 D6 18 7D D4 A7 B8 39 66 CC 65 88 BE 85 +D4 68 B3 4E A4 19 F5 DD 14 35 A2 75 19 04 D5 67 9F 7D F6 F3 9F FF C2 BE 83 7B 74 28 50 68 A8 A6 +0C 66 A8 28 1B 30 91 31 60 03 26 18 13 9D FA 64 98 9C A3 CC 51 84 62 AB FF B9 8C 5C E5 0E 23 C3 +44 A6 0A 9B 6F D8 F8 24 58 13 E3 C1 DE 0A 98 D1 69 D1 FC 0C 97 CF FE DE 91 47 FE CD A1 EF 7C 7C +83 C3 55 B2 91 7C 18 85 06 52 5F A8 27 CA C9 58 28 C8 AB 73 54 12 C9 59 63 94 AF 4F 18 20 90 82 +0B A8 4A D6 A6 EE 34 C9 45 F4 FA 97 E2 3B CF F1 3F 3C 2C A5 9C 6C 45 53 D5 E9 E9 4D 3B 76 6C 8F +4A 56 D3 52 A3 25 80 F1 08 D6 68 C5 07 56 83 B3 91 CB A9 2E 8D 16 12 E7 35 19 0C 18 8B 3B D0 C4 +14 8B 3A 3F 76 1C E2 28 20 41 4A 55 01 F4 D8 B1 63 F7 7E E2 DE FD CF 7D CB 6E 0D AA 2C 8D BA F8 +C1 57 DA 59 11 FE 6B 6B 8D 1D 18 90 12 0A 02 83 F8 04 3F 63 02 0C 11 0C 62 AE 2D DB 2A B4 4E 74 +9A 19 03 C6 04 65 C4 34 07 F1 70 8E B6 CD 0E 57 0E FD E9 D1 E7 FF 0E BC B4 E5 EA 9F 05 36 36 7B +6F 64 A2 57 52 65 A8 A8 90 7A 48 00 20 8C 92 48 C5 9F 7B 8F D6 64 CC 3A 0A 03 24 E4 4B B8 36 B5 +B7 F0 95 97 F3 4F 7F BF B9 EE A4 BE 02 55 ED B6 B3 3B EF BC F3 96 5B 6E 49 83 52 DD FB AA F6 E4 +57 F0 AB 09 A1 E2 A6 88 C4 BD B1 AE 77 73 E4 08 B0 9A F6 2B 57 ED B8 2A 67 6D FA B0 E6 B8 54 FD +8E 6B 5D AF 86 8D 8A 6E 6C 46 EC 8A A2 38 FC C2 D3 1F FD E8 47 BE F8 C5 CF 4F DB FE 54 0B 96 C4 +31 C8 56 2C E4 68 2F 28 20 21 2E 16 F1 56 AA E8 77 70 1A F5 CF 12 39 9E FC 67 0C A9 D3 08 BF C0 +28 59 C9 55 9A 7D 26 C1 1D 08 C8 80 6D A4 F2 C9 D4 B4 EE 9C 3D 98 ED F9 ED EF 7E FC CD 0B 7B FF +69 D8 3B BE 5E 6F F9 C6 F4 95 4D A0 3C C0 06 CA 55 49 15 2A EA 03 83 89 ED C6 D7 8B 33 16 0D 00 +A0 82 44 50 42 5C 12 03 2C C3 18 74 A6 A8 3D 4F 37 EF D2 1F 79 85 D9 D4 39 F1 F7 2D 22 79 9E 7D +FF EB DF F0 4B BF F4 4B 5B B6 6C 29 CB 32 36 B6 8C 7B 53 7C 35 7A 49 63 E4 A9 51 D4 A8 EA 1F 9B +E2 5B 75 B0 20 C4 16 F7 40 AC BE 61 D2 E9 68 00 AC D4 E8 26 46 25 E2 98 C6 70 E2 6E 37 7D C0 22 +5A 16 03 48 B9 6F DF 0B 7F FD F1 4F 7D EA 93 F7 2E 2F AF 80 33 0D EA 95 4A 21 02 4C 1D C4 AF BE +1F 40 02 D4 54 E4 A0 E8 B1 76 4C 26 83 C9 60 73 D8 1C C6 C0 E6 30 0E C6 C1 E6 B0 0E 46 89 2C C8 +C0 38 B8 48 BE 33 67 CA 5E 8A EC 91 6A 28 82 06 58 4B B9 3B B6 73 D3 63 2B 8F FC F4 B7 3E F6 AE +A5 7D 5F 5F 3E 7E 6C 3D 43 6D E0 46 08 A5 A1 15 D2 92 A5 87 AA 30 B4 35 C6 68 A4 B2 9F 35 8A EE +9A 12 B9 85 5C D9 AF 71 22 31 00 A9 CA 00 3A 04 19 EA CC 72 3E C3 77 5E 47 AF BE 16 CD A5 3B 72 +58 89 F4 D2 4B 2F 7D C7 3B DE F1 EB BF FE EB B7 DF 7E 9B 31 1C 1D F2 91 C0 9F 26 CB 71 F8 35 6A +2A EB 9C AD D9 2A 95 91 10 9D 4D 51 41 45 C6 02 5A 58 A3 C8 40 54 DF 78 30 C6 E9 8B 4D 6F 03 11 +86 85 7E ED E1 6F FE F1 1F FD F1 67 3E F3 D9 E3 C7 17 7D 10 4B 41 6B 6A 18 6A 4F 56 7C 3E 43 20 +56 65 88 6A 82 A4 58 C5 D7 A8 34 89 6B E6 27 81 1B EF F1 2C AD 99 64 A1 80 01 75 5A E5 EC 4C EF +8A AD FF B4 FF 0B EF 3A F0 D8 BA 2C DA 0D D8 AF 8A 8C 79 13 D3 82 D7 CC 6A 50 55 09 15 3B 47 01 +AC AE 91 7D 0E 85 C6 BF 65 F2 AA 41 D5 72 6B 8A 66 76 98 4B 17 FD 0F DF C1 DF 79 5E 9E 39 24 C6 +30 88 F3 3C BB F2 CA 2B 5F F6 B2 3B DE FA D6 B7 DE 79 E7 9D DB B7 6F 8F 39 DC 31 BB 3F 45 B0 80 +2A CB 6F 34 F8 58 77 59 24 3E 61 DA 68 14 69 8B 29 59 A3 FD 3A AA 91 2D 3C DE E3 3D B6 84 8D C4 +C5 13 96 A0 F3 3E 7C FD EB 5F FF E0 7F FA BD 2F DF 77 7F 51 96 41 E0 8C 82 60 59 45 88 A0 60 4C +D4 95 63 21 76 80 12 4E 54 0E FA FC 4A A2 EF 39 22 64 66 DB DC A2 2F FE 74 78 EC 65 F9 DC CD 27 +3F 71 03 FA CA 08 06 43 20 46 3B 54 82 82 82 EA B0 AA 21 70 D6 4B 7F 4E CA EA 45 2A BA 63 C9 44 +86 2E 4A AF 62 D1 EA 60 D3 0E 73 F3 B5 F8 F1 57 E3 73 8F 6F B9 FC BA 3B 2F BF FC F2 AB AE DA 75 +DB 6D 77 5C 77 DD 35 73 73 F3 C6 98 98 20 15 07 49 58 27 D1 A6 62 7C 0B 27 E2 13 A2 36 43 C7 29 +82 13 9B 34 B1 37 86 F5 B5 4E 97 4D 6C C3 7A 6F 35 AD C6 03 AC E5 E5 E5 DE E7 3E F7 B9 0F 7C E0 +EE 07 EE 7F A0 2C 3D 88 54 91 19 9D ED C0 31 3C 20 0A 09 40 5E 13 06 2C 01 08 AC 2A 64 CD 8B 50 +D3 E5 EC 09 31 B8 04 1B 1B 96 BE 5D 2E 7C EB C5 D4 57 45 10 0C 01 10 05 54 94 0A 81 82 0D 45 14 +59 95 75 3F 2D 56 EB 8B 22 44 F5 4D 91 32 48 87 EA 89 C8 D2 F4 BC FA 6D 78 C3 AD B4 F5 A2 D9 1B +DF F2 33 AF B9 EB 4D 9D 4E 3B 3A DE 55 B5 28 8A 55 69 2D 63 54 2C AC AA 59 94 36 C7 F9 AF A3 23 +E3 A6 8E 65 68 51 82 6B 8D D1 AA 83 D3 D2 AF 8D 66 5D 71 D2 3D 72 E4 E8 27 3E 71 EF DD 77 DF FD +D8 63 8F A7 FC 02 26 E4 46 32 CB 64 98 EA B6 B7 04 8D AA 2C 01 C2 30 4A CC 90 E6 AB B9 70 44 01 +82 86 4A 55 54 02 D4 9F 9A 50 B3 21 7D 25 20 A6 FA 05 15 4B 6A 1C 41 2D 1B D6 10 22 AB 30 1A 43 +B1 52 B6 8E 53 CE CE 04 60 6E 48 A2 EF C6 82 0A 55 04 E8 40 D0 62 66 B4 E6 68 FB 0A 16 57 76 3F +F7 D8 BD BD 97 BF 66 76 76 36 04 1F 2B AF D4 05 B0 22 01 85 A8 4A B1 0A B1 02 5C 2A D9 92 F0 53 +24 FB A5 CD 46 DC 6B B2 76 7B 59 86 58 69 BE E6 CB 56 AD B9 E2 79 75 87 CE 6A B4 B8 19 AD E1 A8 +C1 DE 87 27 9E 78 E2 23 1F F9 C8 3D F7 DC B3 7B F7 33 32 DE 7E D8 1A E4 16 39 0B AC 11 05 98 4C +44 E2 04 36 A8 E0 97 E0 94 B5 1F CF B1 A8 82 A2 EF C2 20 D6 53 54 65 55 11 59 17 BF 60 BD AB 78 +F0 C3 63 4F FF 63 B4 B8 18 04 25 8D C5 12 20 69 4E 8D 44 D8 EA 77 DC BC B6 D6 C4 3F C1 D9 5D 9C +74 74 89 8C C8 00 12 10 0A 85 C2 75 B8 33 43 97 6F D3 95 3D 9F F9 EA 17 3F 3E 18 F4 79 D4 C0 7B +44 05 AC 23 58 94 A8 7D 09 60 45 9B 21 02 B5 B8 19 01 7E 42 54 35 E1 70 0C 60 C5 0F D2 26 C6 00 +16 D2 DE 84 B7 9A 16 C5 A3 DF 78 E4 7D EF 7D EF EF 7F F0 83 4F 3D B5 7B B2 E8 31 21 B3 94 59 12 +54 D4 CA 00 D2 48 17 50 A8 C4 3A 37 95 C9 74 EE 5D 37 27 13 01 50 79 09 34 C0 97 66 58 C2 FB A1 +78 E8 3A 1A 2B AF BF FE C0 B1 3D 0F FD E7 9C 00 A0 94 60 41 00 59 43 04 A7 F0 08 02 53 B5 5F AB +3C CC CD D5 87 C6 37 F5 9C 2C 4F 01 99 21 55 44 86 85 75 70 5D 9E 99 D5 1B B6 1F FB E6 03 FF E5 +25 37 DE 79 E3 CD B7 C6 44 94 68 82 C6 52 81 51 6B 27 7A CF A6 50 53 1C B8 B1 19 52 98 0A 0D 2A +4C E4 C8 C6 4A 06 75 D6 78 65 BF A6 BB AB 4B 1F 73 73 33 0D 55 96 C5 3F FC C3 67 7F EF F7 3E 78 +DF 97 EF 1B 0C 86 AB D7 26 26 E4 0E 9D 5C 2C 13 04 0C 18 11 02 9B 58 9D 9B C0 04 48 74 97 9C E5 +39 62 23 A2 12 A9 30 80 40 60 44 4D 10 1E 0E 57 54 50 96 36 46 EF 4E 2E EB B6 07 14 12 54 0C 00 +38 B6 44 C2 26 56 8B 50 0D CA B6 0A 60 54 93 FC 1A 0B D0 08 21 9D 25 70 46 55 D2 1F 01 CA F1 35 +A9 7A 12 06 13 3A D3 08 9E B7 0F F3 43 8B 4F FF E3 C7 FE 60 DB F6 7F BF 65 CB 56 8C 77 26 AA 46 +A9 16 F4 B8 88 8F 85 9A C6 1B C9 A6 6E 30 63 AD 31 8D A1 BA 1D 9C A6 DE 18 D4 A8 8A D5 EC 61 8B +AA 06 82 E1 AA 15 28 1F 3C 78 E8 9E 7B FE E2 4F FE E4 4F BF F3 9D EF 24 67 D9 84 44 7D 25 A0 10 +A8 92 04 15 89 AE 0A 22 C0 32 45 1A 3D 03 29 15 F4 82 10 82 06 10 A1 0C 5A 78 52 D5 B2 1C 06 AF +E2 A9 73 C9 DB 3B 17 BF FE 94 03 AC 57 5F 8B 95 43 20 55 41 E1 B5 95 27 85 14 82 07 54 03 B8 CE +DE 4E A1 94 93 DD F6 59 B3 A8 AA B5 8F 01 0F 62 38 25 18 1D 14 14 C9 47 36 47 BB 53 5E BC 45 9E +FD CE 27 BE F0 E9 5B 7F F2 67 7E 79 75 EE 54 9A 05 13 81 30 4D BA 18 6F 2D 8B 55 39 58 8D EE 5C +AB E3 AE 00 12 38 33 E3 E7 9A C8 DB 2A 0A FF F0 C3 0F 7F E8 43 1F FA E4 27 3F 79 F4 E8 F1 68 E6 +9E E0 19 01 66 E4 99 3A 03 11 12 1F 54 B8 26 D3 20 26 7E 70 AA F9 B4 6E 2A E0 59 95 CA 75 C3 10 +A1 42 72 1F 7C 31 2C 42 40 31 D0 10 0C CF BF 69 C7 2B FF A3 C9 67 4F 39 CE FA EA BB F8 E2 DB 9F +F8 35 F1 CB 9C C1 18 AA 12 DB 99 0C 73 AC E6 4E 54 4F AE B5 69 B2 56 CD 81 B3 2D 95 C5 A6 A3 1B +D0 FA CD 11 D0 CE 51 B6 D1 9E E1 CB B6 2C 7C ED B3 FF 75 C7 65 D7 DC F9 AA 1F 88 20 BD 9E F9 42 +B3 AE 1B 2A 44 05 AA 87 0B 21 30 47 7F 96 1A 63 22 84 4F 88 2A EA 74 6A 1F 17 4F 69 22 AA 66 08 +20 9E 0B 80 D9 14 45 F1 CC 33 BB FF E6 6F 3E F6 DF FE DB 87 77 EF DE 1D B9 B0 27 79 4C 55 40 C9 +72 B4 D7 25 04 D2 58 A0 2C EE 15 55 43 CA F5 E4 2A 6B A7 7C 9E 13 A9 56 3C C0 97 E4 43 5E 96 52 +14 85 1F AA 2F 51 0E 69 50 76 BA 57 BC 7A 3D CA 8A F5 CF AF A1 EC 67 46 34 56 0D 71 21 6F 53 AB +C5 CE 19 32 3E CE A6 29 46 02 9C 37 65 1D 15 26 10 80 A1 0A 43 70 8A A0 1A 02 29 20 0A 07 C9 19 +17 CD F2 BE 83 DF FE D4 5F BE 6F 7E 7E FB 0D 37 DD 0C 68 02 58 71 A4 66 89 F7 54 02 03 E3 F5 DE +62 99 41 AD FA 1A 98 D4 E4 3B 6A 6A 3C 4B 35 26 67 1B 91 10 33 A0 B5 EA 47 17 C7 A4 A2 28 9E 7B +EE A9 CF 7E F6 73 1F FD E8 47 1F 7A E8 6B BD DE 0A C6 A3 5C 27 14 66 B4 33 B0 89 4B 3E B1 21 52 +88 12 A0 CC 44 4A 46 C8 10 2A DE EA F9 F3 0F 24 6E 97 2A 54 D8 4B 56 94 32 E8 0F 7C 21 61 60 82 +A7 C5 FE D4 A6 9B FE C5 15 AF F9 95 75 0E B8 2E CD DA FB C8 87 43 EF 79 43 B0 4C 2E 03 67 31 BF +42 99 2A BA B8 48 ED E4 BB 00 96 1E A4 70 97 D6 DF 54 80 17 CD 73 14 01 81 E1 48 2D D3 8E CD 76 +F7 77 BE F2 C7 FF E5 03 FF F2 7F FA CD AB AF DA B5 7A 90 14 DF 02 A2 BB 65 14 41 48 87 44 FD A8 +39 A9 DA B4 84 A2 AF 80 99 E2 E4 B6 2A DC A5 65 E9 0F 1D 3A F4 E9 4F 7F E6 6F 3E FA 91 07 1F 7C +E8 E8 B1 63 6B 19 00 93 4F 07 38 46 66 11 59 AC 31 1C 1E 54 05 90 30 2A 15 AC 02 3E DF 78 AB A2 +76 10 24 70 E1 4D 51 94 83 95 32 14 F0 3E 1B 0E 69 61 B9 D8 7A FB AF ED 7A ED FF 48 BC DE F9 FF +D4 FA AA 22 87 9E F8 7B 3F 5C 76 79 CC FE 41 AB 85 76 8B 6D A4 B9 D4 B5 B1 08 67 AF 48 ED FA 44 +2B 3B A4 BA 25 20 36 48 E2 40 56 B5 F4 5A 80 3C 88 94 8C D5 56 AE 59 8B B7 4D 97 5F FC C2 C7 16 +56 F4 57 FF D5 AF 5D 7B ED 75 79 9E C5 08 56 0C 1F 34 4B 60 A8 56 84 BD 84 99 B0 CA 96 8D 87 25 +AB 34 71 AC 9A 00 2B 36 27 0A 21 2C 2C 2C DE 7F FF 03 F7 DC 73 CF 7D F7 DD BF 6F DF 3E 55 5D 5F +0E 3A 00 10 A1 95 11 33 85 F8 C8 F1 EA 04 26 10 21 04 35 06 4C 54 91 4B D6 2A 56 72 D6 24 7E FF +EA 81 48 F0 15 94 E2 CA A2 28 8A 50 16 E2 0B 0C 07 AD C1 D0 B4 76 BD EB 9A 9B 7E 74 FA A2 5B 36 +D4 99 E3 D4 8F B2 FB 2B BF 7F F4 D9 CF 77 32 B4 33 CA 32 CA 72 58 03 E7 28 CE 26 55 A4 C0 5C 00 +11 94 DA 6B 56 95 EC 8C 2E 61 01 01 14 6D B8 81 04 22 04 25 66 67 42 46 B2 79 86 2E 9F EB 7D E1 +B3 9F 78 6E CF DE 77 BF FB DD 6F 7E F3 9B B6 6E DD 92 65 2E 12 08 9B 25 30 6A FF BF 37 C6 34 93 +AA 9B EE 02 D4 E1 AE 64 BF 12 51 9D 87 ED 00 14 45 59 96 C5 FE FD FB 1F 79 E4 91 8F 7F EC E3 F7 +DD FF C0 BE 7D FB BD 2F 89 4E D0 E4 FB E4 8F 9A E5 AD CC 14 46 84 0D 19 67 00 04 8D C9 51 31 E8 +C0 9E 9D A5 12 67 58 17 7A A3 52 73 17 B5 84 28 41 35 88 1D 96 BE 18 0E 7D 09 5F 48 51 E6 83 7E +18 F2 26 B7 E3 B5 57 BD E1 DF BA F6 F4 46 AF 70 6A 7D 0D 83 A3 B9 F5 B9 05 88 F2 8C 8D 09 20 0A +41 35 83 05 A1 04 47 8E 8F A9 B1 F9 BA 73 29 5F 7C 69 AC 7D A3 78 9B 07 08 EC 35 30 A1 50 28 C8 +11 3B 6E E7 DA 31 B2 7D 96 77 1E 5E 7C E4 A1 FB BF FD F8 B7 EE BD F7 93 6F 7F FB DB 5E F1 8A 97 +6F DB B6 AD D5 CA 89 38 CB 1C 2A 3B B5 E2 67 C5 C1 13 DE 8A 9F A4 2E F4 D1 A5 15 33 16 01 8E 2E +AD E1 B0 E8 F5 7A 7B F7 EE 7D FA E9 DD 5F 7B E8 A1 FB EE BB EF 5B 8F 3F BE BC B8 38 2C 7D 3C 69 +C3 4F 49 9A F3 C0 54 F9 0B 04 26 8E 0E 57 4B F1 15 18 23 0A 01 1B 09 81 CF C2 E4 BA 3A 5A 19 D9 +ED 1A A0 E0 E0 45 81 61 C9 BE 2C 42 19 44 50 0E 10 0A 1E 94 39 BA 57 D1 96 4B 6F 7A CB EF 64 53 +17 19 BB BE 8C FB 71 39 C5 D3 F4 8E EC 5E 7C E1 EB 36 3A F3 08 6C 60 1C A9 A0 28 E1 C8 88 09 96 +A9 8A 2A 51 85 BA 34 40 CF 09 BD F0 84 E6 72 32 3A 63 B9 BC 88 02 D9 22 F3 D4 2F 34 08 E0 81 22 +04 10 11 F2 9C E7 BB F2 92 ED 38 BA 5C 3E 7F E4 D0 DF FE ED DF DE 77 DF 7D 77 DE F9 F2 D7 BC E6 +B5 D7 5D 77 FD E5 97 5F B6 79 F3 FC D4 D4 54 96 E5 44 55 C7 B9 58 F4 BD EE DC 42 AA C2 6C 8C A1 +18 FD 12 41 08 5E 24 AC AC 0C 16 17 8F 1F 3C 78 78 DF BE 7D 4F 3E F9 BD A7 9F 7E FA D1 47 1E 7D +E2 C9 27 17 17 16 42 A8 4B 3A 9D 2E 0E 32 04 CB 4A 20 66 38 86 61 21 43 AA 14 5D 9B F1 4B 60 52 +E8 8B EC C9 6A 82 A7 EA 5D 6B 85 5B 54 00 90 0F 36 04 0C 86 C1 17 C1 07 2F 81 7C 61 55 C2 60 A0 +8B CB E0 99 DB AF 7B FD FB 66 2F 39 05 A3 E5 E4 72 0A 7D 3D BE E7 C1 C5 67 BF 30 DD 25 CB 30 04 +11 F8 52 AD 23 EF D5 58 B2 20 D8 BA 96 62 A8 EC 45 32 55 A8 2D BE 8E E4 60 C2 DA ED 36 CF 5C AA +8A 88 75 6D C7 34 01 C4 AF D2 08 A9 01 AB 5A 41 29 0A 45 0E 31 CC D6 A2 ED 30 D3 C6 D6 4D 66 EF +82 91 61 71 F0 E0 C1 BF FB BB 7B 3F FF F9 2F 6E DB B6 ED 25 2F B9 FA B2 CB 2E DB B1 63 FB E5 97 +5F 31 37 37 B7 65 CB 96 4D D3 D3 ED 4E BB D5 6A 45 66 60 59 96 BD DE 72 08 61 38 1C F6 7A 3D 55 +59 59 19 EE DB F7 C2 DE BD 7B 0F 1C D8 BF 6F DF 81 C3 87 0F 1F DC BF EF C0 A1 C3 FD FE 0A B4 AA +02 78 E6 0F DB CE D0 CE 88 19 C6 50 66 E0 A2 CF 8A 09 90 E0 C9 DA 6A 91 89 78 EB C5 B5 D3 54 20 +1E EC AA F7 2B BE CA 99 51 50 59 DA 61 29 C5 C0 97 45 F0 43 E3 83 11 5F F6 06 B4 52 64 97 BF FA +7F E9 F2 E6 EE B6 5B CF 50 59 71 4A 7D 8D D3 2A 00 51 94 50 13 C4 4A B4 5C D5 97 C1 64 56 3C 08 +B1 35 09 88 90 0A 11 44 BD 61 33 4A 00 AA AA 18 BD 78 2A 5B 65 20 C9 AA A0 5A 9D 7C 4C 0C 28 3C +69 B4 60 5D 46 65 A1 30 A4 04 85 12 D4 B1 5A 83 16 EB 7C 57 A7 F3 B0 B2 82 38 F5 2D 2C 2C 1E 3F +BE F0 F4 D3 4F 67 59 D6 E9 74 BA DD 4E A7 D3 99 9A EA 76 3B DD 4D 33 33 79 9E 1B 63 06 83 C1 CA +CA 4A 6F 79 79 30 1C AA AA F7 3E 04 5F 96 BE D7 EB 1D 3B B6 30 18 0C 2A 77 58 55 F6 85 D6 E1 A4 +5A AF 38 83 4E 8E 56 0E 66 B2 AC 91 3F C9 A2 48 F6 18 83 10 D8 D0 09 93 B4 4E 43 2A 08 15 80 98 +70 EA 95 10 20 44 AC 52 C2 AB 2B 86 65 51 94 65 19 8A 3E 95 65 7B D0 2F 8B A0 4B 03 B7 E3 B6 F7 +EC BA FE 47 67 76 DC 62 5C EB 45 B8 8F F5 D6 7F 55 04 01 04 1A E0 87 44 A4 6C 40 22 A2 DE 28 29 +69 2C 78 1A DD 8B 35 C1 99 34 A8 52 35 C3 B1 AD F3 8A 62 58 E1 45 7A 73 54 07 6F 9A AA 30 A6 16 +04 63 48 05 5E 21 B1 07 A3 57 28 C5 DC 67 CB 6A 1D 19 87 6E A6 F3 5D 3D B6 84 95 12 54 B3 AE 42 +90 7E 7F 30 18 0C 8F 1E 3D 5A 9B 19 A3 D6 42 89 DD 02 8C 35 99 4F 1A 5A 87 5B 5F 64 63 9E 80 3C +43 6E D9 B2 E6 4E 99 61 49 A0 1C 9B 86 87 2A E1 16 CC 20 01 BF 58 B4 38 82 94 A4 4A A2 C6 8B B5 +28 45 5B F0 81 58 8A 42 BD 1F 96 85 16 7D 94 45 D6 EB EB 62 6F B8 1C 5E 32 BD FD 9A 57 FE C2 FF +E1 5A B3 AE B5 61 50 75 12 39 85 BE B2 A1 00 53 7A B1 46 E1 29 18 68 A6 65 11 77 A9 6A 88 5F 87 +B5 0C 58 94 60 F6 44 36 3A 51 0C 85 58 CE 83 0D C4 57 7E 17 36 E3 91 B0 89 F0 ED 69 7C B9 27 3D +45 05 5E 94 34 56 E0 8D F3 04 31 69 08 1A C3 EE 10 02 60 0D CD 76 D4 39 A0 18 0D D8 98 0F 47 7F +AE CE 28 1C DD FB E8 C4 8D 3F C5 46 84 08 86 B5 45 EA 00 AA 48 89 D0 F8 44 12 BB E2 28 62 DA E9 +19 DF 89 0A 34 20 08 FB 90 A9 2A 08 22 45 29 24 22 DE 0F 25 A8 2F 51 14 1A 4A F8 82 8F 2C 0D 86 +EE 9A 72 D3 95 AF 7E FB FB A6 E6 76 1A FB E2 77 8D 3B 85 BE AA 40 04 A2 04 82 A8 16 01 54 C0 32 +F9 A0 CE 42 02 59 07 66 04 2F 44 FD AA 60 93 81 88 37 56 BC DA B8 16 19 03 06 C5 1A EA 16 1E AA +1A A0 5A 55 36 06 55 FF AF 84 5E 64 9B C1 0A 79 41 10 F8 A0 00 B4 D4 D2 43 02 BC D7 C2 23 04 25 +68 E6 68 53 9B 66 3B BA B4 72 01 91 43 D6 92 18 2F 88 A2 A2 69 49 F3 01 36 A8 06 02 43 84 55 28 +B6 33 DC 98 FD AA 23 14 05 41 08 AC 8A 32 50 08 A5 48 09 20 32 1F 4B 0F F1 14 4A 2A 0A 19 14 BA +D2 A7 83 47 D1 B7 37 BD FA 67 DE 77 C9 B5 AF 7E D1 1F 39 C9 29 F4 55 14 21 C8 B0 A0 98 AD A1 85 +16 25 9C 55 63 48 5A 5A 16 E4 1C D8 28 59 22 D5 58 35 84 4D 09 A0 2C 03 73 E0 9A 7F 88 14 77 63 +00 00 0F 7E 49 44 41 54 19 9B 3D 00 70 62 55 4B 63 33 46 10 4F CC 41 EB 4E 26 D1 60 10 5F 87 76 +F5 CC 9A 1F D5 20 0F 40 B5 56 06 88 47 10 92 20 BE 44 28 46 7C CB 9C A5 ED 68 F3 34 1D 58 D0 41 +79 41 F1 9B 4F 2D 3E 68 10 F6 55 86 3D 8A EA 0B 54 63 90 99 2A AB 7B 3D F1 A3 0A 60 50 8D A8 3C +44 A9 F4 A6 0C A5 4A F0 1E 2A F1 3B 54 55 04 CF 45 29 C3 01 F5 87 BA B0 84 E3 C3 99 6B 5F FF 1B +D3 3B EE B8 E4 DA 97 9F D5 87 3D 85 BE 6E BD E6 CD 3B 5F FA AE 7D 8F DE D3 1F 80 2D 19 03 43 2A +01 20 1D 16 70 56 9D 01 C7 1A A2 30 B1 34 33 94 C9 7A 50 B4 02 15 20 EB 40 A4 40 09 40 5C 00 29 +95 05 41 8D 65 66 47 80 E5 22 A8 65 55 C3 42 46 21 84 98 CC 18 B9 BD DC 88 AF 8E 33 69 12 DE AA +12 72 80 94 5B 17 0D E5 18 5F 09 5E 83 D7 50 A2 F0 3A 2C 50 F4 69 E0 51 2A 79 1F CA 00 36 04 42 +6E D1 C9 60 CD 98 49 70 21 0A 21 B3 95 C9 21 A2 A1 A4 10 34 78 F5 96 A4 54 19 70 20 F5 04 A2 20 +36 97 20 6C 05 0A 29 4F 90 96 AD 1E 30 55 20 0A 18 B9 CF A1 28 0B 17 84 55 B4 2C 87 DE 4B 55 7E +AA 80 2A C4 B3 F7 EA 4B 19 94 58 EA 85 BD 87 CD 2D 3F F4 BF BF F4 CA 57 6F BD EC A5 6C CE BA 17 +F3 14 FA 9A B5 E7 AE FF C1 F7 86 20 FB FE F9 2F C9 C7 1A 91 A3 26 91 C6 C2 1A 31 04 32 C4 08 CE +C2 1A 90 2A 3B 65 22 4B 86 8C 40 C9 97 92 FA 1A 87 4C 98 09 14 00 10 89 75 42 04 26 51 88 31 19 +B3 23 2A 09 C6 65 01 44 60 41 80 84 8A C7 49 66 14 95 20 AE A1 5B 7C 07 75 7D 17 4D E6 30 43 7C +45 21 08 01 A2 28 02 8A 02 E5 10 CB 03 1A 0E C4 97 1A 84 18 42 20 C3 1A EB 09 5D C8 8A 9A 84 50 +A5 6E 8B C4 2A 66 90 A0 DE A3 10 18 11 23 50 A5 10 E0 83 1A 26 5F E4 59 3E 84 42 3D 84 60 62 0C +25 AE 3C 5C 11 85 AB 5E 29 36 9A AA C6 4B AC BC 54 84 20 BE 14 55 94 7D 23 25 89 68 10 2D 7D 50 +C5 A0 C0 42 3F 3F DA 9F BF E2 AE 7F 79 C3 0F FC 0A AF 9B 00 70 86 B2 0E 46 77 3E 7D D3 7F F7 FE +20 6E E5 F8 F3 BD E3 FB 8E EE 7B DC 5A 61 22 26 38 4B 44 CA 04 E6 60 32 66 85 B3 0A 68 2C 10 CD +C6 1B 06 1B 65 10 8C 1A 62 05 8A 3E 19 26 B2 02 82 B1 08 5E 88 61 2D 88 B5 2C 87 CC 44 AC 04 5F +94 CE 58 6B B9 34 96 63 55 B4 11 17 3B E9 54 5D C8 84 EA A9 22 D2 81 45 C1 16 12 00 66 88 0E 0A +19 0E 35 78 84 21 CA A1 0E 86 54 14 28 4B 1D 16 1A 3C CA 40 A5 57 1F A8 28 D7 93 8E 71 A1 C8 30 +D0 8A C7 4A 40 E1 B5 F4 54 7A CD 72 8E A6 9A 0F A0 42 41 54 0C 0A 66 66 B6 A1 00 01 64 40 5A B1 +7F D8 42 B5 72 3E 26 A3 2B 62 53 88 97 80 58 AA C6 97 F0 25 42 49 52 6A F0 28 BD 0F 82 61 89 41 +A1 87 17 78 EB 2D EF FE 89 B7 FD 7B 32 EE 9C 29 2B D6 E9 CF B2 59 E7 8E 9F FA 20 80 03 BB BF F6 +C4 83 7F 95 3B 2B BE F7 DD 07 FE 9C A5 30 46 AD 81 31 64 86 C2 50 67 89 99 40 6A 2D AC 51 00 D6 +46 37 21 AA 2A 4A 0A 1B 63 4E 06 0A 64 16 D6 20 E6 D2 38 CB C4 5A 97 6C 28 D8 94 31 1C 6F AC 3A +C3 86 41 10 6D 50 39 C7 B0 1A 55 D1 17 4A A4 4F 25 EF A9 2C 34 28 49 40 59 A8 2F A8 2C 50 0C A9 +18 4A AF AF C3 21 4A 0F EF A3 33 0E 21 FA EC 2E 78 31 B5 43 42 14 12 D4 07 14 1E 22 3A 1C 0A 33 +0F 0D 39 AB 96 D9 97 0A 81 F7 CA 5C 2A 89 B5 96 03 08 12 BF 31 09 55 B5 15 0D 31 D9 8B 45 11 24 +0C 45 29 C0 97 4A 40 51 A8 04 94 7D F6 25 0D 8A 50 7A 88 A2 2C B1 D4 93 99 2B 7F 70 E7 75 B7 DD +FE 43 FF DA 66 2F 8E 57 75 FD B2 B1 E8 F2 45 BB 5E 76 D1 AE 97 01 28 87 BD B9 CB 5E 89 50 10 D3 +3F FF E3 07 17 F6 7F 47 81 9C F1 FF B6 77 FE B1 76 D7 E5 1D 7F 3F CF E7 F3 FD 9C 73 7F B4 B7 B7 +05 2F A5 3F 2E A5 2D 2D 37 A3 2D 0D 65 16 17 37 0C 53 43 C4 88 71 8C 18 67 E2 86 AC 12 97 10 59 +88 74 1A 63 64 03 67 A4 B3 4C E6 36 C3 4C E6 D0 2C CB E6 8F 99 E9 64 06 27 43 05 1C 98 9B 50 3A +6C D0 8A 5D 69 0B 6D EF BD E7 7C 3F 3F 9F 67 7F 7C CF 6D 2B 86 51 69 CB E9 C5 FB FA E3 E6 93 93 +93 9C EF F3 BD CF 39 DF CF E7 79 3F 3F 8C D1 76 0B 80 B8 D9 CE AB AD 16 81 D4 70 33 E1 A9 29 D8 +EF 15 E0 1B 52 CF 4D 93 7C 6A FC D0 5A 35 55 D3 BB D4 58 AB EC 34 7A 5F 39 0A 64 9C 83 AB 2A 10 +B1 8A A1 DC 34 30 6B B6 AD CD 11 AD 91 5B 44 4D 13 2D 2F 62 14 29 46 11 41 CE 1A A3 FA A4 39 23 +A6 52 07 4D 19 A5 20 26 0D 19 21 51 27 91 00 A5 CC 81 9F D8 E6 02 45 91 32 52 46 48 28 19 3E C2 +18 8D 51 8D 45 4A B0 56 2B 52 21 4A 41 8D 4D 6A 8C 80 99 B3 21 0B 61 62 B1 9A A5 00 DC C4 6B 6D +D3 FC 53 8A 94 0C 55 44 AF 2A 2C 99 45 50 D7 D2 0D 25 24 6A BE D8 47 67 74 74 ED 35 1B AF FD E4 +E0 C8 D2 BE 98 FF 32 B3 21 AA D6 D0 BA AD EF 6C D6 4B C6 B7 C4 CE 61 B6 6E CF E3 FF 3A F9 AD BF +0A 64 90 66 AC 51 6B D0 AA 10 B3 1A D3 48 4E 52 59 6E 04 A4 AA 62 90 F6 1E 44 BD 5C 0D 36 AC 95 +81 12 39 A3 AE 12 43 30 4E 5D 45 A5 A8 31 25 06 B5 95 12 93 61 B5 56 8D 75 AC 6C 39 4A B6 44 6A +20 8D 2C 4C 59 72 B1 AA 92 52 92 22 31 22 27 8D 5E 7D 40 4E 14 A2 86 08 1F 10 22 7C D4 4E 84 CF +48 05 29 69 2A 14 0B C9 B1 6A 84 B3 15 51 A8 22 65 29 D2 2B 27 08 51 9D A3 CA AA 61 89 81 6B D2 +E6 31 45 44 B3 85 F5 A2 9A 4A 33 43 9B 04 59 93 8A 31 0E 52 44 25 A5 D4 8C B8 6B E6 CF A7 A8 9A +39 65 94 24 29 C3 47 9D A9 29 46 F1 41 BB 81 86 57 BD F9 D7 7F 67 C7 E0 C8 58 BF CC 3F 0D D9 3B +4B 96 4D 34 8B D1 65 13 1B AE BC B1 A4 F0 EF F7 BE 2F 76 0F E6 CE 91 E9 23 87 2C 0B 19 54 16 CC +60 92 9E 52 EA 0B 33 9A FC D2 CA 36 09 FC 4D D6 26 D8 1A 6F D4 59 31 44 D4 C5 60 1B 95 23 67 09 +E0 14 A5 69 68 0A A8 B1 D1 58 34 E3 7D 88 32 B3 53 65 62 91 12 4A 2E 0A A4 A0 A5 A0 F6 EA BD E6 +84 92 A9 0E 98 E9 AA 8F 1A 02 BC D7 5C 10 12 52 22 9F 50 37 7F 23 66 65 8D 17 65 7C 7C DC B9 5F +22 5F F3 97 85 88 F6 ED DB 37 33 13 80 D2 2B 43 3B 4E 2F 4C AD B3 AD B2 92 50 16 6D D4 C7 90 D0 +AA 20 42 3E 13 7B 61 40 0B CD AA B1 6A AD 02 48 31 13 81 4D 33 99 23 36 F5 C0 8D FA 53 12 72 56 +CD 36 17 C9 52 62 24 1F 90 B3 CE 74 E1 83 D6 41 0F 4C B9 45 6B DF 70 D5 7B 3E 33 B8 70 C9 99 33 +FF 25 39 9D D9 66 AE 35 E4 5A 43 00 DE FE C7 5F 65 63 9F 78 F8 FE 1F DE FF D9 56 95 6D 65 FC F4 +B3 CF FE F8 31 67 B4 49 89 67 46 E3 9D 00 88 B5 32 00 09 01 D6 C2 54 6C 18 9E 60 58 2B 47 3E C1 +1A 75 4E 5B 95 B2 A1 16 19 66 25 AB CC 4A 04 90 B8 76 00 60 8C 17 6D 94 0B 00 90 82 18 B4 14 F8 +A0 29 51 5D AB 8F 94 92 D4 5E 3B 35 42 D0 6E 80 2F 88 05 DD 0C 9F 90 05 1D AF CF 4D 6B CA 20 C2 +82 05 0B AE B8 62 EB 2F EA FD D6 DA 8F 7F FC CE 15 2B 56 C8 C9 35 ED 7E 19 18 63 EE BA EB 2F BE +F3 9D 5D D6 06 60 00 78 0E 00 11 1D 39 32 F3 DD EF 3E 0A 78 28 7C 84 12 85 42 A1 A0 9B B0 B0 68 +29 28 05 3E 2A 91 80 38 31 75 13 89 0A 08 45 60 0C 97 AA 39 3F 34 35 F7 CA 06 44 DA 84 54 73 46 +49 2A 99 63 D2 2C 29 65 4A 09 21 22 65 E4 A4 5D 8F 43 D3 64 46 37 8E 9C FF 1B EF D8 76 DB D0 82 +91 33 64 F8 49 42 21 F4 C6 79 4D 4E 4E 5E 72 C9 A9 A6 CF BC 18 07 9E D9 FD 83 FB FF AE E5 E8 BF +BF FD 4F 9D A9 FF 1D 60 AD 0C 9C 45 53 61 64 18 CC 60 43 96 95 99 AC 05 1B 32 D0 96 EB 35 D2 77 +16 D6 82 7A 6F 80 61 38 43 EC 60 00 32 C2 04 67 4D A3 8D A6 2C 02 85 C0 07 4D 19 29 51 4C EA 3D +62 D4 99 AE D6 11 D3 1D 2D 05 33 01 3E C3 27 EA 04 74 03 0E 75 E8 99 C3 BA F7 A0 86 4C D7 5F FF +BB 9B 37 6F BE E9 A6 F7 9D 38 99 AD EF 3C F3 CC 81 7B EE F9 9C EA 61 80 8C 74 1F F9 D6 DF 57 48 +8B 07 65 E9 22 5D 32 84 D1 61 AA 1C 06 5A 18 70 68 39 AE 1C BB 16 AC D1 E6 38 DB B2 CC 46 C1 0A +34 31 19 60 36 5B A8 14 88 20 45 8D 99 4A A1 54 90 0B 52 D2 92 34 44 09 09 07 67 D8 8D 5D 7E CD +7B EF 5E BA E2 E2 BE 18 7E A2 5B 4E 4E 4E BE 42 FE 7A FC E3 1F FE 46 67 EA D9 01 E7 7E F8 BD AF +4D 3E F8 A5 8A 95 09 ED 4A 89 61 2B 1A A8 60 0C 59 15 B6 6C 0D 0C 29 31 5A 2D B6 AC AE 22 C3 A8 +2A 42 AF 09 0A 88 C9 56 62 0D AC 25 26 AA 58 49 21 82 54 44 0A B2 C0 47 2A 49 63 D2 AE 47 4C DA +E9 C2 47 AD 23 EA 88 90 E1 33 D5 19 75 A0 69 8F 03 D3 F8 D1 7E 79 7E 06 D6 9A 07 1F FC CF 4D 9B +36 9D E9 FB 70 2A 3C 77 68 FF 1F BC FD B2 D8 9D 5A D4 96 B1 85 58 32 AC 8B 87 E0 1C DA 2D 1A 6A +C3 B9 66 80 11 1B 86 A9 50 B1 30 C3 1A 58 03 05 1D 0B 84 03 50 A1 98 7A 42 AE 0F D4 DB 19 47 8D +19 21 A1 0E 3A D5 D1 D6 D8 A5 D7 6C FB EB F3 C7 27 FA 65 EC 0B FC F5 95 AE 64 BD E4 F2 37 35 8B +95 13 AF DF 7A F5 4D 95 B5 07 F6 3D FD F9 4F DD 52 71 69 2B 66 EA E9 CA 6A C5 64 21 CC 30 96 5A +8E EA A8 2D AB D6 28 9B 26 B0 0F B6 D6 A0 18 CB 55 EF 60 01 9E ED 2E 33 DB 8F 09 25 8B 8F 92 B3 +76 3D 42 44 08 5A 47 94 82 3A C1 67 C4 42 59 90 32 EA 88 99 48 53 5E 6D 6B E1 90 E6 DB 6E FB E0 +C4 44 DF FE 37 27 C9 A2 D1 73 B7 7D E0 CF 76 DE FE FE AC D4 89 3A 10 31 50 01 D4 3C 8B 20 51 55 +D5 29 84 28 25 4D 86 99 C1 46 89 C9 42 7A C2 18 A8 28 41 21 8A 92 20 45 45 54 04 75 90 94 E1 03 +66 3C 8E D4 3C F0 9A 0D D7 DE F4 D9 D7 AC 58 D7 6F 8B 8F D3 AF CA 6B 8C 9E 73 FE E8 39 E7 03 58 +B1 E6 D2 B5 1B 5F 4F 80 6A F9 87 1D 37 1F 7A F6 47 5A D9 E7 0F 3F 1F A7 0E 54 46 DA 4E 07 1D 5A +15 2A 4B D6 28 A3 19 62 56 88 94 48 5A 56 D8 30 41 99 04 04 62 D6 2C AA C8 82 52 34 44 C4 08 51 +E4 AC DD 00 9F E0 33 52 A6 24 E8 26 88 C0 47 84 6C 16 2C 5E 7A CE 9A 8B EF FC E4 4E 6B ED C8 C8 +C8 19 3D 4E 9D 16 8C 31 2B 57 AD CF 62 EA 94 5B 16 DD 48 CE 2A 5B 32 19 3E A0 ED 00 80 A0 C6 34 +B5 87 D2 44 0F 41 60 63 68 36 9F 47 14 5A 54 7B A3 6C 34 65 2A 8A 52 50 07 4C D7 74 E8 A8 B6 C7 +7E F3 5D B7 7E FA DC A5 2B FB 69 EA 2F D0 37 7F 3D 86 B1 76 74 C9 79 CD 7A DB 47 EF 83 AA B1 D5 +03 FF F6 A5 EF FD C7 17 2B F6 BB 1F FF F6 80 C9 6D A7 0B 5A 6A 0D 9C 23 C7 B0 95 5A 52 85 46 0B +90 B0 E1 A6 15 65 C9 A5 29 D8 28 05 AA F0 51 15 08 A9 D9 24 C0 27 F8 82 54 10 12 62 46 9D 30 13 +69 E5 9A AD B7 DE FE E9 E5 E3 E3 E6 CC 6B DF A7 91 85 8B C6 56 5D 74 F9 4F F7 3C 54 27 3A 5A 6B +65 C0 A4 5A D0 28 CA 4E 51 8A 82 60 8D 72 51 22 38 4B B9 88 90 3A D3 F4 90 42 CA CA 4C 05 5C 9A +50 74 46 16 F2 5E 3B 91 0E 4D 69 FB BC CB 7E 7F FB A7 CE 36 67 C5 D9 E0 AF 27 62 67 33 26 AF BC +FA DA 2B AF BE B6 EE CE 7C F9 BE 9D 2C 69 D7 63 0F FC F4 A9 47 16 0C A0 9D 30 60 94 0D 9C 55 C2 +AC 1A 4C A2 20 4B AA DA 0B F8 37 25 31 B1 00 40 9D D0 6C D1 92 20 66 AA 13 52 46 2E 38 EA AB 0B +D7 6F B9 E5 23 9F 18 BF F0 C2 FE 59 FC 32 59 3E 3E 7E EB 47 3F B1 E3 63 EF 7F 7A F7 E3 CD 2B A2 +5A 04 50 2D 4A 31 A2 D5 82 31 C8 85 2C AB 82 72 56 00 A2 D2 74 40 6B 26 C9 03 AA 5A EA 44 39 51 +CE DA CD E8 D4 7A A4 A3 A3 17 5C FE EE 0F DC 73 DE F2 B3 F1 B6 9C 5D FE FA 02 06 06 87 AF BF 61 +3B 80 3D BB DF F6 F4 EE C7 FE E5 73 77 1C 3E BC 6F A8 85 B6 43 CB F4 AA 41 99 60 B8 49 F2 47 CB +A0 CE A8 18 B9 1C 17 57 8B 20 64 F2 19 59 10 33 3A 91 62 46 37 F2 F2 D5 AF BD F9 C3 3B 56 AD 5D +DF 4F 0B 4F 81 D5 EB 36 DC FC A1 BB EF FC D0 8D FB 7E BC 0B 00 40 21 69 48 18 CE DA 76 34 90 D1 +76 6A 0C C4 40 09 99 C1 44 2A 1A 53 53 C0 4C 4D 5A A0 02 75 C2 4C AD B5 D7 6E 42 37 F2 E2 E5 9B +7E EF E6 BF 5C B1 AA 3F D1 80 97 E4 AC F6 D7 63 AC 5E B7 F1 C2 8B 36 AC 99 D8 A2 92 1F 7B E8 EB +5F FB C2 0E CD C1 20 55 06 C4 68 59 34 05 CD CE A8 00 B1 F9 FD 50 E4 D2 0B A0 8A 22 64 A4 DC DB +0C A4 42 63 2B D7 FD C9 1D 77 5F B0 7A 4D 7F ED 3A 45 D6 AC DF B8 FD 8E 7B EF DC FE 9E 83 FB F7 +3E D7 E9 D6 09 DD A8 D3 91 86 DB 18 6E EB 40 26 CB BD 4E DC 95 25 50 6F A6 58 CA 0A 86 12 85 A4 +3E C1 07 9D F2 F0 C9 C0 0C 0E 9F BB E9 86 ED 3B 97 8D 5F D4 6F CB 5E 94 57 3A 9E 75 EA 04 5F 07 +DF B9 77 E7 47 F6 3C F1 7D 12 7F 68 FF 4F 1C 2B 13 86 5A 10 85 E1 A6 20 A4 57 C9 D4 24 DD 15 81 +28 7C A6 6E C2 E0 C8 D2 73 C6 2E FE E0 ED 77 AD B8 60 75 BF 4D 39 0D A8 6A 67 FA E8 53 4F 3E FE +E7 1F FE C3 A9 E7 F7 55 8C 81 0A ED 4A 07 1D DA 15 9C 51 66 72 16 2D A3 6C A8 00 28 1A B5 B7 3D +A8 85 EB C0 21 11 B5 17 0D 8F AC BD E1 96 8F 8D AF 9E 18 5E B8 B0 DF 36 FD 1C 7D 8E BF 9E 2E 9A +0E 3F 3F D9 B3 EB BE BF F9 53 CB F4 E4 E4 43 71 FA 60 23 25 C8 EC 38 2E 51 64 21 05 42 86 6B 0F +6D DC F2 5B 31 CB DB AE DF B6 F9 B5 2F DD 67 74 CE F1 FD 07 BF F9 95 7F FC 5B 6B 68 F2 D1 07 24 +76 2B 03 67 D5 19 18 C3 86 B5 62 05 60 09 59 11 85 45 50 44 53 01 55 23 AB 7F ED 0D AF BB EA CD +BF FD 96 77 9E 38 7E F1 EC E1 55 E2 AF 2F E0 1B 5F F9 FC FE BD 4F B9 56 EB C9 C9 47 1F FE AF 6F +12 51 99 9D 42 B1 79 EB 1B 2F 9A B8 74 E1 C8 E2 B7 5E 77 A3 B1 73 63 FF F3 B2 C9 29 FD F3 17 3E +13 BA 53 FF F3 C4 0F 1E 7D E8 7E 26 00 DA D4 CF 1D 7B 8F A8 AE 9D D8 72 D9 15 57 F9 90 46 97 8C +5D 73 DD 7B CF E6 D8 48 9F F5 82 33 C4 9B DE FA AE 66 F1 B3 BD 7B 5E F7 C6 47 0C B3 A8 12 48 55 +2E DE B0 65 F9 CA 57 C3 A3 FF 64 B0 55 75 DD BB FF 08 C0 CF F6 EE D9 35 F9 C8 31 49 F9 C4 34 49 +29 65 D5 9A 89 35 EB 37 F6 E3 02 4F 95 57 89 BF 1E 63 D9 CA D5 CB 7E 65 BC F3 FF E1 D5 7A 1F CE +A2 94 8E 79 E6 79 49 E6 FD 75 9E B9 C4 BC BF CE 33 97 98 F7 D7 79 E6 12 F3 FE 3A CF 5C E2 E7 E2 +03 93 93 93 FD BA 8E 79 E6 39 19 8E FB EB DC 15 0B E6 F9 D5 61 7E 3F 30 CF 5C 62 DE 5F E7 99 4B +FC 1F 94 BD 62 D3 EE A5 8B 6B 00 00 00 00 49 45 4E 44 AE 42 60 82 3F $EndBitmap +EndData +$EndBitmap Wire Bus Line 3900 2450 3850 2450 Wire Wire Line diff --git a/demos/sonde xilinx/sonde xilinx.brd b/demos/sonde xilinx/sonde xilinx.brd index d56ea67951..b7d34f7a73 100644 --- a/demos/sonde xilinx/sonde xilinx.brd +++ b/demos/sonde xilinx/sonde xilinx.brd @@ -1,16 +1,17 @@ -PCBNEW-BOARD Version 1 date 17/05/2010 10:13:09 +PCBNEW-BOARD Version 1 date 18/12/2011 08:24:06 -# Created by Pcbnew(2010-05-16 BZR 2378)-unstable +# Created by Pcbnew(2011-12-16 BZR 3311)-testing $GENERAL +encoding utf-8 LayerCount 2 Ly 1FFF8001 EnabledLayers 1FFF8001 Links 66 NoConn 0 -Di 35890 24340 77410 45660 -Ndraw 19 -Ntrack 271 +Di 35829 24279 77471 46581 +Ndraw 17 +Ntrack 265 Nzone 0 BoardThickness 630 Nmodule 29 @@ -20,7 +21,7 @@ $EndGENERAL $SHEETDESCR Sheet A4 11700 8267 Title "" -Date "17 may 2010" +Date "18 dec 2011" Rev "1" Comp "Kicad Demo" Comment1 "" @@ -31,7 +32,6 @@ $EndSHEETDESCR $SETUP InternalUnit 0.000100 INCH -ZoneGridSize 250 Layers 2 Layer[0] Dessous signal Layer[15] Dessus signal @@ -59,6 +59,7 @@ PadSize 620 900 PadDrill 320 Pad2MaskClearance 100 AuxiliaryAxisOrg 0 0 +PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions false) (excludeedgelayer false) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 0) (pscolor true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) $EndSETUP $EQUIPOT @@ -66,112 +67,112 @@ Na 0 "" St ~ $EndEQUIPOT $EQUIPOT -Na 1 "CLK" +Na 1 "/CLK-D1" St ~ $EndEQUIPOT $EQUIPOT -Na 2 "CTRL" +Na 2 "/CTRL-D3" St ~ $EndEQUIPOT $EQUIPOT -Na 3 "DONE" +Na 3 "/DONE-SELECT*" St ~ $EndEQUIPOT $EQUIPOT -Na 4 "GND" +Na 4 "/PWR_3,3-5V" St ~ $EndEQUIPOT $EQUIPOT -Na 5 "N-000001" +Na 5 "/TCK-CCLK" St ~ $EndEQUIPOT $EQUIPOT -Na 6 "N-000003" +Na 6 "/TD0-DONE" St ~ $EndEQUIPOT $EQUIPOT -Na 7 "N-000023" +Na 7 "/TD0-PROG-D4" St ~ $EndEQUIPOT $EQUIPOT -Na 8 "N-000024" +Na 8 "/TDI-DIN" St ~ $EndEQUIPOT $EQUIPOT -Na 9 "N-000025" +Na 9 "/TDI-DIN-D0" St ~ $EndEQUIPOT $EQUIPOT -Na 10 "N-000026" +Na 10 "/TMS-PROG" St ~ $EndEQUIPOT $EQUIPOT -Na 11 "N-000027" +Na 11 "/TMS-PROG-D2" St ~ $EndEQUIPOT $EQUIPOT -Na 12 "N-000028" +Na 12 "/VCC_SENSE-ERROR*" St ~ $EndEQUIPOT $EQUIPOT -Na 13 "N-000039" +Na 13 "GND" St ~ $EndEQUIPOT $EQUIPOT -Na 14 "N-000040" +Na 14 "N-000008" St ~ $EndEQUIPOT $EQUIPOT -Na 15 "N-000041" +Na 15 "N-000014" St ~ $EndEQUIPOT $EQUIPOT -Na 16 "N-000042" +Na 16 "N-000015" St ~ $EndEQUIPOT $EQUIPOT -Na 17 "PWR" +Na 17 "N-000016" St ~ $EndEQUIPOT $EQUIPOT -Na 18 "TCK-CCLK_1" +Na 18 "N-000030" St ~ $EndEQUIPOT $EQUIPOT -Na 19 "TD0-DONE/P_1" +Na 19 "N-000031" St ~ $EndEQUIPOT $EQUIPOT -Na 20 "TD0/PROG" +Na 20 "N-000032" St ~ $EndEQUIPOT $EQUIPOT -Na 21 "TDI-DIN_1" +Na 21 "N-000033" St ~ $EndEQUIPOT $EQUIPOT -Na 22 "TDI/DIN" +Na 22 "N-000034" St ~ $EndEQUIPOT $EQUIPOT -Na 23 "TMS-PROG_1" +Na 23 "N-000035" St ~ $EndEQUIPOT $EQUIPOT -Na 24 "TMS/PROG" +Na 24 "N-000036" St ~ $EndEQUIPOT $EQUIPOT -Na 25 "VCC" +Na 25 "N-000038" St ~ $EndEQUIPOT $EQUIPOT -Na 26 "VCC_SENS1" +Na 26 "VCC" St ~ $EndEQUIPOT $NCLASS Name "Default" -Desc "Ceci est la Netclass par défaut" +Desc "Ceci est la Netclass par défaut" Clearance 100 TrackWidth 250 ViaDia 650 @@ -179,32 +180,32 @@ ViaDrill 250 uViaDia 200 uViaDrill 50 AddNet "" -AddNet "CLK" -AddNet "CTRL" -AddNet "DONE" +AddNet "/CLK-D1" +AddNet "/CTRL-D3" +AddNet "/DONE-SELECT*" +AddNet "/PWR_3,3-5V" +AddNet "/TCK-CCLK" +AddNet "/TD0-DONE" +AddNet "/TD0-PROG-D4" +AddNet "/TDI-DIN" +AddNet "/TDI-DIN-D0" +AddNet "/TMS-PROG" +AddNet "/TMS-PROG-D2" +AddNet "/VCC_SENSE-ERROR*" AddNet "GND" -AddNet "N-000001" -AddNet "N-000003" -AddNet "N-000023" -AddNet "N-000024" -AddNet "N-000025" -AddNet "N-000026" -AddNet "N-000027" -AddNet "N-000028" -AddNet "N-000039" -AddNet "N-000040" -AddNet "N-000041" -AddNet "N-000042" -AddNet "PWR" -AddNet "TCK-CCLK_1" -AddNet "TD0-DONE/P_1" -AddNet "TD0/PROG" -AddNet "TDI-DIN_1" -AddNet "TDI/DIN" -AddNet "TMS-PROG_1" -AddNet "TMS/PROG" +AddNet "N-000008" +AddNet "N-000014" +AddNet "N-000015" +AddNet "N-000016" +AddNet "N-000030" +AddNet "N-000031" +AddNet "N-000032" +AddNet "N-000033" +AddNet "N-000034" +AddNet "N-000035" +AddNet "N-000036" +AddNet "N-000038" AddNet "VCC" -AddNet "VCC_SENS1" $EndNCLASS $MODULE DB25M_CI Po 40500 35000 900 15 3F9A86C0 00000003 ~~ @@ -212,10 +213,10 @@ Li DB25M_CI Cd Connecteur DB25 male couche Kw CONN DB25 Sc 00000003 -AR +AR /3EBF7D04 Op 0 0 0 -T0 0 -1050 600 600 2700 120 N V 21 N"J1" -T1 0 -3450 600 600 2700 120 N V 21 N"DB25" +T0 0 -1050 600 600 2700 120 N V 21 N "J1" +T1 0 -3450 600 600 2700 120 N V 21 N "DB25MALE" DS 6250 -200 6650 -1300 120 21 DS 6650 -1300 7050 -200 120 21 DS -10500 -1700 10500 -1700 120 21 @@ -236,21 +237,21 @@ $PAD Sh "13" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 3 "DONE" +Ne 3 "/DONE-SELECT*" Po -6500 1050 $EndPAD $PAD Sh "12" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 11 "N-000027" +Ne 14 "N-000008" Po -5400 1050 $EndPAD $PAD Sh "11" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 11 "N-000027" +Ne 14 "N-000008" Po -4350 1050 $EndPAD $PAD @@ -271,7 +272,7 @@ $PAD Sh "8" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 11 "N-000027" +Ne 14 "N-000008" Po -1100 1050 $EndPAD $PAD @@ -285,35 +286,35 @@ $PAD Sh "6" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 20 "TD0/PROG" +Ne 7 "/TD0-PROG-D4" Po 1050 1050 $EndPAD $PAD Sh "5" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 2 "CTRL" +Ne 2 "/CTRL-D3" Po 2150 1050 $EndPAD $PAD Sh "4" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 24 "TMS/PROG" +Ne 11 "/TMS-PROG-D2" Po 3200 1050 $EndPAD $PAD Sh "3" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 1 "CLK" +Ne 1 "/CLK-D1" Po 4300 1050 $EndPAD $PAD Sh "2" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00808000 -Ne 22 "TDI/DIN" +Ne 9 "/TDI-DIN-D0" Po 5400 1050 $EndPAD $PAD @@ -327,7 +328,7 @@ $PAD Sh "25" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00400001 -Ne 4 "GND" +Ne 13 "GND" Po -5950 1050 $EndPAD $PAD @@ -362,7 +363,7 @@ $PAD Sh "20" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00400001 -Ne 4 "GND" +Ne 13 "GND" Po -550 1050 $EndPAD $PAD @@ -397,7 +398,7 @@ $PAD Sh "15" R 2000 600 0 0 1800 Dr 0 0 0 At CONN N 00400001 -Ne 26 "VCC_SENS1" +Ne 12 "/VCC_SENSE-ERROR*" Po 4850 1050 $EndPAD $PAD @@ -418,10 +419,10 @@ $MODULE MIRE Po 40500 26500 0 15 00200000 00000000 ~~ Li MIRE Sc 00000000 -AR +AR MIRE Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 N"MIRE" -T1 1300 1100 600 600 0 80 N I 21 N"*" +T0 -50 1800 400 400 0 80 N I 21 N "MIRE" +T1 1300 1100 600 600 0 80 N I 21 N "*" DC 0 0 1000 750 150 21 $PAD Sh "" R 1100 100 0 0 0 @@ -470,10 +471,10 @@ $MODULE MIRE Po 40500 43500 0 15 00200000 00000000 ~~ Li MIRE Sc 00000000 -AR +AR MIRE Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 N"MIRE" -T1 1300 1100 600 600 0 80 N I 21 N"*" +T0 -50 1800 400 400 0 80 N I 21 N "MIRE" +T1 1300 1100 600 600 0 80 N I 21 N "*" DC 0 0 1000 750 150 21 $PAD Sh "" R 1100 100 0 0 0 @@ -522,10 +523,10 @@ $MODULE MIRE Po 72500 43500 0 15 00200000 00000000 ~~ Li MIRE Sc 00000000 -AR +AR MIRE Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 N"MIRE" -T1 1300 1100 600 600 0 80 N I 21 N"*" +T0 -50 1800 400 400 0 80 N I 21 N "MIRE" +T1 1300 1100 600 600 0 80 N I 21 N "*" DC 0 0 1000 750 150 21 $PAD Sh "" R 1100 100 0 0 0 @@ -574,10 +575,10 @@ $MODULE MIRE Po 72500 26500 0 15 00200000 00000000 ~~ Li MIRE Sc 00000000 -AR +AR MIRE Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 N"MIRE" -T1 1300 1100 600 600 0 80 N I 21 N"*" +T0 -50 1800 400 400 0 80 N I 21 N "MIRE" +T1 1300 1100 600 600 0 80 N I 21 N "*" DC 0 0 1000 750 150 21 $PAD Sh "" R 1100 100 0 0 0 @@ -628,10 +629,10 @@ Li bornier6 Cd Bornier d'alimentation 4 pins Kw DEV Sc 00000003 -AR +AR /3EBF830C Op 0 0 0 -T0 4000 -2500 1030 629 2700 120 N V 21 N"P1" -T1 -7000 0 1201 825 3600 120 N V 21 N"CONN_6" +T0 4000 -2500 1030 629 2700 120 N V 21 N "P1" +T1 -7000 0 1201 825 3600 120 N V 21 N "CONN_6" DS -6000 -1500 -6000 1500 120 21 DS 6000 1500 6000 -1500 120 21 DS -6000 1000 6000 1000 120 21 @@ -641,42 +642,42 @@ $PAD Sh "2" C 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po -3000 0 $EndPAD $PAD Sh "3" C 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 19 "TD0-DONE/P_1" +Ne 6 "/TD0-DONE" Po -1000 0 $EndPAD $PAD Sh "1" R 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 17 "PWR" +Ne 4 "/PWR_3,3-5V" Po -5000 0 $EndPAD $PAD Sh "4" C 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 21 "TDI-DIN_1" +Ne 8 "/TDI-DIN" Po 1000 0 $EndPAD $PAD Sh "5" C 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 18 "TCK-CCLK_1" +Ne 5 "/TCK-CCLK" Po 3000 0 $EndPAD $PAD Sh "6" C 1500 1500 0 0 2700 Dr 600 0 0 At STD N 00E0FFFF -Ne 23 "TMS-PROG_1" +Ne 10 "/TMS-PROG" Po 5000 0 $EndPAD $SHAPE3D @@ -692,10 +693,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF8187 Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 N"R2" -T1 0 0 550 500 0 80 N I 21 N"5,1K" +T0 0 0 550 500 0 80 N V 21 N "R2" +T1 0 0 550 500 0 80 N I 21 N "5,1K" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -708,14 +709,14 @@ $PAD Sh "1" C 600 600 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 10 "N-000026" +Ne 25 "N-000038" Po 2000 0 $EndPAD $SHAPE3D @@ -731,10 +732,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF7D16 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R1" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R1" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -747,14 +748,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 9 "N-000025" +Ne 15 "N-000014" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 26 "VCC_SENS1" +Ne 12 "/VCC_SENSE-ERROR*" Po 2000 0 $EndPAD $SHAPE3D @@ -770,10 +771,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF819B Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R14" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R14" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -786,14 +787,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 19 "TD0-DONE/P_1" +Ne 6 "/TD0-DONE" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 10 "N-000026" +Ne 25 "N-000038" Po 2000 0 $EndPAD $SHAPE3D @@ -809,10 +810,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF818E Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 N"R5" -T1 0 0 550 500 0 80 N I 21 N"1K" +T0 0 0 550 500 0 80 N V 21 N "R5" +T1 0 0 550 500 0 80 N I 21 N "1K" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -825,14 +826,14 @@ $PAD Sh "1" C 600 600 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 2000 0 $EndPAD $SHAPE3D @@ -848,10 +849,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF7D26 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R6" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R6" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -864,14 +865,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 15 "N-000041" +Ne 19 "N-000031" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 20 "TD0/PROG" +Ne 7 "/TD0-PROG-D4" Po 2000 0 $EndPAD $SHAPE3D @@ -887,10 +888,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /4D52807F Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R7" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R7" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -903,14 +904,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 14 "N-000040" +Ne 17 "N-000016" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 22 "TDI/DIN" +Ne 9 "/TDI-DIN-D0" Po 2000 0 $EndPAD $SHAPE3D @@ -926,10 +927,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /4D528080 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R8" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R8" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -942,14 +943,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 12 "N-000028" +Ne 21 "N-000033" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 2 "CTRL" +Ne 2 "/CTRL-D3" Po 2000 0 $EndPAD $SHAPE3D @@ -965,10 +966,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF7D33 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R9" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R9" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -981,14 +982,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 6 "N-000003" +Ne 20 "N-000032" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 24 "TMS/PROG" +Ne 11 "/TMS-PROG-D2" Po 2000 0 $EndPAD $SHAPE3D @@ -1004,10 +1005,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF7D31 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R10" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R10" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -1020,14 +1021,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 13 "N-000039" +Ne 18 "N-000030" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 1 "CLK" +Ne 1 "/CLK-D1" Po 2000 0 $EndPAD $SHAPE3D @@ -1043,10 +1044,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /4D527316 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R11" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R11" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -1059,14 +1060,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 21 "TDI-DIN_1" +Ne 8 "/TDI-DIN" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 8 "N-000024" +Ne 23 "N-000035" Po 2000 0 $EndPAD $SHAPE3D @@ -1082,10 +1083,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /4D528083 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R12" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R12" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -1098,14 +1099,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 18 "TCK-CCLK_1" +Ne 5 "/TCK-CCLK" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 7 "N-000023" +Ne 24 "N-000036" Po 2000 0 $EndPAD $SHAPE3D @@ -1121,10 +1122,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /4D528082 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R13" -T1 0 0 550 500 1800 80 N I 21 N"100" +T0 0 0 550 500 1800 80 N V 21 N "R13" +T1 0 0 550 500 1800 80 N I 21 N "100" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -1137,14 +1138,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 23 "TMS-PROG_1" +Ne 10 "/TMS-PROG" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 5 "N-000001" +Ne 22 "N-000034" Po 2000 0 $EndPAD $SHAPE3D @@ -1160,10 +1161,10 @@ Li R4 Cd Resitance 4 pas Kw R Sc 00000003 -AR +AR /3EBF7D22 Op 0 A 0 -T0 0 0 550 500 1800 80 N V 21 N"R4" -T1 0 0 550 500 1800 80 N I 21 N"47" +T0 0 0 550 500 1800 80 N V 21 N "R4" +T1 0 0 550 500 1800 80 N I 21 N "47" DS -2000 0 -1600 0 120 21 DS -1600 0 -1600 -400 120 21 DS -1600 -400 1600 -400 120 21 @@ -1176,14 +1177,14 @@ $PAD Sh "1" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 16 "N-000042" +Ne 16 "N-000015" Po -2000 0 $EndPAD $PAD Sh "2" C 600 600 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 3 "DONE" +Ne 3 "/DONE-SELECT*" Po 2000 0 $EndPAD $SHAPE3D @@ -1199,10 +1200,10 @@ Li CP5 Cd Condensateur polarise Kw CP Sc 00000003 -AR +AR /3EBF82C6 Op 0 0 0 -T0 0 0 600 600 0 120 N V 21 N"C1" -T1 0 0 600 525 0 120 N I 21 N"1uF" +T0 0 0 600 600 0 120 N V 21 N "C1" +T1 0 0 600 525 0 120 N I 21 N "1uF" DS -1750 -500 -1750 -500 120 21 DS -1750 -500 -1750 -500 120 21 DS -1750 -500 -1750 -500 120 21 @@ -1228,14 +1229,14 @@ $PAD Sh "1" R 550 550 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -2500 0 $EndPAD $PAD Sh "2" C 550 550 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 2500 0 $EndPAD $SHAPE3D @@ -1251,10 +1252,10 @@ Li D3 Cd Diode 3 pas Kw DIODE DEV Sc 00000003 -AR +AR /3EBF8176 Op 0 0 0 -T0 0 0 400 400 1800 80 N V 21 N"D2" -T1 0 0 400 400 1800 80 N I 21 N"BAT46" +T0 0 0 400 400 1800 80 N V 21 N "D2" +T1 0 0 400 400 1800 80 N I 21 N "BAT46" DS 1500 0 1200 0 120 21 DS 1200 0 1200 -400 120 21 DS 1200 -400 -1200 -400 120 21 @@ -1269,14 +1270,14 @@ $PAD Sh "2" R 550 550 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po 1500 0 $EndPAD $PAD Sh "1" C 550 550 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 17 "PWR" +Ne 4 "/PWR_3,3-5V" Po -1500 0 $EndPAD $SHAPE3D @@ -1292,10 +1293,10 @@ Li D3 Cd Diode 3 pas Kw DIODE DEV Sc 00000003 -AR +AR /3EBF815E Op 0 0 0 -T0 0 0 400 400 1800 80 N V 21 N"D1" -T1 0 0 400 400 1800 80 N I 21 N"BAT46" +T0 0 0 400 400 1800 80 N V 21 N "D1" +T1 0 0 400 400 1800 80 N I 21 N "BAT46" DS 1500 0 1200 0 120 21 DS 1200 0 1200 -400 120 21 DS 1200 -400 -1200 -400 120 21 @@ -1310,14 +1311,14 @@ $PAD Sh "2" R 550 550 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 9 "N-000025" +Ne 15 "N-000014" Po 1500 0 $EndPAD $PAD Sh "1" C 550 550 0 0 1800 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -1500 0 $EndPAD $SHAPE3D @@ -1333,10 +1334,10 @@ Li 14DIP-ELL300 Cd Module Dil 14 pins, pads elliptiques Kw DIL Sc 00000003 -AR +AR /3EBF7EEC Op 0 0 0 -T0 -2000 -500 600 450 2700 113 N V 21 N"U2" -T1 500 500 600 450 2700 113 N V 21 N"74LS125" +T0 -2000 -500 600 450 2700 113 N V 21 N "U2" +T1 500 500 600 450 2700 113 N V 21 N "74LS125" DS -4000 -1000 4000 -1000 150 21 DS 4000 1000 -4000 1000 150 21 DS -4000 1000 -4000 -1000 150 21 @@ -1348,35 +1349,35 @@ $PAD Sh "1" R 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po -3000 1500 $EndPAD $PAD Sh "2" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 10 "N-000026" +Ne 25 "N-000038" Po -2000 1500 $EndPAD $PAD Sh "3" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 16 "N-000042" +Ne 16 "N-000015" Po -1000 1500 $EndPAD $PAD Sh "4" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 0 1500 $EndPAD $PAD Sh "5" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 1500 $EndPAD $PAD @@ -1390,7 +1391,7 @@ $PAD Sh "7" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 3000 1500 $EndPAD $PAD @@ -1404,14 +1405,14 @@ $PAD Sh "9" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 2000 -1500 $EndPAD $PAD Sh "10" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 -1500 $EndPAD $PAD @@ -1425,21 +1426,21 @@ $PAD Sh "12" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po -1000 -1500 $EndPAD $PAD Sh "13" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po -2000 -1500 $EndPAD $PAD Sh "14" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -3000 -1500 $EndPAD $SHAPE3D @@ -1455,10 +1456,10 @@ Li 14DIP-ELL300 Cd Module Dil 14 pins, pads elliptiques Kw DIL Sc 00000003 -AR +AR /3EBF7DBD Op 0 0 0 -T0 -2000 -500 600 450 2700 113 N V 21 N"U1" -T1 500 500 600 450 2700 113 N V 21 N"74LS125" +T0 -2000 -500 600 450 2700 113 N V 21 N "U1" +T1 500 500 600 450 2700 113 N V 21 N "74LS125" DS -4000 -1000 4000 -1000 150 21 DS 4000 1000 -4000 1000 150 21 DS -4000 1000 -4000 -1000 150 21 @@ -1470,98 +1471,98 @@ $PAD Sh "1" R 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 15 "N-000041" +Ne 19 "N-000031" Po -3000 1500 $EndPAD $PAD Sh "2" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po -2000 1500 $EndPAD $PAD Sh "3" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 10 "N-000026" +Ne 25 "N-000038" Po -1000 1500 $EndPAD $PAD Sh "4" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 12 "N-000028" +Ne 21 "N-000033" Po 0 1500 $EndPAD $PAD Sh "5" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 14 "N-000040" +Ne 17 "N-000016" Po 1000 1500 $EndPAD $PAD Sh "6" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 8 "N-000024" +Ne 23 "N-000035" Po 2000 1500 $EndPAD $PAD Sh "7" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 3000 1500 $EndPAD $PAD Sh "8" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 7 "N-000023" +Ne 24 "N-000036" Po 3000 -1500 $EndPAD $PAD Sh "9" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 13 "N-000039" +Ne 18 "N-000030" Po 2000 -1500 $EndPAD $PAD Sh "10" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 12 "N-000028" +Ne 21 "N-000033" Po 1000 -1500 $EndPAD $PAD Sh "11" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 5 "N-000001" +Ne 22 "N-000034" Po 0 -1500 $EndPAD $PAD Sh "12" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 6 "N-000003" +Ne 20 "N-000032" Po -1000 -1500 $EndPAD $PAD Sh "13" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 12 "N-000028" +Ne 21 "N-000033" Po -2000 -1500 $EndPAD $PAD Sh "14" O 620 900 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 25 "VCC" +Ne 26 "VCC" Po -3000 -1500 $EndPAD $SHAPE3D @@ -1577,10 +1578,10 @@ Li C2 Cd Condensateur = 2 pas Kw C Sc 00000003 -AR +AR /4D528085 Op 0 0 0 -T0 0 0 400 400 2700 80 N V 21 N"C2" -T1 0 0 400 400 2700 80 N I 21 N"100pF" +T0 0 0 400 400 2700 80 N V 21 N "C2" +T1 0 0 400 400 2700 80 N I 21 N "100pF" DS -1400 -400 1400 -400 120 21 DS 1400 -400 1400 400 120 21 DS 1400 400 -1400 400 120 21 @@ -1590,14 +1591,14 @@ $PAD Sh "1" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 8 "N-000024" +Ne 23 "N-000035" Po -1000 0 $EndPAD $PAD Sh "2" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 0 $EndPAD $SHAPE3D @@ -1613,10 +1614,10 @@ Li C2 Cd Condensateur = 2 pas Kw C Sc 00000003 -AR +AR /4D528084 Op 0 0 0 -T0 0 0 400 400 0 80 N V 21 N"C3" -T1 0 0 400 400 0 80 N I 21 N"100pF" +T0 0 0 400 400 0 80 N V 21 N "C3" +T1 0 0 400 400 0 80 N I 21 N "100pF" DS -1400 -400 1400 -400 120 21 DS 1400 -400 1400 400 120 21 DS 1400 400 -1400 400 120 21 @@ -1626,14 +1627,14 @@ $PAD Sh "1" C 550 550 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 10 "N-000026" +Ne 25 "N-000038" Po -1000 0 $EndPAD $PAD Sh "2" C 550 550 0 0 0 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 0 $EndPAD $SHAPE3D @@ -1649,10 +1650,10 @@ Li C2 Cd Condensateur = 2 pas Kw C Sc 00000003 -AR +AR /4D528086 Op 0 0 0 -T0 0 0 400 400 2700 80 N V 21 N"C5" -T1 0 0 400 400 2700 80 N I 21 N"100pF" +T0 0 0 400 400 2700 80 N V 21 N "C5" +T1 0 0 400 400 2700 80 N I 21 N "100pF" DS -1400 -400 1400 -400 120 21 DS 1400 -400 1400 400 120 21 DS 1400 400 -1400 400 120 21 @@ -1662,14 +1663,14 @@ $PAD Sh "1" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 7 "N-000023" +Ne 24 "N-000036" Po -1000 0 $EndPAD $PAD Sh "2" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 0 $EndPAD $SHAPE3D @@ -1685,10 +1686,10 @@ Li C2 Cd Condensateur = 2 pas Kw C Sc 00000003 -AR +AR /3EBF81A7 Op 0 0 0 -T0 0 0 400 400 2700 80 N V 21 N"C4" -T1 0 0 400 400 2700 80 N I 21 N"100pF" +T0 0 0 400 400 2700 80 N V 21 N "C4" +T1 0 0 400 400 2700 80 N I 21 N "100pF" DS -1400 -400 1400 -400 120 21 DS 1400 -400 1400 400 120 21 DS 1400 400 -1400 400 120 21 @@ -1698,14 +1699,14 @@ $PAD Sh "1" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 5 "N-000001" +Ne 22 "N-000034" Po -1000 0 $EndPAD $PAD Sh "2" C 550 550 0 0 2700 Dr 320 0 0 At STD N 00E0FFFF -Ne 4 "GND" +Ne 13 "GND" Po 1000 0 $EndPAD $SHAPE3D @@ -1721,10 +1722,10 @@ Li DB9M_CI_INVERT Cd Connecteur DB9 femelle encarte Kw CONN DB9 Sc 00000003 -AR +AR /3ECDE5C8 Op 0 0 0 -T0 0 -3600 600 600 2700 120 N V 21 N"J2" -T1 0 -1200 600 600 2700 120 N V 21 N"DB9MALE" +T0 0 -3600 600 600 2700 120 N V 21 N "J2" +T1 0 -1200 600 600 2700 120 N V 21 N "DB9MALE" DS -3350 -4750 3400 -4750 120 21 DS 3650 -500 -3600 -500 120 21 DS 3900 -500 3650 -500 120 21 @@ -1747,63 +1748,63 @@ $PAD Sh "4" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00400001 -Ne 18 "TCK-CCLK_1" +Ne 5 "/TCK-CCLK" Po 1100 1000 $EndPAD $PAD Sh "3" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00100001 -Ne 21 "TDI-DIN_1" +Ne 8 "/TDI-DIN" Po 0 1000 $EndPAD $PAD Sh "2" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00400001 -Ne 19 "TD0-DONE/P_1" +Ne 6 "/TD0-DONE" Po -1100 1000 $EndPAD $PAD Sh "1" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00800001 -Ne 17 "PWR" +Ne 4 "/PWR_3,3-5V" Po -2200 1000 $EndPAD $PAD Sh "5" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00400001 -Ne 23 "TMS-PROG_1" +Ne 10 "/TMS-PROG" Po 2200 1000 $EndPAD $PAD Sh "6" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00808000 -Ne 4 "GND" +Ne 13 "GND" Po -1650 1000 $EndPAD $PAD Sh "7" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00808000 -Ne 4 "GND" +Ne 13 "GND" Po -550 1000 $EndPAD $PAD Sh "8" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00808000 -Ne 4 "GND" +Ne 13 "GND" Po 550 1000 $EndPAD $PAD Sh "9" R 700 2000 0 0 2700 Dr 0 0 0 At CONN N 00808000 -Ne 4 "GND" +Ne 13 "GND" Po 1650 1000 $EndPAD $SHAPE3D @@ -1817,7 +1818,7 @@ $COTATION Ge 0 24 0 Va 32000 Te "3.2000 " -Po 56500 46040 600 600 120 0 1 +Po 56400 44950 600 600 120 0 1 Sb 0 40500 45500 72500 45500 120 Sd 0 72500 43500 72500 46580 120 Sg 0 40500 43500 40500 46580 120 @@ -1826,12 +1827,6 @@ S2 0 72500 45500 72057 45270 120 S3 0 40500 45500 40943 45730 120 S4 0 40500 45500 40943 45270 120 $endCOTATION -$MIREPCB -Po 1 28 35000 24500 3000 120 00000000 -$EndMIREPCB -$MIREPCB -Po 0 28 76000 43500 5000 120 00000000 -$EndMIREPCB $DRAWSEGMENT Po 0 72500 43500 70500 43500 120 De 28 0 900 0 0 @@ -1851,42 +1846,42 @@ $EndDRAWSEGMENT $TEXTPCB Te "TMS-PROG" Po 62250 40250 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "TCK-CCL" Po 62250 38000 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "TDI-TIN" Po 62250 36000 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "TDO-DONE" Po 62250 34000 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "VCC" Po 64000 30000 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "GND" Po 64000 32000 600 600 150 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "Component Side" Po 48000 27500 600 600 120 0 -De 15 1 0 Normal +De 15 1 0 Normal C $EndTEXTPCB $TEXTPCB Te "Copper layer" Po 47000 27000 600 600 120 0 -De 0 0 0 Normal +De 0 0 0 Normal C $EndTEXTPCB $DRAWSEGMENT Po 0 40500 43500 40500 42000 120 @@ -1905,14 +1900,14 @@ Po 0 40500 28000 40500 26500 120 De 28 0 900 0 0 $EndDRAWSEGMENT $TRACK -Po 0 43500 31000 43250 30750 250 -1 -De 15 0 1 0 0 Po 0 41750 30750 41550 30700 250 -1 De 15 0 1 0 400 Po 0 44000 31000 43500 31000 250 -1 De 15 0 1 0 800 Po 0 43250 30750 41750 30750 250 -1 De 15 0 1 0 0 +Po 0 43500 31000 43250 30750 250 -1 +De 15 0 1 0 0 Po 0 43250 33250 43000 33000 250 -1 De 15 0 2 0 0 Po 0 44000 34000 43500 34000 250 -1 @@ -1927,3219 +1922,2013 @@ Po 0 43000 33000 41500 33000 250 -1 De 15 0 2 0 0 Po 0 44000 41000 44000 41250 250 -1 De 15 0 3 0 800 -Po 0 41750 41500 41550 41500 250 -1 -De 15 0 3 0 400 Po 0 44000 41250 43750 41500 250 -1 De 15 0 3 0 0 -Po 0 43750 41500 41750 41500 250 -1 -De 15 0 3 0 0 -Po 0 58750 29250 58750 28500 400 -1 -De 0 0 4 0 0 -Po 0 58750 28500 59000 28250 400 -1 -De 0 0 4 0 0 -Po 0 56750 38500 57000 38250 400 -1 -De 0 0 4 0 0 -Po 0 55500 36500 55500 35500 400 -1 -De 0 0 4 0 C00 -Po 0 57000 36500 58500 36500 400 -1 +Po 0 43750 41500 41550 41500 250 -1 +De 15 0 3 0 400 +Po 0 65000 30000 67000 30000 400 -1 De 0 0 4 0 400 -Po 0 58500 33500 60750 33500 400 -1 +Po 0 71500 30250 71250 30000 400 -1 +De 0 0 4 0 0 +Po 0 67000 30000 71250 30000 400 -1 De 0 0 4 0 800 -Po 0 59000 36500 58500 36500 400 -1 +Po 0 63000 31000 64000 31000 400 -1 +De 0 0 4 0 800 +Po 0 64000 31000 65000 30000 400 -1 +De 0 0 4 0 0 +Po 0 71500 30250 71500 33300 400 -1 De 0 0 4 0 400 -Po 0 58500 37500 58500 36500 400 -1 -De 0 0 4 0 C00 -Po 0 58500 34500 58500 33500 400 -1 -De 0 0 4 0 C00 -Po 0 61250 28250 61500 28000 400 -1 -De 0 0 4 0 0 -Po 0 61500 28000 61500 27500 400 -1 -De 0 0 4 0 400 -Po 0 58000 30000 58750 29250 400 -1 -De 0 0 4 0 800 -Po 0 55500 30250 55750 30000 400 -1 -De 0 0 4 0 0 -Po 0 59250 36250 59000 36500 400 -1 -De 0 0 4 0 0 -Po 0 60750 36250 59250 36250 400 -1 -De 0 0 4 0 0 -Po 0 61000 33750 61000 36000 400 -1 -De 0 0 4 0 0 -Po 0 60750 33500 61000 33750 400 -1 -De 0 0 4 0 0 -Po 0 55500 32500 55500 30250 400 -1 -De 0 0 4 0 800 -Po 0 55750 30000 58000 30000 400 -1 -De 0 0 4 0 400 -Po 0 55500 36500 57000 36500 400 -1 -De 0 0 4 0 800 -Po 0 55500 38500 56750 38500 400 -1 -De 0 0 4 0 800 -Po 0 43000 40750 43000 41000 400 -1 -De 0 0 4 0 0 -Po 0 43000 41000 43000 42250 400 -1 -De 0 0 4 0 0 -Po 0 43250 42500 50000 42500 400 -1 -De 0 0 4 0 0 -Po 0 43250 35550 43250 35500 250 -1 -De 0 0 4 0 0 -Po 0 41550 35550 43250 35550 250 -1 -De 0 0 4 0 800 -Po 0 43000 40950 43000 41000 250 -1 -De 0 0 4 0 0 -Po 0 41550 40950 43000 40950 250 -1 -De 0 0 4 0 800 -Po 0 58500 33500 57500 33500 400 -1 -De 0 0 4 0 800 -Po 0 43000 35750 43000 36000 400 -1 -De 0 0 4 0 0 -Po 0 50000 42500 55500 42500 400 -1 -De 0 0 4 0 400 -Po 0 43000 42250 43250 42500 400 -1 -De 0 0 4 0 0 -Po 0 50000 38500 50000 42500 400 -1 -De 0 0 4 0 800 -Po 0 50000 33500 46250 33500 170 -1 -De 0 0 4 0 800 -Po 0 57000 38250 57000 36500 400 -1 -De 0 0 4 0 0 -Po 0 43250 35500 43250 35500 400 -1 -De 0 0 4 0 0 -Po 0 43250 35500 43000 35750 400 -1 -De 0 0 4 0 0 -Po 0 45750 35500 43250 35500 400 -1 -De 0 0 4 0 0 -Po 0 46000 35250 45750 35500 400 -1 -De 0 0 4 0 0 -Po 0 46000 33750 46000 35250 400 -1 -De 0 0 4 0 0 -Po 0 46250 33500 46000 33750 400 -1 -De 0 0 4 0 0 -Po 0 58500 42500 61750 42500 400 -1 -De 0 0 4 0 800 -Po 0 62000 42250 62000 31750 400 -1 -De 0 0 4 0 0 -Po 0 61750 42500 62000 42250 400 -1 -De 0 0 4 0 0 -Po 0 59000 28250 61250 28250 400 -1 -De 0 0 4 0 0 -Po 0 43000 36000 43000 40750 400 -1 -De 0 0 4 0 0 -Po 0 57000 42500 58500 42500 400 -1 -De 0 0 4 0 C00 -Po 0 55500 42500 57000 42500 400 -1 -De 0 0 4 0 C00 -Po 0 62000 29250 62250 29000 400 -1 -De 0 0 4 0 0 -Po 0 62000 31750 62000 29250 400 -1 -De 0 0 4 0 0 -Po 0 62250 29000 63500 29000 400 -1 -De 0 0 4 0 400 -Po 0 62250 32000 62000 31750 400 -1 -De 0 0 4 0 0 -Po 0 67000 32000 62250 32000 400 -1 -De 0 0 4 0 800 -Po 0 63500 27750 63500 29000 400 -1 -De 0 0 4 0 400 -Po 0 63250 27500 63500 27750 400 -1 -De 0 0 4 0 0 -Po 0 61500 27500 63250 27500 400 -1 -De 0 0 4 0 800 -Po 0 61000 36000 60750 36250 400 -1 -De 0 0 4 0 0 -Po 0 71500 37150 71500 36050 400 -1 -De 15 0 4 0 C00 -Po 0 71500 36050 71500 34950 400 -1 -De 15 0 4 0 C00 -Po 0 71500 34950 71500 33850 400 -1 -De 15 0 4 0 C00 -Po 0 71500 33850 71500 32250 400 -1 -De 15 0 4 0 800 -Po 0 67000 32000 70000 32000 400 -1 -De 0 0 4 0 800 -Po 0 71250 32000 71500 32250 400 -1 -De 15 0 4 0 0 -Po 0 70000 32000 71250 32000 400 -1 -De 15 0 4 0 0 -Po 3 70000 32000 70000 32000 700 -1 -De 15 1 4 0 0 -Po 0 56500 32500 55500 32500 400 -1 -De 0 0 4 0 400 -Po 0 57500 33500 56500 32500 400 -1 -De 0 0 4 0 0 -Po 0 53500 37000 49500 37000 170 -1 +Po 0 68750 36500 71500 36500 250 -1 De 0 0 5 0 0 -Po 0 49500 37000 49250 37250 250 -1 +Po 0 68500 37500 68500 36750 250 -1 De 0 0 5 0 0 -Po 0 58000 40500 58500 40500 250 -1 -De 0 0 5 0 400 -Po 0 57750 40750 58000 40500 250 -1 +Po 0 68000 38000 68500 37500 250 -1 De 0 0 5 0 0 -Po 0 57750 41250 57750 40750 250 -1 -De 0 0 5 0 0 -Po 0 57250 41750 57750 41250 250 -1 -De 0 0 5 0 0 -Po 0 52000 41750 57250 41750 250 -1 -De 0 0 5 0 0 -Po 0 53000 35500 53500 35500 250 -1 +Po 0 64000 39000 65000 38000 250 -1 De 0 0 5 0 800 -Po 0 49500 38000 50400 38000 170 -1 -De 0 0 5 0 0 -Po 0 50400 38000 50750 38000 170 -1 -De 0 0 5 0 0 -Po 0 49250 37250 49250 37750 250 -1 -De 0 0 5 0 0 -Po 0 59750 40500 60000 40750 250 -1 -De 0 0 5 0 0 -Po 0 50750 38000 51000 38000 250 -1 -De 0 0 5 0 0 -Po 0 51500 41250 52000 41750 250 -1 -De 0 0 5 0 0 -Po 0 51500 38500 51500 41250 250 -1 -De 0 0 5 0 0 -Po 0 51000 38000 51500 38500 250 -1 -De 0 0 5 0 0 -Po 0 49500 38000 49250 37750 170 -1 -De 0 0 5 0 0 -Po 0 60000 40750 60000 41500 250 -1 +Po 0 71500 36500 71500 36600 250 -1 De 0 0 5 0 400 -Po 0 58500 40500 59750 40500 250 -1 +Po 0 67000 38000 68000 38000 250 -1 De 0 0 5 0 800 -Po 0 53750 36750 53500 37000 250 -1 +Po 0 68500 36750 68750 36500 250 -1 De 0 0 5 0 0 -Po 0 53750 35750 53750 36750 250 -1 -De 0 0 5 0 0 -Po 0 53500 35500 53750 35750 250 -1 -De 0 0 5 0 0 -Po 0 51000 31750 49000 31750 250 -1 +Po 0 65000 38000 67000 38000 250 -1 +De 0 0 5 0 400 +Po 0 70000 34000 70250 34250 250 -1 De 0 0 6 0 0 -Po 0 48750 32000 49000 31750 250 -1 -De 0 0 6 0 0 -Po 0 51500 32250 51000 31750 250 -1 -De 0 0 6 0 0 -Po 0 51750 34500 53000 34500 250 -1 -De 0 0 6 0 400 -Po 0 51500 34250 51500 32250 250 -1 -De 0 0 6 0 0 -Po 0 51750 34500 51500 34250 250 -1 -De 0 0 6 0 0 -Po 0 48000 32000 48750 32000 250 -1 +Po 0 64000 35000 64000 34250 250 -1 De 0 0 6 0 800 -Po 0 56750 41250 57000 41000 250 -1 -De 0 0 7 0 0 -Po 0 59750 39750 60000 39500 250 -1 -De 0 0 7 0 0 -Po 0 60000 39500 60000 39000 250 -1 -De 0 0 7 0 400 -Po 0 53000 41000 53250 41250 250 -1 -De 0 0 7 0 0 -Po 0 53250 41250 56750 41250 250 -1 -De 0 0 7 0 0 -Po 0 57750 39750 59750 39750 250 -1 -De 0 0 7 0 0 -Po 0 57000 40500 57750 39750 250 -1 -De 0 0 7 0 800 -Po 0 57000 41000 57000 40500 250 -1 -De 0 0 7 0 400 -Po 0 53000 38500 53000 41000 250 -1 -De 0 0 7 0 800 -Po 0 59250 38750 60000 38000 250 -1 -De 0 0 8 0 0 -Po 0 60000 38000 60000 37000 250 -1 +Po 0 70250 34250 71250 34250 250 -1 +De 0 0 6 0 0 +Po 0 64000 34250 64250 34000 250 -1 +De 0 0 6 0 0 +Po 0 67000 34000 70000 34000 250 -1 +De 0 0 6 0 800 +Po 0 64250 34000 67000 34000 250 -1 +De 0 0 6 0 400 +Po 0 71250 34250 71500 34400 250 -1 +De 0 0 6 0 400 +Po 0 45000 33250 44750 33000 250 -1 +De 15 0 7 0 0 +Po 0 44750 33000 44000 33000 250 -1 +De 15 0 7 0 400 +Po 0 41550 33950 42500 33950 250 -1 +De 15 0 7 0 800 +Po 0 45000 34500 45000 33250 250 -1 +De 15 0 7 0 0 +Po 0 44750 34750 45000 34500 250 -1 +De 15 0 7 0 0 +Po 0 43300 34750 44750 34750 250 -1 +De 15 0 7 0 0 +Po 0 42500 33950 43300 34750 250 -1 +De 15 0 7 0 0 +Po 0 69000 35500 71500 35500 250 -1 De 0 0 8 0 400 -Po 0 54250 40500 55500 40500 250 -1 +Po 0 68500 36000 69000 35500 250 -1 +De 0 0 8 0 0 +Po 0 64000 37000 65000 36000 250 -1 +De 0 0 8 0 800 +Po 0 65000 36000 67000 36000 250 -1 De 0 0 8 0 400 -Po 0 51500 37500 52000 38000 250 -1 -De 0 0 8 0 0 -Po 0 50000 37500 51500 37500 250 -1 +Po 0 67000 36000 68500 36000 250 -1 De 0 0 8 0 800 -Po 0 55500 40500 56750 39250 250 -1 -De 0 0 8 0 800 -Po 0 52000 38000 54000 38000 170 -1 -De 0 0 8 0 0 -Po 0 54000 38000 54250 38250 250 -1 -De 0 0 8 0 0 -Po 0 54250 38250 54250 39000 250 -1 -De 0 0 8 0 0 -Po 0 54250 39000 54000 39250 250 -1 -De 0 0 8 0 0 -Po 0 56750 39250 59000 39250 250 -1 -De 0 0 8 0 0 -Po 0 54000 40250 54250 40500 250 -1 -De 0 0 8 0 0 -Po 0 54000 39250 54000 40250 250 -1 -De 0 0 8 0 0 -Po 0 59000 39250 59250 39000 250 -1 -De 0 0 8 0 0 -Po 0 59250 39000 59250 38750 250 -1 -De 0 0 8 0 0 -Po 0 48000 28750 48250 28500 250 -1 -De 0 0 9 0 0 -Po 0 48000 30000 48000 28750 250 -1 -De 0 0 9 0 800 -Po 0 48250 28500 50000 28500 250 -1 -De 0 0 9 0 400 -Po 0 58000 27750 58250 27500 250 -1 +Po 0 45750 36000 45750 29500 250 -1 +De 15 0 9 0 0 +Po 0 43000 29250 42750 29500 250 -1 +De 15 0 9 0 0 +Po 0 42750 29500 41750 29500 250 -1 +De 15 0 9 0 0 +Po 0 45500 29250 43000 29250 250 -1 +De 15 0 9 0 0 +Po 0 41750 29500 41750 29750 250 -1 +De 15 0 9 0 0 +Po 0 45750 29500 45500 29250 250 -1 +De 15 0 9 0 0 +Po 0 44000 36500 45250 36500 250 -1 +De 15 0 9 0 800 +Po 0 41750 29750 41550 29600 250 -1 +De 15 0 9 0 400 +Po 0 45250 36500 45750 36000 250 -1 +De 15 0 9 0 0 +Po 0 66750 41500 67000 41250 250 -1 De 0 0 10 0 0 -Po 0 56750 29500 57000 29250 250 -1 -De 15 0 10 0 0 -Po 0 57000 34000 56500 33500 250 -1 -De 0 0 10 0 0 -Po 0 57250 35000 57000 34750 250 -1 -De 0 0 10 0 0 -Po 3 49000 34500 49000 34500 700 -1 -De 15 1 10 0 0 -Po 0 54500 33000 54500 30000 250 -1 -De 0 0 10 0 0 -Po 0 56000 28500 58000 28500 250 -1 +Po 0 71500 37750 71500 37700 250 -1 De 0 0 10 0 400 -Po 0 56500 30750 56750 30500 250 -1 -De 15 0 10 0 0 -Po 0 58000 28500 58000 27750 250 -1 +Po 0 64000 41500 66750 41500 250 -1 De 0 0 10 0 800 -Po 0 56750 30500 56750 29500 250 -1 -De 15 0 10 0 0 -Po 0 60000 35000 57250 35000 170 -1 +Po 0 67000 40000 68000 40000 250 -1 De 0 0 10 0 800 -Po 0 50000 34500 49000 34500 250 -1 -De 0 0 10 0 800 -Po 0 57000 34750 57000 34000 250 -1 +Po 0 68000 40000 70250 37750 250 -1 De 0 0 10 0 0 -Po 0 57750 29250 58000 29000 250 -1 -De 15 0 10 0 0 -Po 0 56500 33500 55500 33500 250 -1 +Po 0 67000 41250 67000 40000 250 -1 De 0 0 10 0 400 -Po 0 49000 34500 49000 31500 250 -1 -De 15 0 10 0 0 -Po 0 58000 29000 58000 28500 250 -1 -De 15 0 10 0 400 -Po 0 58250 27500 59500 27500 250 -1 -De 0 0 10 0 400 -Po 0 55000 33500 54500 33000 250 -1 +Po 0 70250 37750 71500 37750 250 -1 De 0 0 10 0 0 -Po 0 55500 33500 55000 33500 250 -1 -De 0 0 10 0 800 -Po 0 57000 29250 57750 29250 250 -1 -De 15 0 10 0 0 -Po 0 54500 30000 56000 28500 250 -1 -De 0 0 10 0 0 -Po 0 49750 30750 56500 30750 250 -1 -De 15 0 10 0 0 -Po 0 49000 31500 49750 30750 250 -1 -De 15 0 10 0 0 -Po 0 43250 36350 43250 39500 250 -1 +Po 0 43500 32000 43250 31750 250 -1 De 15 0 11 0 0 -Po 0 43000 40500 41500 40500 250 -1 -De 15 0 11 0 0 -Po 0 41550 39350 43250 39350 250 -1 -De 15 0 11 0 800 -Po 0 43000 36100 43250 36350 250 -1 -De 15 0 11 0 0 -Po 0 41550 36100 43000 36100 250 -1 -De 15 0 11 0 800 -Po 0 41500 40500 41550 40400 250 -1 +Po 0 41750 31750 41550 31800 250 -1 De 15 0 11 0 400 -Po 0 43250 40250 43000 40500 250 -1 +Po 0 44000 32000 43500 32000 250 -1 +De 15 0 11 0 800 +Po 0 43250 31750 41750 31750 250 -1 De 15 0 11 0 0 -Po 0 43250 39500 43250 40250 250 -1 -De 15 0 11 0 0 -Po 0 43250 39350 43250 39500 250 -1 -De 15 0 11 0 0 -Po 0 50000 35500 51250 35500 250 -1 +Po 0 41750 30000 41550 30150 250 -1 +De 0 0 12 0 400 +Po 0 44000 30000 41750 30000 250 -1 De 0 0 12 0 800 -Po 0 53500 35000 53750 34750 250 -1 -De 0 0 12 0 0 -Po 0 53500 33500 53000 33500 250 -1 -De 0 0 12 0 400 -Po 0 48250 35500 50000 35500 250 -1 -De 0 0 12 0 400 -Po 0 48000 35250 48250 35500 250 -1 -De 0 0 12 0 0 -Po 0 51750 35000 53500 35000 170 -1 -De 0 0 12 0 0 -Po 0 51250 35500 52250 36500 250 -1 -De 0 0 12 0 0 -Po 0 53750 34750 53750 33750 250 -1 -De 0 0 12 0 0 -Po 0 53500 33500 53750 33750 250 -1 -De 0 0 12 0 0 -Po 0 48000 34000 48000 35250 250 -1 -De 0 0 12 0 800 -Po 0 51250 35500 51750 35000 250 -1 -De 0 0 12 0 0 -Po 0 52250 36500 53000 36500 250 -1 -De 0 0 12 0 400 -Po 0 54000 37500 53000 37500 250 -1 -De 0 0 13 0 400 -Po 0 54250 37250 54000 37500 250 -1 +Po 0 46000 35250 45750 35500 400 -1 De 0 0 13 0 0 -Po 0 52000 31250 52000 32750 250 -1 +Po 0 45750 35500 43250 35500 400 -1 De 0 0 13 0 0 -Po 0 51750 31000 52000 31250 250 -1 +Po 0 43250 35500 43000 35750 400 -1 De 0 0 13 0 0 -Po 0 52250 33000 53750 33000 170 -1 +Po 0 57000 38250 57000 36500 400 -1 De 0 0 13 0 0 -Po 0 54250 37250 54250 33500 250 -1 -De 0 0 13 0 0 -Po 0 53750 33000 54250 33500 250 -1 -De 0 0 13 0 0 -Po 0 52000 32750 52250 33000 250 -1 -De 0 0 13 0 0 -Po 0 48000 31000 51750 31000 250 -1 +Po 0 50000 33500 46250 33500 170 -1 De 0 0 13 0 800 -Po 0 48000 36500 50000 36500 250 -1 -De 0 0 14 0 C00 -Po 0 49500 32500 50000 32500 250 -1 +Po 0 50000 38500 50000 42500 400 -1 +De 0 0 13 0 800 +Po 0 43000 42250 43250 42500 400 -1 +De 0 0 13 0 0 +Po 0 50000 42500 55500 42500 400 -1 +De 0 0 13 0 400 +Po 0 43000 35750 43000 41000 400 -1 +De 0 0 13 0 0 +Po 0 58500 33500 57500 33500 400 -1 +De 0 0 13 0 800 +Po 0 41550 40950 43000 40950 250 -1 +De 0 0 13 0 800 +Po 0 43000 40950 43000 41000 250 -1 +De 0 0 13 0 0 +Po 0 41550 35550 43250 35550 250 -1 +De 0 0 13 0 800 +Po 0 43250 35550 43250 35500 250 -1 +De 0 0 13 0 0 +Po 0 43250 42500 50000 42500 400 -1 +De 0 0 13 0 0 +Po 0 43000 41000 43000 42250 400 -1 +De 0 0 13 0 0 +Po 0 46000 33750 46000 35250 400 -1 +De 0 0 13 0 0 +Po 0 46250 33500 46000 33750 400 -1 +De 0 0 13 0 0 +Po 0 58500 42500 61750 42500 400 -1 +De 0 0 13 0 800 +Po 0 62000 42250 62000 31750 400 -1 +De 0 0 13 0 0 +Po 0 61750 42500 62000 42250 400 -1 +De 0 0 13 0 0 +Po 0 59000 28250 61250 28250 400 -1 +De 0 0 13 0 0 +Po 0 57000 42500 58500 42500 400 -1 +De 0 0 13 0 C00 +Po 0 55500 42500 57000 42500 400 -1 +De 0 0 13 0 C00 +Po 0 62000 29250 62250 29000 400 -1 +De 0 0 13 0 0 +Po 0 62000 31750 62000 29250 400 -1 +De 0 0 13 0 0 +Po 0 62250 29000 63500 29000 400 -1 +De 0 0 13 0 400 +Po 0 62250 32000 62000 31750 400 -1 +De 0 0 13 0 0 +Po 0 67000 32000 62250 32000 400 -1 +De 0 0 13 0 800 +Po 0 63250 27500 63500 27750 400 -1 +De 0 0 13 0 0 +Po 0 61500 27500 63250 27500 400 -1 +De 0 0 13 0 800 +Po 0 63500 27750 63500 29000 400 -1 +De 0 0 13 0 400 +Po 0 61000 36000 60750 36250 400 -1 +De 0 0 13 0 0 +Po 0 71500 37150 71500 36050 400 -1 +De 15 0 13 0 C00 +Po 0 71500 36050 71500 34950 400 -1 +De 15 0 13 0 C00 +Po 0 71500 34950 71500 33850 400 -1 +De 15 0 13 0 C00 +Po 0 71500 33850 71500 32250 400 -1 +De 15 0 13 0 800 +Po 0 67000 32000 70000 32000 400 -1 +De 0 0 13 0 800 +Po 0 71250 32000 71500 32250 400 -1 +De 15 0 13 0 0 +Po 0 70000 32000 71250 32000 400 -1 +De 15 0 13 0 0 +Po 3 70000 32000 70000 32000 700 -1 +De 15 1 13 0 0 +Po 0 56500 32500 55500 32500 400 -1 +De 0 0 13 0 400 +Po 0 57500 33500 56500 32500 400 -1 +De 0 0 13 0 0 +Po 0 58750 29250 58750 28500 400 -1 +De 0 0 13 0 0 +Po 0 58750 28500 59000 28250 400 -1 +De 0 0 13 0 0 +Po 0 56750 38500 57000 38250 400 -1 +De 0 0 13 0 0 +Po 0 55500 36500 55500 35500 400 -1 +De 0 0 13 0 C00 +Po 0 57000 36500 58500 36500 400 -1 +De 0 0 13 0 400 +Po 0 55500 38500 56750 38500 400 -1 +De 0 0 13 0 800 +Po 0 55500 36500 57000 36500 400 -1 +De 0 0 13 0 800 +Po 0 55750 30000 58000 30000 400 -1 +De 0 0 13 0 400 +Po 0 55500 32500 55500 30250 400 -1 +De 0 0 13 0 800 +Po 0 60750 33500 61000 33750 400 -1 +De 0 0 13 0 0 +Po 0 61000 33750 61000 36000 400 -1 +De 0 0 13 0 0 +Po 0 60750 36250 59250 36250 400 -1 +De 0 0 13 0 0 +Po 0 59250 36250 59000 36500 400 -1 +De 0 0 13 0 0 +Po 0 55500 30250 55750 30000 400 -1 +De 0 0 13 0 0 +Po 0 58000 30000 58750 29250 400 -1 +De 0 0 13 0 800 +Po 0 61500 28000 61500 27500 400 -1 +De 0 0 13 0 400 +Po 0 61250 28250 61500 28000 400 -1 +De 0 0 13 0 0 +Po 0 58500 34500 58500 33500 400 -1 +De 0 0 13 0 C00 +Po 0 58500 37500 58500 36500 400 -1 +De 0 0 13 0 C00 +Po 0 59000 36500 58500 36500 400 -1 +De 0 0 13 0 400 +Po 0 58500 33500 60750 33500 400 -1 +De 0 0 13 0 800 +Po 0 43000 36100 43250 36350 250 -1 +De 15 0 14 0 0 +Po 0 41550 36100 43000 36100 250 -1 +De 15 0 14 0 800 +Po 0 43250 36350 43250 39500 250 -1 +De 15 0 14 0 0 +Po 0 43250 40250 43000 40500 250 -1 +De 15 0 14 0 0 +Po 0 43250 39500 43250 40250 250 -1 +De 15 0 14 0 0 +Po 0 43250 39350 43250 39500 250 -1 +De 15 0 14 0 0 +Po 0 41550 39350 43250 39350 250 -1 +De 15 0 14 0 800 +Po 0 43000 40500 41500 40500 250 -1 +De 15 0 14 0 0 +Po 0 41500 40500 41550 40400 250 -1 +De 15 0 14 0 400 +Po 0 48250 28500 50000 28500 250 -1 De 0 0 15 0 400 -Po 0 49000 33000 49500 32500 250 -1 -De 0 0 15 0 0 -Po 0 48000 33000 49000 33000 250 -1 +Po 0 48000 30000 48000 28750 250 -1 De 0 0 15 0 800 -Po 0 53250 41000 48000 41000 250 -1 -De 15 0 16 0 400 -Po 0 54750 35250 54750 39500 250 -1 -De 0 0 16 0 0 -Po 0 54750 39500 53250 41000 250 -1 -De 15 0 16 0 0 +Po 0 48000 28750 48250 28500 250 -1 +De 0 0 15 0 0 Po 3 54750 39500 54750 39500 700 -1 De 15 1 16 0 0 +Po 0 54750 39500 53250 41000 250 -1 +De 15 0 16 0 0 +Po 0 54750 35250 54750 39500 250 -1 +De 0 0 16 0 0 +Po 0 53250 41000 48000 41000 250 -1 +De 15 0 16 0 400 Po 0 55500 34500 54750 35250 250 -1 De 0 0 16 0 800 -Po 0 71500 30250 71500 33300 400 -1 -De 0 0 17 0 400 -Po 0 65000 30000 67000 30000 400 -1 -De 0 0 17 0 400 -Po 0 71500 30250 71250 30000 400 -1 -De 0 0 17 0 0 -Po 0 67000 30000 71250 30000 400 -1 -De 0 0 17 0 800 -Po 0 63000 31000 64000 31000 400 -1 -De 0 0 17 0 800 -Po 0 64000 31000 65000 30000 400 -1 -De 0 0 17 0 0 -Po 0 68500 37500 68500 36750 250 -1 +Po 0 48000 36500 50000 36500 250 -1 +De 0 0 17 0 C00 +Po 0 52250 33000 53750 33000 170 -1 De 0 0 18 0 0 -Po 0 68750 36500 71500 36500 250 -1 -De 0 0 18 0 0 -Po 0 68000 38000 68500 37500 250 -1 -De 0 0 18 0 0 -Po 0 65000 38000 67000 38000 250 -1 -De 0 0 18 0 400 -Po 0 68500 36750 68750 36500 250 -1 -De 0 0 18 0 0 -Po 0 67000 38000 68000 38000 250 -1 +Po 0 48000 31000 51750 31000 250 -1 De 0 0 18 0 800 -Po 0 71500 36500 71500 36600 250 -1 +Po 0 54000 37500 53000 37500 250 -1 De 0 0 18 0 400 -Po 0 64000 39000 65000 38000 250 -1 -De 0 0 18 0 800 -Po 0 64000 35000 64000 34250 250 -1 +Po 0 54250 37250 54000 37500 250 -1 +De 0 0 18 0 0 +Po 0 52000 31250 52000 32750 250 -1 +De 0 0 18 0 0 +Po 0 51750 31000 52000 31250 250 -1 +De 0 0 18 0 0 +Po 0 54250 37250 54250 33500 250 -1 +De 0 0 18 0 0 +Po 0 53750 33000 54250 33500 250 -1 +De 0 0 18 0 0 +Po 0 52000 32750 52250 33000 250 -1 +De 0 0 18 0 0 +Po 0 49000 33000 49500 32500 250 -1 +De 0 0 19 0 0 +Po 0 48000 33000 49000 33000 250 -1 De 0 0 19 0 800 -Po 0 70250 34250 71250 34250 250 -1 -De 0 0 19 0 0 -Po 0 64000 34250 64250 34000 250 -1 -De 0 0 19 0 0 -Po 0 67000 34000 70000 34000 250 -1 -De 0 0 19 0 800 -Po 0 64250 34000 67000 34000 250 -1 +Po 0 49500 32500 50000 32500 250 -1 De 0 0 19 0 400 -Po 0 71250 34250 71500 34400 250 -1 -De 0 0 19 0 400 -Po 0 70000 34000 70250 34250 250 -1 -De 0 0 19 0 0 -Po 0 42500 33950 43000 34450 250 -1 -De 15 0 20 0 0 -Po 0 43000 34450 43300 34750 250 -1 -De 15 0 20 0 0 -Po 0 43300 34750 44750 34750 250 -1 -De 15 0 20 0 0 -Po 0 44750 34750 45000 34500 250 -1 -De 15 0 20 0 0 -Po 0 45000 34500 45000 33250 250 -1 -De 15 0 20 0 0 -Po 0 45000 33250 44750 33000 250 -1 -De 15 0 20 0 0 -Po 0 44750 33000 44000 33000 250 -1 -De 15 0 20 0 400 -Po 0 41550 33950 42500 33950 250 -1 -De 15 0 20 0 800 -Po 0 69000 35500 71500 35500 250 -1 -De 0 0 21 0 400 -Po 0 68500 36000 69000 35500 250 -1 +Po 0 48750 32000 49000 31750 250 -1 +De 0 0 20 0 0 +Po 0 48000 32000 48750 32000 250 -1 +De 0 0 20 0 800 +Po 0 51750 34500 51500 34250 250 -1 +De 0 0 20 0 0 +Po 0 51500 34250 51500 32250 250 -1 +De 0 0 20 0 0 +Po 0 51750 34500 53000 34500 250 -1 +De 0 0 20 0 400 +Po 0 51000 31750 49000 31750 250 -1 +De 0 0 20 0 0 +Po 0 51500 32250 51000 31750 250 -1 +De 0 0 20 0 0 +Po 0 50000 35500 51250 35500 250 -1 +De 0 0 21 0 800 +Po 0 53500 35000 53750 34750 250 -1 De 0 0 21 0 0 -Po 0 64000 37000 65000 36000 250 -1 -De 0 0 21 0 800 -Po 0 65000 36000 67000 36000 250 -1 +Po 0 53500 33500 53000 33500 250 -1 De 0 0 21 0 400 -Po 0 67000 36000 68500 36000 250 -1 +Po 0 48250 35500 50000 35500 250 -1 +De 0 0 21 0 400 +Po 0 52250 36500 53000 36500 250 -1 +De 0 0 21 0 400 +Po 0 51250 35500 51750 35000 250 -1 +De 0 0 21 0 0 +Po 0 48000 34000 48000 35250 250 -1 De 0 0 21 0 800 -Po 0 44000 36500 45250 36500 250 -1 -De 15 0 22 0 800 -Po 0 45250 36500 45750 36000 250 -1 -De 15 0 22 0 0 -Po 0 41750 29750 41550 29600 250 -1 -De 15 0 22 0 400 -Po 0 45750 36000 45750 29500 250 -1 -De 15 0 22 0 0 -Po 0 45750 29500 45500 29250 250 -1 -De 15 0 22 0 0 -Po 0 41750 29500 41750 29750 250 -1 -De 15 0 22 0 0 -Po 0 45500 29250 43000 29250 250 -1 -De 15 0 22 0 0 -Po 0 42750 29500 41750 29500 250 -1 -De 15 0 22 0 0 -Po 0 43000 29250 42750 29500 250 -1 -De 15 0 22 0 0 -Po 0 67000 41250 67000 40000 250 -1 +Po 0 53500 33500 53750 33750 250 -1 +De 0 0 21 0 0 +Po 0 53750 34750 53750 33750 250 -1 +De 0 0 21 0 0 +Po 0 51250 35500 52250 36500 250 -1 +De 0 0 21 0 0 +Po 0 51750 35000 53500 35000 170 -1 +De 0 0 21 0 0 +Po 0 48000 35250 48250 35500 250 -1 +De 0 0 21 0 0 +Po 0 57750 41250 57750 40750 250 -1 +De 0 0 22 0 0 +Po 0 57750 40750 58000 40500 250 -1 +De 0 0 22 0 0 +Po 0 58000 40500 58500 40500 250 -1 +De 0 0 22 0 400 +Po 0 53000 35500 53500 35500 250 -1 +De 0 0 22 0 800 +Po 0 49500 37000 49250 37250 250 -1 +De 0 0 22 0 0 +Po 0 53500 37000 49500 37000 170 -1 +De 0 0 22 0 0 +Po 0 57250 41750 57750 41250 250 -1 +De 0 0 22 0 0 +Po 0 53500 35500 53750 35750 250 -1 +De 0 0 22 0 0 +Po 0 52000 41750 57250 41750 250 -1 +De 0 0 22 0 0 +Po 0 53750 35750 53750 36750 250 -1 +De 0 0 22 0 0 +Po 0 53750 36750 53500 37000 250 -1 +De 0 0 22 0 0 +Po 0 58500 40500 59750 40500 250 -1 +De 0 0 22 0 800 +Po 0 60000 40750 60000 41500 250 -1 +De 0 0 22 0 400 +Po 0 49500 38000 49250 37750 170 -1 +De 0 0 22 0 0 +Po 0 51000 38000 51500 38500 250 -1 +De 0 0 22 0 0 +Po 0 51500 38500 51500 41250 250 -1 +De 0 0 22 0 0 +Po 0 51500 41250 52000 41750 250 -1 +De 0 0 22 0 0 +Po 0 50750 38000 51000 38000 250 -1 +De 0 0 22 0 0 +Po 0 59750 40500 60000 40750 250 -1 +De 0 0 22 0 0 +Po 0 49250 37250 49250 37750 250 -1 +De 0 0 22 0 0 +Po 0 49500 38000 50750 38000 170 -1 +De 0 0 22 0 0 +Po 0 54000 39250 54000 40250 250 -1 +De 0 0 23 0 0 +Po 0 59250 39000 59250 38750 250 -1 +De 0 0 23 0 0 +Po 0 59000 39250 59250 39000 250 -1 +De 0 0 23 0 0 +Po 0 54000 40250 54250 40500 250 -1 +De 0 0 23 0 0 +Po 0 56750 39250 59000 39250 250 -1 +De 0 0 23 0 0 +Po 0 54250 39000 54000 39250 250 -1 +De 0 0 23 0 0 +Po 0 59250 38750 60000 38000 250 -1 +De 0 0 23 0 0 +Po 0 60000 38000 60000 37000 250 -1 De 0 0 23 0 400 -Po 0 68000 40000 70250 37750 250 -1 -De 0 0 23 0 0 -Po 0 67000 40000 68000 40000 250 -1 -De 0 0 23 0 800 -Po 0 64000 41500 66750 41500 250 -1 -De 0 0 23 0 800 -Po 0 71500 37750 71500 37700 250 -1 +Po 0 54250 40500 55500 40500 250 -1 De 0 0 23 0 400 -Po 0 66750 41500 67000 41250 250 -1 +Po 0 51500 37500 52000 38000 250 -1 De 0 0 23 0 0 -Po 0 70250 37750 71500 37750 250 -1 +Po 0 50000 37500 51500 37500 250 -1 +De 0 0 23 0 800 +Po 0 55500 40500 56750 39250 250 -1 +De 0 0 23 0 800 +Po 0 52000 38000 54000 38000 170 -1 De 0 0 23 0 0 -Po 0 43250 31750 41750 31750 250 -1 -De 15 0 24 0 0 -Po 0 43500 32000 43250 31750 250 -1 -De 15 0 24 0 0 -Po 0 41750 31750 41550 31800 250 -1 -De 15 0 24 0 400 -Po 0 44000 32000 43500 32000 250 -1 -De 15 0 24 0 800 -Po 0 58500 31250 58750 31000 400 -1 +Po 0 54000 38000 54250 38250 250 -1 +De 0 0 23 0 0 +Po 0 54250 38250 54250 39000 250 -1 +De 0 0 23 0 0 +Po 0 53000 38500 53000 41000 250 -1 +De 0 0 24 0 800 +Po 0 57000 41000 57000 40500 250 -1 +De 0 0 24 0 400 +Po 0 57000 40500 57750 39750 250 -1 +De 0 0 24 0 800 +Po 0 57750 39750 59750 39750 250 -1 +De 0 0 24 0 0 +Po 0 53250 41250 56750 41250 250 -1 +De 0 0 24 0 0 +Po 0 53000 41000 53250 41250 250 -1 +De 0 0 24 0 0 +Po 0 56750 41250 57000 41000 250 -1 +De 0 0 24 0 0 +Po 0 59750 39750 60000 39500 250 -1 +De 0 0 24 0 0 +Po 0 60000 39500 60000 39000 250 -1 +De 0 0 24 0 400 +Po 0 49000 31500 49750 30750 250 -1 +De 15 0 25 0 0 +Po 0 49750 30750 56500 30750 250 -1 +De 15 0 25 0 0 +Po 0 54500 30000 56000 28500 250 -1 De 0 0 25 0 0 -Po 0 53000 32500 53000 30000 400 -1 -De 0 0 25 0 C00 -Po 0 54000 28500 56250 28500 400 -1 -De 15 0 25 0 800 -Po 0 56250 28500 57250 27500 400 -1 +Po 0 57000 29250 57750 29250 250 -1 De 15 0 25 0 0 -Po 0 59000 28750 59250 29000 400 -1 -De 15 0 25 0 0 -Po 0 58500 27500 59000 28000 400 -1 -De 15 0 25 0 0 -Po 0 59500 31000 60000 31000 400 -1 +Po 0 55500 33500 55000 33500 250 -1 +De 0 0 25 0 800 +Po 0 55000 33500 54500 33000 250 -1 +De 0 0 25 0 0 +Po 0 58250 27500 59500 27500 250 -1 De 0 0 25 0 400 -Po 0 57250 27500 58500 27500 400 -1 -De 15 0 25 0 0 -Po 0 59250 29000 59500 29000 400 -1 +Po 0 58000 29000 58000 28500 250 -1 De 15 0 25 0 400 -Po 0 58500 32500 58500 31250 400 -1 -De 0 0 25 0 800 -Po 0 53000 30000 53000 28500 400 -1 -De 0 0 25 0 C00 -Po 0 58750 31000 59500 31000 400 -1 -De 0 0 25 0 0 -Po 0 54000 28500 53000 28500 400 -1 -De 0 0 25 0 C00 -Po 0 59500 29000 59500 31000 400 -1 -De 0 0 25 0 800 -Po 0 59000 28000 59000 28750 400 -1 +Po 0 49000 34500 49000 31500 250 -1 De 15 0 25 0 0 -Po 0 41750 30000 41550 30150 250 -1 -De 0 0 26 0 400 -Po 0 44000 30000 41750 30000 250 -1 +Po 0 56500 33500 55500 33500 250 -1 +De 0 0 25 0 400 +Po 0 57750 29250 58000 29000 250 -1 +De 15 0 25 0 0 +Po 0 57000 34750 57000 34000 250 -1 +De 0 0 25 0 0 +Po 0 58000 27750 58250 27500 250 -1 +De 0 0 25 0 0 +Po 0 56750 29500 57000 29250 250 -1 +De 15 0 25 0 0 +Po 0 57000 34000 56500 33500 250 -1 +De 0 0 25 0 0 +Po 0 57250 35000 57000 34750 250 -1 +De 0 0 25 0 0 +Po 3 49000 34500 49000 34500 700 -1 +De 15 1 25 0 0 +Po 0 54500 33000 54500 30000 250 -1 +De 0 0 25 0 0 +Po 0 56000 28500 58000 28500 250 -1 +De 0 0 25 0 400 +Po 0 56500 30750 56750 30500 250 -1 +De 15 0 25 0 0 +Po 0 58000 28500 58000 27750 250 -1 +De 0 0 25 0 800 +Po 0 56750 30500 56750 29500 250 -1 +De 15 0 25 0 0 +Po 0 60000 35000 57250 35000 170 -1 +De 0 0 25 0 800 +Po 0 50000 34500 49000 34500 250 -1 +De 0 0 25 0 800 +Po 0 53000 32500 53000 30000 400 -1 +De 0 0 26 0 C00 +Po 0 58500 31250 58750 31000 400 -1 +De 0 0 26 0 0 +Po 0 59000 28000 59000 28750 400 -1 +De 15 0 26 0 0 +Po 0 59500 29000 59500 31000 400 -1 De 0 0 26 0 800 +Po 0 54000 28500 53000 28500 400 -1 +De 0 0 26 0 C00 +Po 0 58750 31000 59500 31000 400 -1 +De 0 0 26 0 0 +Po 0 53000 30000 53000 28500 400 -1 +De 0 0 26 0 C00 +Po 0 58500 32500 58500 31250 400 -1 +De 0 0 26 0 800 +Po 0 59250 29000 59500 29000 400 -1 +De 15 0 26 0 400 +Po 0 57250 27500 58500 27500 400 -1 +De 15 0 26 0 0 +Po 0 59500 31000 60000 31000 400 -1 +De 0 0 26 0 400 +Po 0 58500 27500 59000 28000 400 -1 +De 15 0 26 0 0 +Po 0 59000 28750 59250 29000 400 -1 +De 15 0 26 0 0 +Po 0 56250 28500 57250 27500 400 -1 +De 15 0 26 0 0 +Po 0 54000 28500 56250 28500 400 -1 +De 15 0 26 0 800 $EndTRACK $ZONE $EndZONE $CZONE_OUTLINE -ZInfo 4BF0F951 4 "GND" +ZInfo 4BF0F951 13 "GND" ZLayer 0 ZAux 4 E ZClearance 200 T ZMinThickness 100 -ZOptions 1 16 F 200 200 +ZOptions 0 16 F 200 200 +ZSmoothing 0 0 ZCorner 72000 43000 0 ZCorner 72000 27000 0 ZCorner 41500 27000 0 ZCorner 41500 43000 1 $POLYSCORNERS -71950 42950 0 0 -71950 38299 0 0 -70450 38299 0 0 -70359 38261 0 0 -70314 38216 0 0 -68265 40265 0 0 -68144 40346 0 0 -68000 40375 0 0 -67927 40375 0 0 -67847 40567 0 0 -67566 40848 0 0 -67375 40926 0 0 -67375 41250 0 0 -67346 41394 0 0 -67305 41454 0 0 -67265 41516 0 0 -67015 41765 0 0 -66894 41846 0 0 -66750 41875 0 0 -64400 41875 0 0 -64311 41965 0 0 -64109 42049 0 0 -63891 42049 0 0 -63689 41965 0 0 -63535 41811 0 0 -63451 41609 0 0 -63451 41391 0 0 -63535 41189 0 0 -63689 41035 0 0 -63891 40951 0 0 -64109 40951 0 0 -64311 41035 0 0 -64400 41124 0 0 -66594 41125 0 0 -66625 41094 0 0 -66625 40927 0 0 -66433 40847 0 0 -66152 40566 0 0 -66000 40198 0 0 -66000 39800 0 0 -66153 39433 0 0 -66434 39152 0 0 -66802 39000 0 0 -66800 39000 0 0 -66433 38847 0 0 -66152 38566 0 0 -66073 38375 0 0 -65154 38375 0 0 -64549 38981 0 0 -64549 39109 0 0 -64465 39311 0 0 -64311 39465 0 0 -64109 39549 0 0 -63891 39549 0 0 -63689 39465 0 0 -63535 39311 0 0 -63451 39109 0 0 -63451 38891 0 0 -63535 38689 0 0 -63689 38535 0 0 -63891 38451 0 0 -64019 38451 0 0 -64735 37735 0 0 -64856 37654 0 0 -65000 37625 0 0 -66072 37625 0 0 -66153 37433 0 0 -66434 37152 0 0 -66802 37000 0 0 -66800 37000 0 0 -66433 36847 0 0 -66152 36566 0 0 -66073 36375 0 0 -65154 36375 0 0 -64549 36981 0 0 -64549 37109 0 0 -64465 37311 0 0 -64311 37465 0 0 -64109 37549 0 0 -63891 37549 0 0 -63689 37465 0 0 -63535 37311 0 0 -63451 37109 0 0 -63451 36891 0 0 -63535 36689 0 0 -63689 36535 0 0 -63891 36451 0 0 -64018 36451 0 0 -64735 35735 0 0 -64856 35654 0 0 -65000 35625 0 0 -66072 35625 0 0 -66153 35433 0 0 -66434 35152 0 0 -66802 35000 0 0 -66800 35000 0 0 -66433 34847 0 0 -66152 34566 0 0 -66073 34375 0 0 -64405 34375 0 0 -64375 34405 0 0 -64375 34599 0 0 -64465 34689 0 0 -64549 34891 0 0 -64549 35109 0 0 -64465 35311 0 0 -64311 35465 0 0 -64109 35549 0 0 -63891 35549 0 0 -63689 35465 0 0 -63535 35311 0 0 -63451 35109 0 0 -63451 34891 0 0 -63535 34689 0 0 -63625 34599 0 0 -63625 34250 0 0 -63654 34106 0 0 -63735 33985 0 0 -63984 33735 0 0 -64045 33694 0 0 -64106 33654 0 0 -64250 33625 0 0 -66072 33625 0 0 -66153 33433 0 0 -66303 33282 0 1 -66303 32626 0 0 -66163 32546 0 0 -66021 32206 0 0 -66017 31816 0 0 -66163 31454 0 0 -66303 31374 0 0 -66929 32000 0 0 -66303 32626 0 1 -66303 33282 0 0 -66434 33152 0 0 -66802 33000 0 0 -66816 33000 0 1 -66816 32983 0 0 -66454 32837 0 0 -66374 32697 0 0 -67000 32071 0 1 -67000 31929 0 0 -66374 31303 0 0 -66454 31163 0 0 -66794 31021 0 0 -67184 31017 0 0 -67546 31163 0 0 -67626 31303 0 0 -67000 31929 0 1 -67000 32071 0 0 -67626 32697 0 0 -67546 32837 0 0 -67206 32979 0 0 -66816 32983 0 1 -66816 33000 0 0 -67200 33000 0 0 -67567 33153 0 0 -67697 33282 0 1 -67697 32626 0 0 -67071 32000 0 0 -67697 31374 0 0 -67837 31454 0 0 -67979 31794 0 0 -67983 32184 0 0 -67837 32546 0 0 -67697 32626 0 1 -67697 33282 0 0 -67848 33434 0 0 -67926 33625 0 0 -70000 33625 0 0 -70144 33654 0 0 -70265 33735 0 0 -70266 33736 0 0 -70251 33699 0 0 -70251 32900 0 0 -70289 32809 0 0 -70359 32739 0 0 -70451 32701 0 0 -71050 32701 0 0 -71050 30450 0 0 -67999 30450 0 0 -67999 30800 0 0 -67961 30891 0 0 -67891 30961 0 0 -67799 30999 0 0 -66200 30999 0 0 -66109 30961 0 0 -66039 30891 0 0 -66001 30799 0 0 -66001 30450 0 0 -65185 30450 0 0 -64318 31318 0 0 -64173 31416 0 0 -64000 31450 0 0 -63284 31450 0 0 -63104 31525 0 0 -62895 31525 0 0 -62702 31445 0 0 -62555 31297 0 0 -62475 31104 0 0 -62475 30895 0 0 -62555 30702 0 0 -62703 30555 0 0 -62896 30475 0 0 -63105 30475 0 0 -63122 30482 0 1 -63122 29308 0 0 -63028 29281 0 0 -62968 29134 0 0 -62957 28921 0 0 -63028 28719 0 0 -63122 28692 0 0 -63429 29000 0 0 -63122 29308 0 1 -63122 30482 0 0 -63285 30550 0 0 -63421 30550 0 1 -63421 29543 0 0 -63219 29472 0 0 -63192 29378 0 0 -63500 29071 0 1 -63500 28929 0 0 -63192 28622 0 0 -63219 28528 0 0 -63366 28468 0 0 -63579 28457 0 0 -63781 28528 0 0 -63808 28622 0 0 -63500 28929 0 1 -63500 29071 0 0 -63808 29378 0 0 -63781 29472 0 0 -63634 29532 0 0 -63421 29543 0 1 -63421 30550 0 0 -63813 30550 0 0 -63878 30485 0 1 -63878 29308 0 0 -63571 29000 0 0 -63878 28692 0 0 -63972 28719 0 0 -64032 28866 0 0 -64043 29079 0 0 -63972 29281 0 0 -63878 29308 0 1 -63878 30485 0 0 -64682 29682 0 0 -64827 29584 0 0 -65000 29550 0 0 -66001 29550 0 0 -66001 29200 0 0 -66039 29109 0 0 -66109 29039 0 0 -66201 29001 0 0 -67800 29001 0 0 -67891 29039 0 0 -67961 29109 0 0 -67999 29201 0 0 -67999 29550 0 0 -71250 29550 0 0 -71423 29584 0 0 -71568 29682 0 0 -71818 29931 0 0 -71883 30029 0 0 -71916 30078 0 0 -71950 30250 0 0 -71950 27050 0 0 -61767 27050 0 0 -61790 27139 0 0 -61500 27429 0 0 -61210 27139 0 0 -61232 27050 0 0 -59785 27050 0 0 -59798 27055 0 0 -59945 27203 0 0 -60025 27396 0 0 -60025 27605 0 0 -59945 27798 0 0 -59797 27945 0 0 -59604 28025 0 0 -59395 28025 0 0 -59202 27945 0 0 -59132 27875 0 0 -58405 27875 0 0 -58375 27905 0 0 -58375 28099 0 0 -58465 28189 0 0 -58549 28391 0 0 -58549 28609 0 0 -58465 28811 0 0 -58311 28965 0 0 -58109 29049 0 0 -57891 29049 0 0 -57689 28965 0 0 -57598 28875 0 0 -56155 28875 0 0 -54875 30155 0 0 -54875 32013 0 0 -54909 31979 0 0 -55000 31941 0 0 -55099 31941 0 0 -55388 31940 0 0 -55450 32002 0 0 -55450 32450 0 0 -55450 32550 0 0 -55550 32550 0 1 -55550 32450 0 0 -55550 32002 0 0 -55612 31940 0 0 -55901 31941 0 0 -56000 31941 0 0 -56091 31979 0 0 -56161 32049 0 0 -56199 32141 0 0 -56200 32388 0 0 -56138 32450 0 0 -55550 32450 0 1 -55550 32550 0 0 -56138 32550 0 0 -56200 32612 0 0 -56199 32859 0 0 -56161 32951 0 0 -56091 33021 0 0 -56000 33059 0 0 -55987 33059 0 0 -56053 33125 0 0 -56500 33125 0 0 -56644 33154 0 0 -56765 33235 0 0 -57265 33735 0 0 -57346 33856 0 0 -57375 34000 0 0 -57375 34594 0 0 -57445 34665 0 0 -57639 34665 0 1 -57639 30290 0 0 -57548 30267 0 0 -57492 30130 0 0 -57481 29926 0 0 -57548 29733 0 0 -57639 29710 0 0 -57929 30000 0 0 -57639 30290 0 1 -57639 34665 0 0 -57826 34665 0 0 -57818 34637 0 0 -57865 34550 0 0 -58238 34550 0 1 -58238 34450 0 0 -57865 34450 0 0 -57818 34363 0 0 -57835 34304 0 0 -57950 34118 0 0 -58113 34000 0 0 -57950 33882 0 0 -57835 33696 0 0 -57818 33637 0 0 -57865 33550 0 0 -58450 33550 0 0 -58450 34450 0 0 -58238 34450 0 1 -58238 34550 0 0 -58450 34550 0 0 -58550 34550 0 1 -58550 34450 0 0 -58550 33550 0 1 -58550 33450 0 0 -58450 33450 0 0 -57865 33450 0 0 -57818 33363 0 0 -57835 33304 0 0 -57950 33118 0 0 -58115 32998 0 0 -58036 32965 0 0 -57882 32811 0 0 -57798 32609 0 0 -57798 32391 0 0 -57882 32189 0 0 -57926 32145 0 1 -57926 30519 0 0 -57733 30452 0 0 -57710 30361 0 0 -58000 30071 0 1 -58000 29929 0 0 -57710 29639 0 0 -57733 29548 0 0 -57870 29492 0 0 -58074 29481 0 0 -58267 29548 0 0 -58290 29639 0 0 -58000 29929 0 1 -58000 30071 0 0 -58290 30361 0 0 -58267 30452 0 0 -58130 30508 0 0 -57926 30519 0 1 -57926 32145 0 0 -58036 32035 0 0 -58050 32029 0 0 -58050 31250 0 0 -58084 31077 0 0 -58182 30932 0 0 -58361 30752 0 1 -58361 30290 0 0 -58071 30000 0 0 -58361 29710 0 0 -58452 29733 0 0 -58508 29870 0 0 -58519 30074 0 0 -58452 30267 0 0 -58361 30290 0 1 -58361 30752 0 0 -58431 30682 0 0 -58529 30616 0 0 -58578 30584 0 0 -58750 30550 0 0 -59050 30550 0 0 -59050 29326 0 0 -59035 29311 0 0 -58951 29109 0 0 -58951 28891 0 0 -59035 28689 0 0 -59189 28535 0 0 -59391 28451 0 0 -59609 28451 0 0 -59811 28535 0 0 -59965 28689 0 0 -60049 28891 0 0 -60049 29109 0 0 -59965 29311 0 0 -59950 29326 0 0 -59950 30476 0 0 -60325 30476 0 0 -60416 30514 0 0 -60486 30584 0 0 -60524 30676 0 0 -60524 31325 0 0 -60486 31416 0 0 -60416 31486 0 0 -60324 31524 0 0 -59675 31524 0 0 -59584 31486 0 0 -59548 31450 0 0 -58950 31450 0 0 -58950 32029 0 0 -58964 32035 0 0 -59118 32189 0 0 -59202 32391 0 0 -59202 32609 0 0 -59118 32811 0 0 -58964 32965 0 0 -58884 32998 0 0 -59050 33118 0 0 -59165 33304 0 0 -59182 33363 0 0 -59135 33450 0 0 -58550 33450 0 1 -58550 33550 0 0 -59135 33550 0 0 -59182 33637 0 0 -59165 33696 0 0 -59050 33882 0 0 -58886 34000 0 0 -59050 34118 0 0 -59165 34304 0 0 -59182 34363 0 0 -59135 34450 0 0 -58550 34450 0 1 -58550 34550 0 0 -59135 34550 0 0 -59182 34637 0 0 -59173 34665 0 0 -59558 34665 0 0 -59689 34535 0 0 -59891 34451 0 0 -60109 34451 0 0 -60311 34535 0 0 -60465 34689 0 0 -60549 34891 0 0 -60549 35109 0 0 -60465 35311 0 0 -60311 35465 0 0 -60109 35549 0 0 -59891 35549 0 0 -59689 35465 0 0 -59559 35335 0 0 -59178 35335 0 0 -59202 35391 0 0 -59202 35609 0 0 -59118 35811 0 0 -58964 35965 0 0 -58884 35998 0 0 -59050 36118 0 0 -59165 36304 0 0 -59182 36363 0 0 -59135 36450 0 0 -58550 36450 0 0 -58450 36450 0 0 -57865 36450 0 0 -57818 36363 0 0 -57835 36304 0 0 -57950 36118 0 0 -58115 35998 0 0 -58036 35965 0 0 -57882 35811 0 0 -57798 35609 0 0 -57798 35391 0 0 -57821 35335 0 0 -57408 35335 0 0 -57392 35346 0 0 -57250 35374 0 0 -57107 35346 0 0 -56984 35265 0 0 -56735 35015 0 0 -56654 34894 0 0 -56625 34750 0 0 -56625 34155 0 0 -56344 33875 0 0 -56053 33875 0 0 -55964 33965 0 0 -55879 34000 0 0 -55964 34035 0 0 -56118 34189 0 0 -56202 34391 0 0 -56202 34609 0 0 -56118 34811 0 0 -55964 34965 0 0 -55884 34998 0 0 -56050 35118 0 0 -56165 35304 0 0 -56182 35363 0 0 -56135 35450 0 0 -55550 35450 0 0 -55450 35450 0 0 -55450 35550 0 0 -55450 36450 0 0 -55450 36550 0 0 -55450 36951 0 0 -55550 36951 0 0 -55550 36550 0 1 -55550 36450 0 0 -55550 35550 0 0 -56135 35550 0 0 -56182 35637 0 0 -56165 35696 0 0 -56050 35882 0 0 -55886 36000 0 0 -56050 36118 0 0 -56165 36304 0 0 -56182 36363 0 0 -56135 36450 0 0 -55550 36450 0 1 -55550 36550 0 0 -56135 36550 0 0 -56182 36637 0 0 -56165 36696 0 0 -56050 36882 0 0 -55884 37001 0 0 -55964 37035 0 0 -56118 37189 0 0 -56202 37391 0 0 -56202 37609 0 0 -56118 37811 0 0 -55964 37965 0 0 -55884 37998 0 0 -56050 38118 0 0 -56165 38304 0 0 -56182 38363 0 0 -56135 38450 0 0 -55550 38450 0 0 -55550 38049 0 0 -55450 38049 0 0 -55450 38450 0 0 -55450 38550 0 0 -55450 39060 0 0 -55340 39060 0 0 -55127 39010 0 0 -55125 39008 0 0 -55125 39028 0 0 -55258 39161 0 0 -55349 39381 0 0 -55349 39619 0 0 -55258 39839 0 0 -55089 40008 0 0 -54869 40099 0 0 -54631 40099 0 0 -54411 40008 0 0 -54375 39972 0 0 -54375 40094 0 0 -54405 40125 0 0 -55132 40124 0 0 -55203 40055 0 0 -55396 39975 0 0 -55494 39975 0 0 -55550 39918 0 1 -55550 39060 0 0 -55550 38550 0 0 -56135 38550 0 0 -56182 38637 0 0 -56165 38696 0 0 -56050 38882 0 0 -55873 39010 0 0 -55660 39060 0 0 -55550 39060 0 1 -55550 39918 0 0 -56484 38985 0 0 -56545 38944 0 0 -56606 38904 0 0 -56750 38875 0 0 -57945 38875 0 0 -57882 38811 0 0 -57798 38609 0 0 -57798 38391 0 0 -57882 38189 0 0 -58036 38035 0 0 -58115 38001 0 0 -57950 37882 0 0 -57835 37696 0 0 -57818 37637 0 0 -57865 37550 0 1 -57865 37450 0 0 -57818 37363 0 0 -57835 37304 0 0 -57950 37118 0 0 -58113 37000 0 0 -57950 36882 0 0 -57835 36696 0 0 -57818 36637 0 0 -57865 36550 0 0 -58450 36550 0 0 -58450 37450 0 0 -57865 37450 0 1 -57865 37550 0 0 -58450 37550 0 0 -58450 37951 0 0 -58550 37951 0 0 -58550 37550 0 1 -58550 37450 0 0 -58550 36550 0 0 -59135 36550 0 0 -59182 36637 0 0 -59165 36696 0 0 -59050 36882 0 0 -58886 37000 0 0 -59050 37118 0 0 -59165 37304 0 0 -59182 37363 0 0 -59135 37450 0 0 -58550 37450 0 1 -58550 37550 0 0 -59135 37550 0 0 -59182 37637 0 0 -59165 37696 0 0 -59050 37882 0 0 -58884 38001 0 0 -58964 38035 0 0 -59118 38189 0 0 -59165 38303 0 0 -59625 37844 0 0 -59625 37401 0 0 -59535 37311 0 0 -59451 37109 0 0 -59451 36891 0 0 -59535 36689 0 0 -59689 36535 0 0 -59891 36451 0 0 -60109 36451 0 0 -60311 36535 0 0 -60465 36689 0 0 -60549 36891 0 0 -60549 37109 0 0 -60465 37311 0 0 -60375 37401 0 0 -60375 38000 0 0 -60346 38144 0 0 -60305 38204 0 0 -60265 38266 0 0 -60079 38451 0 0 -60109 38451 0 0 -60311 38535 0 0 -60465 38689 0 0 -60549 38891 0 0 -60549 39109 0 0 -60465 39311 0 0 -60375 39401 0 0 -60375 39500 0 0 -60346 39644 0 0 -60305 39704 0 0 -60265 39766 0 0 -60015 40015 0 0 -59894 40096 0 0 -59750 40125 0 0 -59894 40154 0 0 -60015 40235 0 0 -60265 40484 0 0 -60305 40545 0 0 -60346 40606 0 0 -60375 40750 0 0 -60375 41099 0 0 -60465 41189 0 0 -60549 41391 0 0 -60549 41609 0 0 -60465 41811 0 0 -60311 41965 0 0 -60109 42049 0 0 -59891 42049 0 0 -59689 41965 0 0 -59535 41811 0 0 -59451 41609 0 0 -59451 41391 0 0 -59535 41189 0 0 -59625 41099 0 0 -59625 40905 0 0 -59594 40875 0 0 -58867 40875 0 0 -58797 40945 0 0 -58604 41025 0 0 -58395 41025 0 0 -58202 40945 0 0 -58143 40886 0 0 -58125 40905 0 0 -58125 41250 0 0 -58096 41394 0 0 -58015 41515 0 0 -57515 42015 0 0 -57394 42096 0 0 -57284 42118 0 0 -57290 42139 0 0 -57000 42429 0 0 -56929 42500 0 0 -56639 42790 0 0 -56548 42767 0 0 -56492 42630 0 0 -56481 42426 0 0 -56548 42233 0 0 -56639 42210 0 0 -56622 42193 0 0 -56690 42124 0 0 -55809 42124 0 0 -55878 42193 0 0 -55861 42210 0 0 -55952 42233 0 0 -56008 42370 0 0 -56019 42574 0 0 -55952 42767 0 0 -55861 42790 0 0 -55571 42500 0 0 -55500 42429 0 0 -55429 42500 0 0 -55139 42790 0 0 -55048 42767 0 0 -54992 42630 0 0 -54981 42426 0 0 -55048 42233 0 0 -55139 42210 0 0 -55122 42193 0 0 -55190 42124 0 0 -52000 42125 0 0 -51856 42096 0 0 -51734 42014 0 0 -51235 41515 0 0 -51154 41394 0 0 -51125 41250 0 0 -51125 38655 0 0 -50845 38375 0 0 -50750 38375 0 0 -50681 38361 0 0 -50682 38363 0 0 -50635 38450 0 0 -50050 38450 0 0 -49950 38450 0 0 -49365 38450 0 0 -49318 38363 0 0 -49335 38304 0 0 -49343 38290 0 0 -49263 38237 0 0 -49261 38234 0 0 -49126 38100 0 0 -49106 38096 0 0 -48985 38015 0 0 -48904 37894 0 0 -48875 37750 0 0 -48875 37250 0 0 -48904 37106 0 0 -48985 36985 0 0 -49094 36875 0 0 -48401 36875 0 0 -48311 36965 0 0 -48109 37049 0 0 -47891 37049 0 0 -47689 36965 0 0 -47535 36811 0 0 -47451 36609 0 0 -47451 36391 0 0 -47535 36189 0 0 -47689 36035 0 0 -47891 35951 0 0 -48109 35951 0 0 -48311 36035 0 0 -48401 36125 0 0 -49445 36125 0 0 -49536 36035 0 0 -49620 36000 0 0 -49536 35965 0 0 -49446 35875 0 0 -48250 35875 0 0 -48106 35846 0 0 -48045 35805 0 0 -47984 35765 0 0 -47735 35515 0 0 -47654 35394 0 0 -47625 35250 0 0 -47625 34401 0 0 -47535 34311 0 0 -47451 34109 0 0 -47451 33891 0 0 -47535 33689 0 0 -47689 33535 0 0 -47773 33500 0 0 -47689 33465 0 0 -47535 33311 0 0 -47451 33109 0 0 -47451 32891 0 0 -47535 32689 0 0 -47689 32535 0 0 -47773 32500 0 0 -47689 32465 0 0 -47535 32311 0 0 -47451 32109 0 0 -47451 31891 0 0 -47535 31689 0 0 -47689 31535 0 0 -47773 31500 0 0 -47689 31465 0 0 -47535 31311 0 0 -47451 31109 0 0 -47451 30891 0 0 -47535 30689 0 0 -47689 30535 0 0 -47773 30500 0 0 -47689 30465 0 0 -47535 30311 0 0 -47451 30109 0 0 -47451 29891 0 0 -47535 29689 0 0 -47625 29599 0 0 -47625 28750 0 0 -47654 28606 0 0 -47735 28485 0 0 -47984 28235 0 0 -48045 28194 0 0 -48106 28154 0 0 -48250 28125 0 0 -49496 28125 0 0 -49514 28084 0 0 -49584 28014 0 0 -49676 27976 0 0 -50325 27976 0 0 -50416 28014 0 0 -50486 28084 0 0 -50524 28176 0 0 -50524 28825 0 0 -50486 28916 0 0 -50416 28986 0 0 -50324 29024 0 0 -49675 29024 0 0 -49584 28986 0 0 -49514 28916 0 0 -49497 28875 0 0 -48405 28875 0 0 -48375 28905 0 0 -48375 29599 0 0 -48465 29689 0 0 -48549 29891 0 0 -48549 30109 0 0 -48465 30311 0 0 -48311 30465 0 0 -48226 30500 0 0 -48311 30535 0 0 -48400 30625 0 0 -51750 30625 0 0 -51894 30654 0 0 -52015 30735 0 0 -52265 30984 0 0 -52305 31045 0 0 -52346 31106 0 0 -52375 31250 0 0 -52375 32205 0 0 -52382 32189 0 0 -52536 32035 0 0 -52550 32029 0 0 -52550 30452 0 0 -52514 30416 0 0 -52476 30324 0 0 -52476 29675 0 0 -52514 29584 0 0 -52550 29548 0 0 -52550 28784 0 0 -52475 28604 0 0 -52475 28395 0 0 -52555 28202 0 0 -52703 28055 0 0 -52896 27975 0 0 -53105 27975 0 0 -53285 28050 0 0 -53673 28050 0 0 -53689 28035 0 0 -53891 27951 0 0 -54109 27951 0 0 -54311 28035 0 0 -54465 28189 0 0 -54549 28391 0 0 -54549 28609 0 0 -54465 28811 0 0 -54311 28965 0 0 -54109 29049 0 0 -53891 29049 0 0 -53689 28965 0 0 -53674 28950 0 0 -53450 28950 0 0 -53450 29548 0 0 -53486 29584 0 0 -53524 29676 0 0 -53524 30325 0 0 -53486 30416 0 0 -53450 30452 0 0 -53450 32029 0 0 -53464 32035 0 0 -53618 32189 0 0 -53702 32391 0 0 -53702 32609 0 0 -53690 32637 0 0 -53750 32625 0 0 -53893 32654 0 0 -54015 32735 0 0 -54125 32845 0 0 -54125 30000 0 0 -54154 29856 0 0 -54235 29735 0 0 -55735 28235 0 0 -55856 28154 0 0 -56000 28125 0 0 -57598 28125 0 0 -57625 28099 0 0 -57625 27750 0 0 -57654 27606 0 0 -57735 27485 0 0 -57984 27235 0 0 -58045 27194 0 0 -58106 27154 0 0 -58250 27125 0 0 -59132 27125 0 0 -59203 27055 0 0 -59215 27050 0 0 -50145 27050 0 0 -50145 27680 0 0 -43735 27680 0 0 -43735 27050 0 0 -41550 27050 0 0 -41550 28551 0 0 -42600 28551 0 0 -42691 28589 0 0 -42761 28659 0 0 -42799 28751 0 0 -42799 29450 0 0 -42761 29541 0 0 -42691 29611 0 0 -42657 29624 0 0 -42657 29625 0 0 -43599 29625 0 0 -43689 29535 0 0 -43891 29451 0 0 -44109 29451 0 0 -44311 29535 0 0 -44465 29689 0 0 -44549 29891 0 0 -44549 30109 0 0 -44465 30311 0 0 -44311 30465 0 0 -44226 30500 0 0 -44311 30535 0 0 -44465 30689 0 0 -44549 30891 0 0 -44549 31109 0 0 -44465 31311 0 0 -44311 31465 0 0 -44226 31500 0 0 -44311 31535 0 0 -44465 31689 0 0 -44549 31891 0 0 -44549 32109 0 0 -44465 32311 0 0 -44311 32465 0 0 -44226 32500 0 0 -44311 32535 0 0 -44465 32689 0 0 -44549 32891 0 0 -44549 33109 0 0 -44465 33311 0 0 -44311 33465 0 0 -44226 33500 0 0 -44311 33535 0 0 -44465 33689 0 0 -44549 33891 0 0 -44549 34109 0 0 -44465 34311 0 0 -44311 34465 0 0 -44109 34549 0 0 -43891 34549 0 0 -43689 34465 0 0 -43535 34311 0 0 -43451 34109 0 0 -43451 33891 0 0 -43535 33689 0 0 -43689 33535 0 0 -43773 33499 0 0 -43689 33465 0 0 -43535 33311 0 0 -43451 33109 0 0 -43451 32891 0 0 -43535 32689 0 0 -43689 32535 0 0 -43773 32500 0 0 -43689 32465 0 0 -43535 32311 0 0 -43451 32109 0 0 -43451 31891 0 0 -43535 31689 0 0 -43689 31535 0 0 -43773 31500 0 0 -43689 31465 0 0 -43535 31311 0 0 -43451 31109 0 0 -43451 30891 0 0 -43535 30689 0 0 -43689 30535 0 0 -43773 30500 0 0 -43689 30465 0 0 -43598 30375 0 0 -42799 30375 0 0 -42799 30500 0 0 -42761 30591 0 0 -42691 30661 0 0 -42599 30699 0 0 -41550 30699 0 0 -41550 30701 0 0 -42600 30701 0 0 -42691 30739 0 0 -42761 30809 0 0 -42799 30901 0 0 -42799 31600 0 0 -42761 31691 0 0 -42691 31761 0 0 -42657 31774 0 0 -42691 31789 0 0 -42761 31859 0 0 -42799 31951 0 0 -42799 32650 0 0 -42761 32741 0 0 -42691 32811 0 0 -42599 32849 0 0 -41550 32849 0 0 -41550 32851 0 0 -42600 32851 0 0 -42691 32889 0 0 -42761 32959 0 0 -42799 33051 0 0 -42799 33750 0 0 -42761 33841 0 0 -42691 33911 0 0 -42599 33949 0 0 -41550 33949 0 0 -41550 33951 0 0 -42600 33951 0 0 -42691 33989 0 0 -42761 34059 0 0 -42799 34151 0 0 -42799 34850 0 0 -42761 34941 0 0 -42691 35011 0 0 -42657 35025 0 0 -42691 35039 0 0 -42761 35109 0 0 -42799 35200 0 0 -42799 35299 0 0 -42800 35438 0 0 -42738 35500 0 0 -41600 35500 0 0 -41550 35500 0 0 -41550 35600 0 0 -41600 35600 0 0 -42738 35600 0 0 -42800 35662 0 0 -42799 35801 0 0 -42799 35900 0 0 -42761 35991 0 0 -42691 36061 0 0 -42599 36099 0 0 -41662 36100 0 0 -41600 36038 0 0 -41600 36050 0 0 -41550 36050 0 0 -41550 36101 0 0 -41662 36101 0 0 -42600 36101 0 0 -42691 36139 0 0 -42761 36209 0 0 -42799 36301 0 0 -42799 37000 0 0 -42761 37091 0 0 -42691 37161 0 0 -42657 37174 0 0 -42691 37189 0 0 -42761 37259 0 0 -42799 37351 0 0 -42799 38050 0 0 -42761 38141 0 0 -42691 38211 0 0 -42599 38249 0 0 -41550 38249 0 0 -41550 38251 0 0 -42600 38251 0 0 -42691 38289 0 0 -42761 38359 0 0 -42799 38451 0 0 -42799 39150 0 0 -42761 39241 0 0 -42691 39311 0 0 -42599 39349 0 0 -41550 39349 0 0 -41550 39351 0 0 -42600 39351 0 0 -42691 39389 0 0 -42761 39459 0 0 -42799 39551 0 0 -42799 40250 0 0 -42761 40341 0 0 -42691 40411 0 0 -42657 40424 0 0 -42691 40439 0 0 -42761 40509 0 0 -42799 40600 0 0 -42799 40699 0 0 -42800 40838 0 0 -42738 40900 0 0 -41600 40900 0 0 -41550 40900 0 0 -41550 42950 0 0 -41662 42950 0 1 -41662 41500 0 0 -41600 41438 0 0 -41600 41000 0 0 -42738 41000 0 0 -42800 41062 0 0 -42799 41201 0 0 -42799 41300 0 0 -42761 41391 0 0 -42691 41461 0 0 -42599 41499 0 0 -41662 41500 0 1 -41662 42950 0 0 -43891 42950 0 1 -43891 41549 0 0 -43689 41465 0 0 -43535 41311 0 0 -43451 41109 0 0 -43451 40891 0 0 -43535 40689 0 0 -43689 40535 0 0 -43891 40451 0 1 -43891 37049 0 0 -43689 36965 0 0 -43535 36811 0 0 -43451 36609 0 0 -43451 36391 0 0 -43535 36189 0 0 -43689 36035 0 0 -43891 35951 0 0 -44109 35951 0 0 -44311 36035 0 0 -44465 36189 0 0 -44549 36391 0 0 -44549 36609 0 0 -44465 36811 0 0 -44311 36965 0 0 -44109 37049 0 0 -43891 37049 0 1 -43891 40451 0 0 -44109 40451 0 0 -44311 40535 0 0 -44465 40689 0 0 -44549 40891 0 0 -44549 41109 0 0 -44465 41311 0 0 -44311 41465 0 0 -44109 41549 0 0 -43891 41549 0 1 -43891 42950 0 0 -47891 42950 0 1 -47891 41549 0 0 -47689 41465 0 0 -47535 41311 0 0 -47451 41109 0 0 -47451 40891 0 0 -47535 40689 0 0 -47689 40535 0 0 -47891 40451 0 0 -48109 40451 0 0 -48311 40535 0 0 -48465 40689 0 0 -48549 40891 0 0 -48549 41109 0 0 -48465 41311 0 0 -48311 41465 0 0 -48109 41549 0 0 -47891 41549 0 1 -47891 42950 0 0 -49840 42950 0 1 -49840 39060 0 0 -49627 39010 0 0 -49450 38882 0 0 -49335 38696 0 0 -49318 38637 0 0 -49365 38550 0 0 -49950 38550 0 0 -49950 39060 0 0 -49840 39060 0 1 -49840 42950 0 0 -50050 42950 0 1 -50050 39060 0 0 -50050 38550 0 0 -50635 38550 0 0 -50682 38637 0 0 -50665 38696 0 0 -50550 38882 0 0 -50373 39010 0 0 -50160 39060 0 0 -50050 39060 0 1 -50050 42950 0 0 -55139 42950 0 0 -55232 42950 0 0 -55210 42861 0 0 -55500 42571 0 0 -55790 42861 0 0 -55767 42950 0 0 -55861 42950 0 0 -56639 42950 0 0 -56732 42950 0 0 -56710 42861 0 0 -57000 42571 0 0 -57290 42861 0 0 -57267 42950 0 0 -57361 42950 0 1 -57361 42790 0 0 -57071 42500 0 0 -57361 42210 0 0 -57452 42233 0 0 -57508 42370 0 0 -57519 42574 0 0 -57452 42767 0 0 -57361 42790 0 1 -57361 42950 0 0 -58139 42950 0 1 -58139 42790 0 0 -58048 42767 0 0 -57992 42630 0 0 -57981 42426 0 0 -58048 42233 0 0 -58139 42210 0 0 -58429 42500 0 0 -58139 42790 0 1 -58139 42950 0 0 -58232 42950 0 0 -58210 42861 0 0 -58500 42571 0 1 -58500 42429 0 0 -58210 42139 0 0 -58233 42048 0 0 -58370 41992 0 0 -58574 41981 0 0 -58767 42048 0 0 -58790 42139 0 0 -58500 42429 0 1 -58500 42571 0 0 -58790 42861 0 0 -58767 42950 0 0 -58861 42950 0 1 -58861 42790 0 0 -58571 42500 0 0 -58861 42210 0 0 -58952 42233 0 0 -59008 42370 0 0 -59019 42574 0 0 -58952 42767 0 0 -58861 42790 0 1 -58861 42950 0 0 -61139 42950 0 1 -61139 27790 0 0 -61048 27767 0 0 -60992 27630 0 0 -60981 27426 0 0 -61048 27233 0 0 -61139 27210 0 0 -61429 27500 0 0 -61139 27790 0 1 -61139 42950 0 0 -61426 42950 0 1 -61426 28019 0 0 -61233 27952 0 0 -61210 27861 0 0 -61500 27571 0 0 -61790 27861 0 0 -61767 27952 0 0 -61630 28008 0 0 -61426 28019 0 1 -61426 42950 0 0 -61861 42950 0 1 -61861 27790 0 0 -61571 27500 0 0 -61861 27210 0 0 -61952 27233 0 0 -62008 27370 0 0 -62019 27574 0 0 -61952 27767 0 0 -61861 27790 0 1 -61861 42950 1 0 -51095 35125 0 0 51469 34750 0 0 -51235 34515 0 0 -51154 34394 0 0 -51125 34250 0 0 -51125 32405 0 0 -50845 32125 0 0 -50692 32125 0 0 -50699 32141 0 0 -50699 32860 0 0 -50661 32951 0 0 -50591 33021 0 0 -50499 33059 0 0 -50468 33059 0 0 -50550 33118 0 0 -50665 33304 0 0 -50682 33363 0 0 -50635 33450 0 0 -50050 33450 0 0 -49950 33450 0 0 -49365 33450 0 0 -49318 33363 0 0 -49335 33304 0 0 -49450 33118 0 0 -49531 33059 0 0 -49500 33059 0 0 -49479 33050 0 0 -49265 33265 0 0 -49144 33346 0 0 -49000 33375 0 0 -48400 33375 0 0 -48311 33465 0 0 -48226 33500 0 0 -48311 33535 0 0 -48465 33689 0 0 -48549 33891 0 0 -48549 34104 0 0 -48661 33992 0 0 -48881 33901 0 0 -49119 33901 0 0 -49339 33992 0 0 -49459 34112 0 0 -49536 34035 0 0 -49615 34001 0 0 -49450 33882 0 0 -49335 33696 0 0 -49318 33637 0 0 -49365 33550 0 0 -49950 33550 0 0 -50050 33550 0 0 -50635 33550 0 0 -50682 33637 0 0 -50665 33696 0 0 -50550 33882 0 0 -50384 34001 0 0 -50464 34035 0 0 -50618 34189 0 0 -50702 34391 0 0 -50702 34609 0 0 -50618 34811 0 0 -50464 34965 0 0 -50379 35000 0 0 +51095 35125 0 0 +50554 35125 0 0 50464 35035 0 0 -50553 35125 1 0 +50379 35000 0 0 +50464 34965 0 0 +50618 34811 0 0 +50702 34609 0 0 +50702 34391 0 0 +50618 34189 0 0 +50464 34035 0 0 +50384 34001 0 0 +50550 33882 0 0 +50665 33696 0 0 +50682 33637 0 0 +50635 33550 0 0 +50100 33550 0 0 +50050 33550 0 0 +49950 33550 0 0 +49900 33550 0 0 +49365 33550 0 0 +49318 33637 0 0 +49335 33696 0 0 +49450 33882 0 0 +49615 34001 0 0 +49536 34035 0 0 +49459 34112 0 0 +49339 33992 0 0 +49119 33901 0 0 +48881 33901 0 0 +48661 33992 0 0 +48549 34104 0 0 +48549 33891 0 0 +48465 33689 0 0 +48311 33535 0 0 +48226 33500 0 0 +48311 33465 0 0 +48401 33375 0 0 +49000 33375 0 0 +49143 33346 0 0 +49144 33346 0 0 +49265 33265 0 0 +49479 33050 0 0 +49500 33059 0 0 +49531 33059 0 0 +49450 33118 0 0 +49335 33304 0 0 +49318 33363 0 0 +49365 33450 0 0 +49900 33450 0 0 +49950 33450 0 0 +50050 33450 0 0 +50100 33450 0 0 +50635 33450 0 0 +50682 33363 0 0 +50665 33304 0 0 +50550 33118 0 0 +50468 33059 0 0 +50499 33059 0 0 +50591 33021 0 0 +50661 32951 0 0 +50699 32860 0 0 +50699 32761 0 0 +50699 32141 0 0 +50692 32125 0 0 +50845 32125 0 0 +51125 32405 0 0 +51125 34250 0 0 +51154 34394 0 0 +51235 34515 0 0 +51469 34750 1 0 +71950 42950 0 0 +62019 42950 0 0 +62019 27574 0 0 +62008 27370 0 0 +61952 27233 0 0 +61861 27210 0 0 +61571 27500 0 0 +61861 27790 0 0 +61952 27767 0 0 +62019 27574 0 0 +62019 42950 0 0 +61790 42950 0 0 +61790 27861 0 0 +61500 27571 0 0 +61429 27642 0 0 +61429 27500 0 0 +61139 27210 0 0 +61048 27233 0 0 +60981 27426 0 0 +60992 27630 0 0 +61048 27767 0 0 +61139 27790 0 0 +61429 27500 0 0 +61429 27642 0 0 +61210 27861 0 0 +61233 27952 0 0 +61426 28019 0 0 +61630 28008 0 0 +61767 27952 0 0 +61790 27861 0 0 +61790 42950 0 0 +59019 42950 0 0 +59019 42574 0 0 +59008 42370 0 0 +58952 42233 0 0 +58861 42210 0 0 +58790 42281 0 0 +58790 42139 0 0 +58767 42048 0 0 +58574 41981 0 0 +58370 41992 0 0 +58233 42048 0 0 +58210 42139 0 0 +58500 42429 0 0 +58790 42139 0 0 +58790 42281 0 0 +58571 42500 0 0 +58861 42790 0 0 +58952 42767 0 0 +59019 42574 0 0 +59019 42950 0 0 +58767 42950 0 0 +58790 42861 0 0 +58500 42571 0 0 +58429 42642 0 0 +58429 42500 0 0 +58139 42210 0 0 +58048 42233 0 0 +57981 42426 0 0 +57992 42630 0 0 +58048 42767 0 0 +58139 42790 0 0 +58429 42500 0 0 +58429 42642 0 0 +58210 42861 0 0 +58232 42950 0 0 +57519 42950 0 0 +57519 42574 0 0 +57508 42370 0 0 +57452 42233 0 0 +57361 42210 0 0 +57071 42500 0 0 +57361 42790 0 0 +57452 42767 0 0 +57519 42574 0 0 +57519 42950 0 0 +57267 42950 0 0 +57290 42861 0 0 +57000 42571 0 0 +56929 42642 0 0 +56710 42861 0 0 +56732 42950 0 0 +56019 42950 0 0 +55767 42950 0 0 +55790 42861 0 0 +55500 42571 0 0 +55429 42642 0 0 +55210 42861 0 0 +55232 42950 0 0 +50682 42950 0 0 +50682 38637 0 0 +50635 38550 0 0 +50050 38550 0 0 +50050 39060 0 0 +50160 39060 0 0 +50373 39010 0 0 +50550 38882 0 0 +50665 38696 0 0 +50682 38637 0 0 +50682 42950 0 0 +49950 42950 0 0 +49950 39060 0 0 +49950 38550 0 0 +49365 38550 0 0 +49318 38637 0 0 +49335 38696 0 0 +49450 38882 0 0 +49627 39010 0 0 +49840 39060 0 0 +49950 39060 0 0 +49950 42950 0 0 +48549 42950 0 0 +48549 41109 0 0 +48549 40891 0 0 +48465 40689 0 0 +48311 40535 0 0 +48109 40451 0 0 +47891 40451 0 0 +47689 40535 0 0 +47535 40689 0 0 +47451 40891 0 0 +47451 41109 0 0 +47535 41311 0 0 +47689 41465 0 0 +47891 41549 0 0 +48109 41549 0 0 +48311 41465 0 0 +48465 41311 0 0 +48549 41109 0 0 +48549 42950 0 0 +44549 42950 0 0 +44549 41109 0 0 +44549 40891 0 0 +44549 36609 0 0 +44549 36391 0 0 +44465 36189 0 0 +44311 36035 0 0 +44109 35951 0 0 +43891 35951 0 0 +43689 36035 0 0 +43535 36189 0 0 +43451 36391 0 0 +43451 36609 0 0 +43535 36811 0 0 +43689 36965 0 0 +43891 37049 0 0 +44109 37049 0 0 +44311 36965 0 0 +44465 36811 0 0 +44549 36609 0 0 +44549 40891 0 0 +44465 40689 0 0 +44311 40535 0 0 +44109 40451 0 0 +43891 40451 0 0 +43689 40535 0 0 +43535 40689 0 0 +43451 40891 0 0 +43451 41109 0 0 +43535 41311 0 0 +43689 41465 0 0 +43891 41549 0 0 +44109 41549 0 0 +44311 41465 0 0 +44465 41311 0 0 +44549 41109 0 0 +44549 42950 0 0 +42800 42950 0 0 +42800 41062 0 0 +42738 41000 0 0 +41600 41000 0 0 +41600 41438 0 0 +41662 41500 0 0 +42599 41499 0 0 +42691 41461 0 0 +42761 41391 0 0 +42799 41300 0 0 +42799 41201 0 0 +42800 41062 0 0 +42800 42950 0 0 +41550 42950 0 0 +41550 40900 0 0 +41600 40900 0 0 +41650 40900 0 0 +42738 40900 0 0 +42800 40838 0 0 +42800 35662 0 0 +42738 35600 0 0 +41600 35600 0 0 +41600 36038 0 0 +41662 36100 0 0 +42599 36099 0 0 +42691 36061 0 0 +42761 35991 0 0 +42799 35900 0 0 +42799 35801 0 0 +42800 35662 0 0 +42800 40838 0 0 +42799 40699 0 0 +42799 40600 0 0 +42761 40509 0 0 +42691 40439 0 0 +42657 40425 0 0 +42691 40411 0 0 +42761 40341 0 0 +42799 40250 0 0 +42799 40151 0 0 +42799 39551 0 0 +42761 39459 0 0 +42691 39389 0 0 +42600 39351 0 0 +42501 39351 0 0 +41550 39351 0 0 +41550 39349 0 0 +42599 39349 0 0 +42691 39311 0 0 +42761 39241 0 0 +42799 39150 0 0 +42799 39051 0 0 +42799 38451 0 0 +42761 38359 0 0 +42691 38289 0 0 +42600 38251 0 0 +42501 38251 0 0 +41550 38251 0 0 +41550 38249 0 0 +42599 38249 0 0 +42691 38211 0 0 +42761 38141 0 0 +42799 38050 0 0 +42799 37951 0 0 +42799 37351 0 0 +42761 37259 0 0 +42691 37189 0 0 +42657 37174 0 0 +42691 37161 0 0 +42761 37091 0 0 +42799 37000 0 0 +42799 36901 0 0 +42799 36301 0 0 +42761 36209 0 0 +42691 36139 0 0 +42600 36101 0 0 +42501 36101 0 0 +41550 36101 0 0 +41550 35500 0 0 +41600 35500 0 0 +41650 35500 0 0 +42738 35500 0 0 +42800 35438 0 0 +42799 35299 0 0 +42799 35200 0 0 +42761 35109 0 0 +42691 35039 0 0 +42657 35025 0 0 +42691 35011 0 0 +42761 34941 0 0 +42799 34850 0 0 +42799 34751 0 0 +42799 34151 0 0 +42761 34059 0 0 +42691 33989 0 0 +42600 33951 0 0 +42501 33951 0 0 +41550 33951 0 0 +41550 33949 0 0 +42599 33949 0 0 +42691 33911 0 0 +42761 33841 0 0 +42799 33750 0 0 +42799 33651 0 0 +42799 33051 0 0 +42761 32959 0 0 +42691 32889 0 0 +42600 32851 0 0 +42501 32851 0 0 +41550 32851 0 0 +41550 32849 0 0 +42599 32849 0 0 +42691 32811 0 0 +42761 32741 0 0 +42799 32650 0 0 +42799 32551 0 0 +42799 31951 0 0 +42761 31859 0 0 +42691 31789 0 0 +42657 31774 0 0 +42691 31761 0 0 +42761 31691 0 0 +42799 31600 0 0 +42799 31501 0 0 +42799 30901 0 0 +42761 30809 0 0 +42691 30739 0 0 +42600 30701 0 0 +42501 30701 0 0 +41550 30701 0 0 +41550 30699 0 0 +42599 30699 0 0 +42691 30661 0 0 +42761 30591 0 0 +42799 30500 0 0 +42799 30401 0 0 +42799 30375 0 0 +43599 30375 0 0 +43689 30465 0 0 +43773 30500 0 0 +43689 30535 0 0 +43535 30689 0 0 +43451 30891 0 0 +43451 31109 0 0 +43535 31311 0 0 +43689 31465 0 0 +43773 31500 0 0 +43689 31535 0 0 +43535 31689 0 0 +43451 31891 0 0 +43451 32109 0 0 +43535 32311 0 0 +43689 32465 0 0 +43773 32500 0 0 +43689 32535 0 0 +43535 32689 0 0 +43451 32891 0 0 +43451 33109 0 0 +43535 33311 0 0 +43689 33465 0 0 +43773 33500 0 0 +43689 33535 0 0 +43535 33689 0 0 +43451 33891 0 0 +43451 34109 0 0 +43535 34311 0 0 +43689 34465 0 0 +43891 34549 0 0 +44109 34549 0 0 +44311 34465 0 0 +44465 34311 0 0 +44549 34109 0 0 +44549 33891 0 0 +44465 33689 0 0 +44311 33535 0 0 +44226 33500 0 0 +44311 33465 0 0 +44465 33311 0 0 +44549 33109 0 0 +44549 32891 0 0 +44465 32689 0 0 +44311 32535 0 0 +44226 32500 0 0 +44311 32465 0 0 +44465 32311 0 0 +44549 32109 0 0 +44549 31891 0 0 +44465 31689 0 0 +44311 31535 0 0 +44226 31500 0 0 +44311 31465 0 0 +44465 31311 0 0 +44549 31109 0 0 +44549 30891 0 0 +44465 30689 0 0 +44311 30535 0 0 +44226 30500 0 0 +44311 30465 0 0 +44465 30311 0 0 +44549 30109 0 0 +44549 29891 0 0 +44465 29689 0 0 +44311 29535 0 0 +44109 29451 0 0 +43891 29451 0 0 +43689 29535 0 0 +43599 29625 0 0 +42657 29625 0 0 +42657 29624 0 0 +42691 29611 0 0 +42761 29541 0 0 +42799 29450 0 0 +42799 29351 0 0 +42799 28751 0 0 +42761 28659 0 0 +42691 28589 0 0 +42600 28551 0 0 +42501 28551 0 0 +41550 28551 0 0 +41550 27050 0 0 +43685 27050 0 0 +43685 27730 0 0 +50195 27730 0 0 +50195 27050 0 0 +59215 27050 0 0 +59203 27055 0 0 +59132 27125 0 0 +58250 27125 0 0 +58106 27154 0 0 +58045 27194 0 0 +57984 27235 0 0 +57735 27485 0 0 +57654 27606 0 0 +57625 27750 0 0 +57625 28099 0 0 +57599 28125 0 0 +56000 28125 0 0 +55856 28154 0 0 +55735 28235 0 0 +54235 29735 0 0 +54154 29856 0 0 +54125 30000 0 0 +54125 32845 0 0 +54015 32735 0 0 +53893 32654 0 0 +53750 32625 0 0 +53690 32637 0 0 +53702 32609 0 0 +53702 32391 0 0 +53618 32189 0 0 +53464 32035 0 0 +53450 32029 0 0 +53450 30452 0 0 +53486 30416 0 0 +53524 30325 0 0 +53524 30226 0 0 +53524 29676 0 0 +53486 29584 0 0 +53450 29548 0 0 +53450 28950 0 0 +53674 28950 0 0 +53689 28965 0 0 +53891 29049 0 0 +54109 29049 0 0 +54311 28965 0 0 +54465 28811 0 0 +54549 28609 0 0 +54549 28391 0 0 +54465 28189 0 0 +54311 28035 0 0 +54109 27951 0 0 +53891 27951 0 0 +53689 28035 0 0 +53674 28050 0 0 +53285 28050 0 0 +53105 27975 0 0 +52896 27975 0 0 +52703 28055 0 0 +52555 28202 0 0 +52475 28395 0 0 +52475 28604 0 0 +52550 28784 0 0 +52550 29548 0 0 +52514 29584 0 0 +52476 29675 0 0 +52476 29774 0 0 +52476 30324 0 0 +52514 30416 0 0 +52550 30452 0 0 +52550 32029 0 0 +52536 32035 0 0 +52382 32189 0 0 +52375 32205 0 0 +52375 31250 0 0 +52346 31107 0 0 +52346 31106 0 0 +52305 31045 0 0 +52265 30985 0 0 +52265 30984 0 0 +52015 30735 0 0 +51894 30654 0 0 +51750 30625 0 0 +48401 30625 0 0 +48311 30535 0 0 +48226 30500 0 0 +48311 30465 0 0 +48465 30311 0 0 +48549 30109 0 0 +48549 29891 0 0 +48465 29689 0 0 +48375 29599 0 0 +48375 28905 0 0 +48405 28875 0 0 +49497 28875 0 0 +49514 28916 0 0 +49584 28986 0 0 +49675 29024 0 0 +49774 29024 0 0 +50324 29024 0 0 +50416 28986 0 0 +50486 28916 0 0 +50524 28825 0 0 +50524 28726 0 0 +50524 28176 0 0 +50486 28084 0 0 +50416 28014 0 0 +50325 27976 0 0 +50226 27976 0 0 +49676 27976 0 0 +49584 28014 0 0 +49514 28084 0 0 +49496 28125 0 0 +48250 28125 0 0 +48106 28154 0 0 +48045 28194 0 0 +47984 28235 0 0 +47735 28485 0 0 +47654 28606 0 0 +47625 28750 0 0 +47625 29599 0 0 +47535 29689 0 0 +47451 29891 0 0 +47451 30109 0 0 +47535 30311 0 0 +47689 30465 0 0 +47773 30500 0 0 +47689 30535 0 0 +47535 30689 0 0 +47451 30891 0 0 +47451 31109 0 0 +47535 31311 0 0 +47689 31465 0 0 +47773 31500 0 0 +47689 31535 0 0 +47535 31689 0 0 +47451 31891 0 0 +47451 32109 0 0 +47535 32311 0 0 +47689 32465 0 0 +47773 32500 0 0 +47689 32535 0 0 +47535 32689 0 0 +47451 32891 0 0 +47451 33109 0 0 +47535 33311 0 0 +47689 33465 0 0 +47773 33500 0 0 +47689 33535 0 0 +47535 33689 0 0 +47451 33891 0 0 +47451 34109 0 0 +47535 34311 0 0 +47625 34401 0 0 +47625 35250 0 0 +47654 35394 0 0 +47735 35515 0 0 +47984 35765 0 0 +47985 35765 0 0 +48045 35805 0 0 +48106 35846 0 0 +48107 35846 0 0 +48250 35875 0 0 +49446 35875 0 0 +49536 35965 0 0 +49620 36000 0 0 +49536 36035 0 0 +49446 36125 0 0 +48401 36125 0 0 +48311 36035 0 0 +48109 35951 0 0 +47891 35951 0 0 +47689 36035 0 0 +47535 36189 0 0 +47451 36391 0 0 +47451 36609 0 0 +47535 36811 0 0 +47689 36965 0 0 +47891 37049 0 0 +48109 37049 0 0 +48311 36965 0 0 +48401 36875 0 0 +49094 36875 0 0 +48985 36985 0 0 +48904 37106 0 0 +48875 37250 0 0 +48875 37750 0 0 +48904 37894 0 0 +48985 38015 0 0 +49106 38096 0 0 +49126 38100 0 0 +49261 38234 0 0 +49263 38237 0 0 +49343 38290 0 0 +49335 38304 0 0 +49318 38363 0 0 +49365 38450 0 0 +49900 38450 0 0 +49950 38450 0 0 +50050 38450 0 0 +50100 38450 0 0 +50635 38450 0 0 +50682 38363 0 0 +50681 38361 0 0 +50750 38375 0 0 +50845 38375 0 0 +51125 38655 0 0 +51125 41250 0 0 +51154 41394 0 0 +51235 41515 0 0 +51735 42015 0 0 +51856 42096 0 0 +51857 42096 0 0 +52000 42125 0 0 +55120 42125 0 0 +55052 42193 0 0 +55083 42224 0 0 +55048 42233 0 0 +54981 42426 0 0 +54992 42630 0 0 +55048 42767 0 0 +55139 42790 0 0 +55394 42535 0 0 +55429 42500 0 0 +55500 42429 0 0 +55571 42500 0 0 +55606 42535 0 0 +55861 42790 0 0 +55952 42767 0 0 +56019 42574 0 0 +56008 42370 0 0 +55952 42233 0 0 +55916 42224 0 0 +55948 42193 0 0 +55880 42125 0 0 +56620 42125 0 0 +56552 42193 0 0 +56583 42224 0 0 +56548 42233 0 0 +56481 42426 0 0 +56492 42630 0 0 +56548 42767 0 0 +56639 42790 0 0 +56894 42535 0 0 +56929 42500 0 0 +57000 42429 0 0 +57035 42394 0 0 +57290 42139 0 0 +57284 42118 0 0 +57284 42117 0 0 +57393 42096 0 0 +57394 42096 0 0 +57515 42015 0 0 +58015 41515 0 0 +58096 41394 0 0 +58096 41393 0 0 +58125 41250 0 0 +58125 40905 0 0 +58143 40886 0 0 +58202 40945 0 0 +58395 41025 0 0 +58604 41025 0 0 +58797 40945 0 0 +58867 40875 0 0 +59594 40875 0 0 +59625 40905 0 0 +59625 41099 0 0 +59535 41189 0 0 +59451 41391 0 0 +59451 41609 0 0 +59535 41811 0 0 +59689 41965 0 0 +59891 42049 0 0 +60109 42049 0 0 +60311 41965 0 0 +60465 41811 0 0 +60549 41609 0 0 +60549 41391 0 0 +60465 41189 0 0 +60375 41099 0 0 +60375 40750 0 0 +60346 40607 0 0 +60346 40606 0 0 +60305 40545 0 0 +60265 40485 0 0 +60265 40484 0 0 +60015 40235 0 0 +59894 40154 0 0 +59750 40125 0 0 +59893 40096 0 0 +59894 40096 0 0 +60015 40015 0 0 +60265 39766 0 0 +60265 39765 0 0 +60305 39704 0 0 +60346 39644 0 0 +60346 39643 0 0 +60374 39500 0 0 +60375 39500 0 0 +60375 39401 0 0 +60465 39311 0 0 +60549 39109 0 0 +60549 38891 0 0 +60465 38689 0 0 +60311 38535 0 0 +60109 38451 0 0 +60079 38451 0 0 +60265 38266 0 0 +60265 38265 0 0 +60305 38204 0 0 +60346 38144 0 0 +60346 38143 0 0 +60374 38000 0 0 +60375 38000 0 0 +60375 37401 0 0 +60465 37311 0 0 +60549 37109 0 0 +60549 36891 0 0 +60465 36689 0 0 +60311 36535 0 0 +60109 36451 0 0 +59891 36451 0 0 +59689 36535 0 0 +59535 36689 0 0 +59451 36891 0 0 +59451 37109 0 0 +59535 37311 0 0 +59625 37401 0 0 +59625 37844 0 0 +59165 38303 0 0 +59118 38189 0 0 +58964 38035 0 0 +58884 38001 0 0 +59050 37882 0 0 +59165 37696 0 0 +59182 37637 0 0 +59182 37363 0 0 +59165 37304 0 0 +59050 37118 0 0 +58886 37000 0 0 +59050 36882 0 0 +59165 36696 0 0 +59182 36637 0 0 +59135 36550 0 0 +58550 36550 0 0 +58550 36940 0 0 +58550 37060 0 0 +58550 37450 0 0 +59135 37450 0 0 +59182 37363 0 0 +59182 37637 0 0 +59135 37550 0 0 +58600 37550 0 0 +58550 37550 0 0 +58450 37550 0 0 +58450 37450 0 0 +58450 37060 0 0 +58450 36940 0 0 +58450 36550 0 0 +57865 36550 0 0 +57818 36637 0 0 +57835 36696 0 0 +57950 36882 0 0 +58113 37000 0 0 +57950 37118 0 0 +57835 37304 0 0 +57818 37363 0 0 +57865 37450 0 0 +58450 37450 0 0 +58450 37550 0 0 +58400 37550 0 0 +57865 37550 0 0 +57818 37637 0 0 +57835 37696 0 0 +57950 37882 0 0 +58115 38001 0 0 +58036 38035 0 0 +57882 38189 0 0 +57798 38391 0 0 +57798 38609 0 0 +57882 38811 0 0 +57946 38875 0 0 +56750 38875 0 0 +56606 38904 0 0 +56545 38944 0 0 +56484 38985 0 0 +56182 39287 0 0 +56182 38637 0 0 +56135 38550 0 0 +55550 38550 0 0 +55550 39060 0 0 +55660 39060 0 0 +55873 39010 0 0 +56050 38882 0 0 +56165 38696 0 0 +56182 38637 0 0 +56182 39287 0 0 +55494 39975 0 0 +55396 39975 0 0 +55203 40055 0 0 +55132 40125 0 0 +54405 40125 0 0 +54375 40094 0 0 +54375 39972 0 0 +54411 40008 0 0 +54631 40099 0 0 +54869 40099 0 0 +55089 40008 0 0 +55258 39839 0 0 +55349 39619 0 0 +55349 39381 0 0 +55258 39161 0 0 +55125 39028 0 0 +55125 39008 0 0 +55127 39010 0 0 +55340 39060 0 0 +55450 39060 0 0 +55450 38600 0 0 +55450 38550 0 0 +55450 38450 0 0 +55550 38450 0 0 +55600 38450 0 0 +56135 38450 0 0 +56182 38363 0 0 +56165 38304 0 0 +56050 38118 0 0 +55884 37998 0 0 +55964 37965 0 0 +56118 37811 0 0 +56202 37609 0 0 +56202 37391 0 0 +56118 37189 0 0 +55964 37035 0 0 +55884 37001 0 0 +56050 36882 0 0 +56165 36696 0 0 +56182 36637 0 0 +56182 36363 0 0 +56165 36304 0 0 +56050 36118 0 0 +55886 36000 0 0 +56050 35882 0 0 +56165 35696 0 0 +56182 35637 0 0 +56135 35550 0 0 +55550 35550 0 0 +55550 35940 0 0 +55550 36060 0 0 +55550 36450 0 0 +56135 36450 0 0 +56182 36363 0 0 +56182 36637 0 0 +56135 36550 0 0 +55600 36550 0 0 +55550 36550 0 0 +55450 36550 0 0 +55450 36450 0 0 +55450 36400 0 0 +55450 36060 0 0 +55450 35940 0 0 +55450 35600 0 0 +55450 35550 0 0 +55450 35450 0 0 +55550 35450 0 0 +55600 35450 0 0 +56135 35450 0 0 +56182 35363 0 0 +56165 35304 0 0 +56050 35118 0 0 +55884 34998 0 0 +55964 34965 0 0 +56118 34811 0 0 +56202 34609 0 0 +56202 34391 0 0 +56118 34189 0 0 +55964 34035 0 0 +55879 34000 0 0 +55964 33965 0 0 +56054 33875 0 0 +56345 33875 0 0 +56625 34155 0 0 +56625 34750 0 0 +56654 34894 0 0 +56735 35015 0 0 +56984 35265 0 0 +57107 35346 0 0 +57250 35374 0 0 +57392 35346 0 0 +57408 35335 0 0 +57821 35335 0 0 +57798 35391 0 0 +57798 35609 0 0 +57882 35811 0 0 +58036 35965 0 0 +58115 35998 0 0 +57950 36118 0 0 +57835 36304 0 0 +57818 36363 0 0 +57865 36450 0 0 +58400 36450 0 0 +58450 36450 0 0 +58550 36450 0 0 +58600 36450 0 0 +59135 36450 0 0 +59182 36363 0 0 +59165 36304 0 0 +59050 36118 0 0 +58884 35998 0 0 +58964 35965 0 0 +59118 35811 0 0 +59202 35609 0 0 +59202 35391 0 0 +59178 35335 0 0 +59559 35335 0 0 +59689 35465 0 0 +59891 35549 0 0 +60109 35549 0 0 +60311 35465 0 0 +60465 35311 0 0 +60549 35109 0 0 +60549 34891 0 0 +60524 34830 0 0 +60524 31325 0 0 +60524 31226 0 0 +60524 30676 0 0 +60486 30584 0 0 +60416 30514 0 0 +60325 30476 0 0 +60226 30476 0 0 +59950 30476 0 0 +59950 29326 0 0 +59965 29311 0 0 +60049 29109 0 0 +60049 28891 0 0 +59965 28689 0 0 +59811 28535 0 0 +59609 28451 0 0 +59391 28451 0 0 +59189 28535 0 0 +59035 28689 0 0 +58951 28891 0 0 +58951 29109 0 0 +59035 29311 0 0 +59050 29326 0 0 +59050 30550 0 0 +58750 30550 0 0 +58578 30584 0 0 +58529 30616 0 0 +58519 30622 0 0 +58519 30074 0 0 +58508 29870 0 0 +58452 29733 0 0 +58361 29710 0 0 +58290 29781 0 0 +58290 29639 0 0 +58267 29548 0 0 +58074 29481 0 0 +57870 29492 0 0 +57733 29548 0 0 +57710 29639 0 0 +58000 29929 0 0 +58290 29639 0 0 +58290 29781 0 0 +58071 30000 0 0 +58361 30290 0 0 +58452 30267 0 0 +58519 30074 0 0 +58519 30622 0 0 +58431 30682 0 0 +58290 30823 0 0 +58290 30361 0 0 +58000 30071 0 0 +57929 30142 0 0 +57929 30000 0 0 +57639 29710 0 0 +57548 29733 0 0 +57481 29926 0 0 +57492 30130 0 0 +57548 30267 0 0 +57639 30290 0 0 +57929 30000 0 0 +57929 30142 0 0 +57710 30361 0 0 +57733 30452 0 0 +57926 30519 0 0 +58130 30508 0 0 +58267 30452 0 0 +58290 30361 0 0 +58290 30823 0 0 +58182 30932 0 0 +58084 31077 0 0 +58050 31250 0 0 +58050 32029 0 0 +58036 32035 0 0 +57882 32189 0 0 +57798 32391 0 0 +57798 32609 0 0 +57882 32811 0 0 +58036 32965 0 0 +58115 32998 0 0 +57950 33118 0 0 +57835 33304 0 0 +57818 33363 0 0 +57865 33450 0 0 +58400 33450 0 0 +58450 33450 0 0 +58550 33450 0 0 +58600 33450 0 0 +59135 33450 0 0 +59182 33363 0 0 +59165 33304 0 0 +59050 33118 0 0 +58884 32998 0 0 +58964 32965 0 0 +59118 32811 0 0 +59202 32609 0 0 +59202 32391 0 0 +59118 32189 0 0 +58964 32035 0 0 +58950 32029 0 0 +58950 31450 0 0 +59500 31450 0 0 +59548 31450 0 0 +59584 31486 0 0 +59675 31524 0 0 +59774 31524 0 0 +60324 31524 0 0 +60416 31486 0 0 +60486 31416 0 0 +60524 31325 0 0 +60524 34830 0 0 +60465 34689 0 0 +60311 34535 0 0 +60109 34451 0 0 +59891 34451 0 0 +59689 34535 0 0 +59559 34665 0 0 +59173 34665 0 0 +59182 34637 0 0 +59182 34363 0 0 +59165 34304 0 0 +59050 34118 0 0 +58886 34000 0 0 +59050 33882 0 0 +59165 33696 0 0 +59182 33637 0 0 +59135 33550 0 0 +58550 33550 0 0 +58550 33940 0 0 +58550 34060 0 0 +58550 34450 0 0 +59135 34450 0 0 +59182 34363 0 0 +59182 34637 0 0 +59135 34550 0 0 +58600 34550 0 0 +58550 34550 0 0 +58450 34550 0 0 +58450 34450 0 0 +58450 34060 0 0 +58450 33940 0 0 +58450 33550 0 0 +57865 33550 0 0 +57818 33637 0 0 +57835 33696 0 0 +57950 33882 0 0 +58113 34000 0 0 +57950 34118 0 0 +57835 34304 0 0 +57818 34363 0 0 +57865 34450 0 0 +58450 34450 0 0 +58450 34550 0 0 +58400 34550 0 0 +57865 34550 0 0 +57818 34637 0 0 +57826 34665 0 0 +57445 34665 0 0 +57375 34594 0 0 +57375 34000 0 0 +57346 33857 0 0 +57346 33856 0 0 +57265 33735 0 0 +56765 33235 0 0 +56644 33154 0 0 +56500 33125 0 0 +56054 33125 0 0 +55988 33059 0 0 +56000 33059 0 0 +56091 33021 0 0 +56161 32951 0 0 +56199 32859 0 0 +56200 32612 0 0 +56200 32388 0 0 +56199 32141 0 0 +56161 32049 0 0 +56091 31979 0 0 +56000 31941 0 0 +55901 31941 0 0 +55612 31940 0 0 +55550 32002 0 0 +55550 32450 0 0 +56138 32450 0 0 +56200 32388 0 0 +56200 32612 0 0 +56138 32550 0 0 +55600 32550 0 0 +55550 32550 0 0 +55450 32550 0 0 +55450 32450 0 0 +55450 32400 0 0 +55450 32002 0 0 +55388 31940 0 0 +55099 31941 0 0 +55000 31941 0 0 +54909 31979 0 0 +54875 32013 0 0 +54875 30155 0 0 +56155 28875 0 0 +57599 28875 0 0 +57689 28965 0 0 +57891 29049 0 0 +58109 29049 0 0 +58311 28965 0 0 +58465 28811 0 0 +58549 28609 0 0 +58549 28391 0 0 +58465 28189 0 0 +58375 28099 0 0 +58375 27905 0 0 +58405 27875 0 0 +59132 27875 0 0 +59202 27945 0 0 +59395 28025 0 0 +59604 28025 0 0 +59797 27945 0 0 +59945 27798 0 0 +60025 27605 0 0 +60025 27396 0 0 +59945 27203 0 0 +59798 27055 0 0 +59785 27050 0 0 +61232 27050 0 0 +61210 27139 0 0 +61500 27429 0 0 +61790 27139 0 0 +61767 27050 0 0 +71950 27050 0 0 +71950 30250 0 0 +71916 30078 0 0 +71915 30077 0 0 +71883 30029 0 0 +71818 29932 0 0 +71818 29931 0 0 +71568 29682 0 0 +71423 29584 0 0 +71250 29550 0 0 +67999 29550 0 0 +67999 29201 0 0 +67961 29109 0 0 +67891 29039 0 0 +67800 29001 0 0 +67701 29001 0 0 +66201 29001 0 0 +66109 29039 0 0 +66039 29109 0 0 +66001 29200 0 0 +66001 29299 0 0 +66001 29550 0 0 +65000 29550 0 0 +64827 29584 0 0 +64682 29682 0 0 +64043 30321 0 0 +64043 29079 0 0 +64032 28866 0 0 +63972 28719 0 0 +63878 28692 0 0 +63808 28762 0 0 +63808 28622 0 0 +63781 28528 0 0 +63579 28457 0 0 +63366 28468 0 0 +63219 28528 0 0 +63192 28622 0 0 +63500 28929 0 0 +63808 28622 0 0 +63808 28762 0 0 +63571 29000 0 0 +63878 29308 0 0 +63972 29281 0 0 +64043 29079 0 0 +64043 30321 0 0 +63814 30550 0 0 +63808 30550 0 0 +63808 29378 0 0 +63500 29071 0 0 +63429 29141 0 0 +63429 29000 0 0 +63122 28692 0 0 +63028 28719 0 0 +62957 28921 0 0 +62968 29134 0 0 +63028 29281 0 0 +63122 29308 0 0 +63429 29000 0 0 +63429 29141 0 0 +63192 29378 0 0 +63219 29472 0 0 +63421 29543 0 0 +63634 29532 0 0 +63781 29472 0 0 +63808 29378 0 0 +63808 30550 0 0 +63285 30550 0 0 +63105 30475 0 0 +62896 30475 0 0 +62703 30555 0 0 +62555 30702 0 0 +62475 30895 0 0 +62475 31104 0 0 +62555 31297 0 0 +62702 31445 0 0 +62895 31525 0 0 +63104 31525 0 0 +63284 31450 0 0 +64000 31450 0 0 +64172 31416 0 0 +64173 31416 0 0 +64318 31318 0 0 +65186 30450 0 0 +66001 30450 0 0 +66001 30799 0 0 +66039 30891 0 0 +66109 30961 0 0 +66200 30999 0 0 +66299 30999 0 0 +67799 30999 0 0 +67891 30961 0 0 +67961 30891 0 0 +67999 30800 0 0 +67999 30701 0 0 +67999 30450 0 0 +71050 30450 0 0 +71050 32701 0 0 +70451 32701 0 0 +70359 32739 0 0 +70289 32809 0 0 +70251 32900 0 0 +70251 32999 0 0 +70251 33699 0 0 +70265 33735 0 0 +70144 33654 0 0 +70000 33625 0 0 +67983 33625 0 0 +67983 32184 0 0 +67979 31794 0 0 +67837 31454 0 0 +67697 31374 0 0 +67626 31445 0 0 +67626 31303 0 0 +67546 31163 0 0 +67184 31017 0 0 +66794 31021 0 0 +66454 31163 0 0 +66374 31303 0 0 +67000 31929 0 0 +67626 31303 0 0 +67626 31445 0 0 +67071 32000 0 0 +67697 32626 0 0 +67837 32546 0 0 +67983 32184 0 0 +67983 33625 0 0 +67926 33625 0 0 +67848 33434 0 0 +67626 33212 0 0 +67626 32697 0 0 +67000 32071 0 0 +66929 32142 0 0 +66929 32000 0 0 +66303 31374 0 0 +66163 31454 0 0 +66017 31816 0 0 +66021 32206 0 0 +66163 32546 0 0 +66303 32626 0 0 +66929 32000 0 0 +66929 32142 0 0 +66374 32697 0 0 +66454 32837 0 0 +66816 32983 0 0 +67206 32979 0 0 +67546 32837 0 0 +67626 32697 0 0 +67626 33212 0 0 +67567 33153 0 0 +67200 33000 0 0 +66802 33000 0 0 +66434 33152 0 0 +66153 33433 0 0 +66072 33625 0 0 +64250 33625 0 0 +64106 33654 0 0 +64045 33694 0 0 +63984 33735 0 0 +63735 33985 0 0 +63654 34106 0 0 +63625 34250 0 0 +63625 34599 0 0 +63535 34689 0 0 +63451 34891 0 0 +63451 35109 0 0 +63535 35311 0 0 +63689 35465 0 0 +63891 35549 0 0 +64109 35549 0 0 +64311 35465 0 0 +64465 35311 0 0 +64549 35109 0 0 +64549 34891 0 0 +64465 34689 0 0 +64375 34599 0 0 +64375 34405 0 0 +64405 34375 0 0 +66073 34375 0 0 +66152 34566 0 0 +66433 34847 0 0 +66800 35000 0 0 +66434 35152 0 0 +66153 35433 0 0 +66072 35625 0 0 +65000 35625 0 0 +64856 35654 0 0 +64735 35735 0 0 +64019 36451 0 0 +63891 36451 0 0 +63689 36535 0 0 +63535 36689 0 0 +63451 36891 0 0 +63451 37109 0 0 +63535 37311 0 0 +63689 37465 0 0 +63891 37549 0 0 +64109 37549 0 0 +64311 37465 0 0 +64465 37311 0 0 +64549 37109 0 0 +64549 36981 0 0 +65155 36375 0 0 +66073 36375 0 0 +66152 36566 0 0 +66433 36847 0 0 +66800 37000 0 0 +66434 37152 0 0 +66153 37433 0 0 +66072 37625 0 0 +65000 37625 0 0 +64856 37654 0 0 +64735 37735 0 0 +64019 38451 0 0 +63891 38451 0 0 +63689 38535 0 0 +63535 38689 0 0 +63451 38891 0 0 +63451 39109 0 0 +63535 39311 0 0 +63689 39465 0 0 +63891 39549 0 0 +64109 39549 0 0 +64311 39465 0 0 +64465 39311 0 0 +64549 39109 0 0 +64549 38981 0 0 +65155 38375 0 0 +66073 38375 0 0 +66152 38566 0 0 +66433 38847 0 0 +66800 39000 0 0 +66434 39152 0 0 +66153 39433 0 0 +66000 39800 0 0 +66000 40198 0 0 +66152 40566 0 0 +66433 40847 0 0 +66625 40927 0 0 +66625 41094 0 0 +66594 41125 0 0 +64401 41125 0 0 +64311 41035 0 0 +64109 40951 0 0 +63891 40951 0 0 +63689 41035 0 0 +63535 41189 0 0 +63451 41391 0 0 +63451 41609 0 0 +63535 41811 0 0 +63689 41965 0 0 +63891 42049 0 0 +64109 42049 0 0 +64311 41965 0 0 +64401 41875 0 0 +66750 41875 0 0 +66893 41846 0 0 +66894 41846 0 0 +67015 41765 0 0 +67265 41516 0 0 +67265 41515 0 0 +67305 41454 0 0 +67346 41394 0 0 +67346 41393 0 0 +67374 41250 0 0 +67375 41250 0 0 +67375 40926 0 0 +67566 40848 0 0 +67847 40567 0 0 +67927 40375 0 0 +68000 40375 0 0 +68143 40346 0 0 +68144 40346 0 0 +68265 40265 0 0 +70314 38216 0 0 +70359 38261 0 0 +70450 38299 0 0 +70549 38299 0 0 +71950 38299 0 0 +71950 42950 1 0 $endPOLYSCORNERS -$FILLSEGMENTS -41550 27050 43735 27050 -50145 27050 59215 27050 -59785 27050 61232 27050 -61767 27050 71950 27050 -41550 27130 43735 27130 -50145 27130 58226 27130 -59873 27130 61213 27130 -61788 27130 71950 27130 -41550 27210 43735 27210 -50145 27210 58022 27210 -59948 27210 61139 27210 -61139 27210 61281 27210 -61719 27210 61861 27210 -61861 27210 71950 27210 -41550 27290 43735 27290 -50145 27290 57930 27290 -59982 27290 61029 27290 -61219 27290 61361 27290 -61639 27290 61781 27290 -61976 27290 71950 27290 -41550 27370 43735 27370 -50145 27370 57850 27370 -60015 27370 61001 27370 -61299 27370 61441 27370 -61559 27370 61701 27370 -62008 27370 71950 27370 -41550 27450 43735 27450 -50145 27450 57770 27450 -60025 27450 60982 27450 -61379 27450 61621 27450 -62013 27450 71950 27450 -41550 27530 43735 27530 -50145 27530 57705 27530 -60025 27530 60986 27530 -61399 27530 61601 27530 -62017 27530 71950 27530 -41550 27610 43735 27610 -50145 27610 57654 27610 -60022 27610 60990 27610 -61319 27610 61461 27610 -61539 27610 61681 27610 -62006 27610 71950 27610 -41550 27690 57638 27690 -59989 27690 61016 27690 -61239 27690 61381 27690 -61619 27690 61761 27690 -61978 27690 71950 27690 -41550 27770 57625 27770 -59956 27770 61059 27770 -61159 27770 61301 27770 -61699 27770 61841 27770 -61940 27770 71950 27770 -41550 27850 57625 27850 -59892 27850 61221 27850 -61779 27850 71950 27850 -41550 27930 57625 27930 -58375 27930 59187 27930 -59812 27930 61227 27930 -61772 27930 71950 27930 -41550 28010 49594 28010 -50407 28010 52812 28010 -53189 28010 53750 28010 -54251 28010 57625 28010 -58375 28010 59358 28010 -59640 28010 61400 28010 -61592 28010 71950 28010 -41550 28090 49512 28090 -50489 28090 52668 28090 -54366 28090 57625 28090 -58375 28090 71950 28090 -41550 28170 48082 28170 -50522 28170 52588 28170 -54446 28170 55833 28170 -58446 28170 71950 28170 -41550 28250 47970 28250 -50524 28250 52536 28250 -54491 28250 55720 28250 -58491 28250 71950 28250 -41550 28330 47890 28330 -50524 28330 52502 28330 -54524 28330 55640 28330 -58524 28330 71950 28330 -41550 28410 47810 28410 -50524 28410 52475 28410 -54549 28410 55560 28410 -58549 28410 71950 28410 -41550 28490 47732 28490 -50524 28490 52475 28490 -54549 28490 55480 28490 -58549 28490 59298 28490 -59703 28490 63313 28490 -63673 28490 71950 28490 -42646 28570 47679 28570 -50524 28570 52475 28570 -54549 28570 55400 28570 -58549 28570 59154 28570 -59846 28570 63207 28570 -63794 28570 71950 28570 -42752 28650 47646 28650 -50524 28650 52494 28650 -54531 28650 55320 28650 -58531 28650 59074 28650 -59926 28650 63220 28650 -63779 28650 71950 28650 -42791 28730 47630 28730 -50524 28730 52527 28730 -54498 28730 55240 28730 -58498 28730 59018 28730 -59983 28730 63025 28730 -63160 28730 63300 28730 -63699 28730 63841 28730 -63977 28730 71950 28730 -42799 28810 47625 28810 -50524 28810 52550 28810 -54465 28810 55160 28810 -58465 28810 58985 28810 -60016 28810 62997 28810 -63240 28810 63380 28810 -63619 28810 63761 28810 -64010 28810 71950 28810 -42799 28890 47625 28890 -48390 28890 49503 28890 -50496 28890 52550 28890 -54386 28890 55080 28890 -56140 28890 57613 28890 -58386 28890 58952 28890 -60049 28890 62968 28890 -63320 28890 63460 28890 -63539 28890 63681 28890 -64034 28890 71950 28890 -42799 28970 47625 28970 -48375 28970 49568 28970 -50432 28970 52550 28970 -53450 28970 53701 28970 -54298 28970 55000 28970 -56060 28970 57701 28970 -58298 28970 58951 28970 -60049 28970 62959 28970 -63400 28970 63601 28970 -64038 28970 71950 28970 -42799 29050 47625 29050 -48375 29050 52550 29050 -53450 29050 54920 29050 -55980 29050 58951 29050 -60049 29050 62963 29050 -63379 29050 63620 29050 -64042 29050 66098 29050 -67902 29050 71950 29050 -42799 29130 47625 29130 -48375 29130 52550 29130 -53450 29130 54840 29130 -55900 29130 58959 29130 -60040 29130 62967 29130 -63299 29130 63441 29130 -63560 29130 63700 29130 -64025 29130 66031 29130 -67970 29130 71950 29130 -42799 29210 47625 29210 -48375 29210 52550 29210 -53450 29210 54760 29210 -55820 29210 58993 29210 -60007 29210 62999 29210 -63219 29210 63361 29210 -63640 29210 63780 29210 -63996 29210 66001 29210 -67999 29210 71950 29210 -42799 29290 47625 29290 -48375 29290 52550 29290 -53450 29290 54680 29290 -55740 29290 59026 29290 -59973 29290 63059 29290 -63139 29290 63281 29290 -63720 29290 63860 29290 -63940 29290 66001 29290 -67999 29290 71950 29290 -42799 29370 47625 29370 -48375 29370 52550 29370 -53450 29370 54600 29370 -55660 29370 59050 29370 -59950 29370 63201 29370 -63800 29370 66001 29370 -67999 29370 71950 29370 -42799 29450 47625 29450 -48375 29450 52550 29450 -53450 29450 54520 29450 -55580 29450 59050 29450 -59950 29450 63212 29450 -63787 29450 66001 29450 -67999 29450 71950 29450 -42765 29530 43702 29530 -44299 29530 47625 29530 -48375 29530 52550 29530 -53450 29530 54440 29530 -55500 29530 57778 29530 -58216 29530 59050 29530 -59950 29530 63384 29530 -63638 29530 66001 29530 -67999 29530 71950 29530 -42692 29610 43614 29610 -44386 29610 47614 29610 -48386 29610 52504 29610 -53497 29610 54360 29610 -55420 29610 57718 29610 -58283 29610 59050 29610 -59950 29610 64789 29610 -71462 29610 71950 29610 -44466 29690 47535 29690 -48466 29690 52476 29690 -53524 29690 54280 29690 -55340 29690 57761 29690 -58239 29690 59050 29690 -59950 29690 64674 29690 -71577 29690 71950 29690 -44499 29770 47502 29770 -48499 29770 52476 29770 -53524 29770 54212 29770 -55260 29770 57536 29770 -57699 29770 57841 29770 -58159 29770 58301 29770 -58468 29770 59050 29770 -59950 29770 64594 29770 -71657 29770 71950 29770 -44532 29850 47469 29850 -48532 29850 52476 29850 -53524 29850 54159 29850 -55180 29850 57508 29850 -57779 29850 57921 29850 -58079 29850 58221 29850 -58500 29850 59050 29850 -59950 29850 64514 29850 -71737 29850 71950 29850 -44549 29930 47451 29930 -48549 29930 52476 29930 -53524 29930 54140 29930 -55100 29930 57481 29930 -57859 29930 58141 29930 -58512 29930 59050 29930 -59950 29930 64434 29930 -71817 29930 71950 29930 -44549 30010 47451 30010 -48549 30010 52476 30010 -53524 30010 54125 30010 -55020 30010 57485 30010 -57919 30010 58081 30010 -58516 30010 59050 30010 -59950 30010 64354 30010 -71871 30010 71950 30010 -44549 30090 47451 30090 -48549 30090 52476 30090 -53524 30090 54125 30090 -54940 30090 57489 30090 -57839 30090 57981 30090 -58019 30090 58161 30090 -58513 30090 59050 30090 -59950 30090 64274 30090 -71919 30090 71950 30090 -44523 30170 47476 30170 -48523 30170 52476 30170 -53524 30170 54125 30170 -54875 30170 57508 30170 -57759 30170 57901 30170 -58099 30170 58241 30170 -58485 30170 59050 30170 -59950 30170 64194 30170 -71935 30170 71950 30170 -44490 30250 47509 30250 -48490 30250 52476 30250 -53524 30250 54125 30250 -54875 30250 57541 30250 -57679 30250 57821 30250 -58179 30250 58321 30250 -58457 30250 59050 30250 -59950 30250 64114 30250 -44446 30330 47554 30330 -48446 30330 52478 30330 -53521 30330 54125 30330 -54875 30330 57741 30330 -58259 30330 59050 30330 -59950 30330 64034 30330 -42799 30410 43633 30410 -44366 30410 47634 30410 -48366 30410 52511 30410 -53488 30410 54125 30410 -54875 30410 57722 30410 -58277 30410 59050 30410 -59950 30410 63954 30410 -42799 30490 43749 30490 -44250 30490 47749 30490 -48250 30490 52550 30490 -53450 30490 54125 30490 -54875 30490 57842 30490 -58174 30490 59050 30490 -60359 30490 62860 30490 -63142 30490 63873 30490 -65145 30490 66001 30490 -67999 30490 71050 30490 -42769 30570 43654 30570 -44346 30570 47654 30570 -48346 30570 52550 30570 -53450 30570 54125 30570 -54875 30570 58649 30570 -60472 30570 62688 30570 -65065 30570 66001 30570 -67999 30570 71050 30570 -42702 30650 43574 30650 -44426 30650 47574 30650 -51875 30650 52550 30650 -53450 30650 54125 30650 -54875 30650 58479 30650 -60514 30650 62608 30650 -64985 30650 66001 30650 -67999 30650 71050 30650 -42670 30730 43518 30730 -44483 30730 47518 30730 -52008 30730 52550 30730 -53450 30730 54125 30730 -54875 30730 58383 30730 -60524 30730 62544 30730 -64905 30730 66001 30730 -67999 30730 71050 30730 -42762 30810 43485 30810 -44516 30810 47485 30810 -52091 30810 52550 30810 -53450 30810 54125 30810 -54875 30810 58304 30810 -60524 30810 62511 30810 -64825 30810 66005 30810 -67994 30810 71050 30810 -42795 30890 43452 30890 -44549 30890 47452 30890 -52171 30890 52550 30890 -53450 30890 54125 30890 -54875 30890 58224 30890 -60524 30890 62478 30890 -64745 30890 66038 30890 -67961 30890 71050 30890 -42799 30970 43451 30970 -44549 30970 47451 30970 -52251 30970 52550 30970 -53450 30970 54125 30970 -54875 30970 58157 30970 -60524 30970 62475 30970 -64665 30970 66130 30970 -67869 30970 71050 30970 -42799 31050 43451 31050 -44549 31050 47451 31050 -52309 31050 52550 31050 -53450 31050 54125 31050 -54875 31050 58103 31050 -60524 31050 62475 31050 -64585 31050 66725 31050 -67266 31050 71050 31050 -42799 31130 43459 31130 -44540 31130 47459 31130 -52351 31130 52550 31130 -53450 31130 54125 31130 -54875 31130 58074 31130 -60524 31130 62485 31130 -64505 31130 66534 31130 -67465 31130 71050 31130 -42799 31210 43493 31210 -44507 31210 47493 31210 -52367 31210 52550 31210 -53450 31210 54125 31210 -54875 31210 58058 31210 -60524 31210 62518 31210 -64425 31210 66428 31210 -67573 31210 71050 31210 -42799 31290 43526 31290 -44473 31290 47526 31290 -52375 31290 52550 31290 -53450 31290 54125 31290 -54875 31290 58050 31290 -60524 31290 62552 31290 -64345 31290 66382 31290 -67619 31290 71050 31290 -42799 31370 43594 31370 -44406 31370 47594 31370 -52375 31370 52550 31370 -53450 31370 54125 31370 -54875 31370 58050 31370 -60505 31370 62627 31370 -64241 31370 66441 31370 -67559 31370 71050 31370 -42799 31450 43674 31450 -44326 31450 47674 31450 -52375 31450 52550 31450 -53450 31450 54125 31450 -54875 31450 58050 31450 -58950 31450 59548 31450 -60452 31450 62714 31450 -63284 31450 66170 31450 -66379 31450 66521 31450 -67479 31450 67621 31450 -67830 31450 71050 31450 -42799 31530 43701 31530 -44299 31530 47701 31530 -52375 31530 52550 31530 -53450 31530 54125 31530 -54875 31530 58050 31530 -58950 31530 66133 31530 -66459 31530 66601 31530 -67399 31530 67541 31530 -67869 31530 71050 31530 -42794 31610 43614 31610 -44386 31610 47614 31610 -52375 31610 52550 31610 -53450 31610 54125 31610 -54875 31610 58050 31610 -58950 31610 66101 31610 -66539 31610 66681 31610 -67319 31610 67461 31610 -67903 31610 71050 31610 -42761 31690 43535 31690 -44466 31690 47535 31690 -52375 31690 52550 31690 -53450 31690 54125 31690 -54875 31690 58050 31690 -58950 31690 66068 31690 -66619 31690 66761 31690 -67239 31690 67381 31690 -67936 31690 71050 31690 -42667 31770 43502 31770 -44499 31770 47502 31770 -52375 31770 52550 31770 -53450 31770 54125 31770 -54875 31770 58050 31770 -58950 31770 66036 31770 -66699 31770 66841 31770 -67159 31770 67301 31770 -67969 31770 71050 31770 -42752 31850 43469 31850 -44532 31850 47469 31850 -52375 31850 52550 31850 -53450 31850 54125 31850 -54875 31850 58050 31850 -58950 31850 66017 31850 -66779 31850 66921 31850 -67079 31850 67221 31850 -67980 31850 71050 31850 -42791 31930 43451 31930 -44549 31930 47451 31930 -52375 31930 52550 31930 -53450 31930 54125 31930 -54875 31930 58050 31930 -58950 31930 66018 31930 -66859 31930 67141 31930 -67981 31930 71050 31930 -42799 32010 43451 32010 -44549 32010 47451 32010 -52375 32010 52550 32010 -53450 32010 54125 32010 -54875 32010 54878 32010 -55450 32010 55550 32010 -56122 32010 58050 32010 -58950 32010 66018 32010 -66919 32010 67081 32010 -67982 32010 71050 32010 -42799 32090 43451 32090 -44549 32090 47451 32090 -52375 32090 52481 32090 -53519 32090 54125 32090 -55450 32090 55550 32090 -56178 32090 57981 32090 -59019 32090 66019 32090 -66839 32090 66981 32090 -67019 32090 67161 32090 -67983 32090 71050 32090 -42799 32170 43476 32170 -44523 32170 47476 32170 -52375 32170 52401 32170 -53599 32170 54125 32170 -55450 32170 55550 32170 -56200 32170 57901 32170 -59099 32170 66020 32170 -66759 32170 66901 32170 -67099 32170 67241 32170 -67983 32170 71050 32170 -42799 32250 43509 32250 -44490 32250 47509 32250 -53644 32250 54125 32250 -55450 32250 55550 32250 -56200 32250 57857 32250 -59144 32250 66039 32250 -66679 32250 66821 32250 -67179 32250 67321 32250 -67956 32250 71050 32250 -42799 32330 43554 32330 -44446 32330 47554 32330 -53677 32330 54125 32330 -55450 32330 55550 32330 -56200 32330 57824 32330 -59177 32330 66072 32330 -66599 32330 66741 32330 -67259 32330 67401 32330 -67924 32330 71050 32330 -42799 32410 43634 32410 -44366 32410 47634 32410 -53702 32410 54125 32410 -55450 32410 55550 32410 -56178 32410 57798 32410 -59202 32410 66106 32410 -66519 32410 66661 32410 -67339 32410 67481 32410 -67891 32410 71050 32410 -42799 32490 43749 32490 -44250 32490 47749 32490 -53702 32490 54125 32490 -55450 32490 57798 32490 -59202 32490 66139 32490 -66439 32490 66581 32490 -67419 32490 67561 32490 -67859 32490 71050 32490 -42799 32570 43654 32570 -44346 32570 47654 32570 -53702 32570 54125 32570 -56158 32570 57798 32570 -59202 32570 66205 32570 -66359 32570 66501 32570 -67499 32570 67641 32570 -67795 32570 71050 32570 -42799 32650 43574 32650 -44426 32650 47574 32650 -53874 32650 54125 32650 -56199 32650 57815 32650 -59184 32650 66421 32650 -67579 32650 71050 32650 -42765 32730 43518 32730 -44483 32730 47518 32730 -54008 32730 54125 32730 -56199 32730 57848 32730 -59151 32730 66392 32730 -67607 32730 70381 32730 -42692 32810 43485 32810 -44516 32810 47485 32810 -54090 32810 54125 32810 -56199 32810 57881 32810 -59118 32810 66438 32810 -67561 32810 70289 32810 -42692 32890 43452 32890 -44549 32890 47452 32890 -56186 32890 57961 32890 -59039 32890 66585 32890 -67419 32890 70256 32890 -42766 32970 43451 32970 -44549 32970 47451 32970 -56142 32970 58047 32970 -58951 32970 66783 32970 -67227 32970 70251 32970 -42799 33050 43451 33050 -44549 33050 47451 33050 -56021 33050 58044 33050 -58956 33050 66681 33050 -67320 33050 70251 33050 -42799 33130 43459 33130 -44540 33130 47459 33130 -56525 33130 57943 33130 -59058 33130 66488 33130 -67512 33130 70251 33130 -42799 33210 43493 33210 -44507 33210 47493 33210 -56728 33210 57894 33210 -59107 33210 66376 33210 -67625 33210 70251 33210 -42799 33290 43526 33290 -44473 33290 47526 33290 -56820 33290 57844 33290 -59157 33290 66296 33290 -67705 33290 70251 33290 -42799 33370 43594 33370 -44406 33370 47594 33370 -56900 33370 57821 33370 -59178 33370 66216 33370 -67785 33370 70251 33370 -42799 33450 43674 33450 -44326 33450 47674 33450 -56980 33450 66146 33450 -67855 33450 70251 33450 -42799 33530 43701 33530 -44299 33530 47701 33530 -57060 33530 66113 33530 -67888 33530 70251 33530 -42799 33610 43614 33610 -44386 33610 47614 33610 -57140 33610 57833 33610 -58450 33610 58550 33610 -59168 33610 66079 33610 -67920 33610 70251 33610 -42799 33690 43535 33690 -44466 33690 47535 33690 -57220 33690 57833 33690 -58450 33690 58550 33690 -59166 33690 64052 33690 -70198 33690 70251 33690 -42790 33770 43502 33770 -44499 33770 47502 33770 -57289 33770 57880 33770 -58450 33770 58550 33770 -59119 33770 63950 33770 -42752 33850 43469 33850 -44532 33850 47469 33850 -57342 33850 57930 33850 -58450 33850 58550 33850 -59069 33850 63870 33850 -42645 33930 43451 33930 -44549 33930 47451 33930 -55998 33930 56399 33930 -57361 33930 58016 33930 -58450 33930 58550 33930 -58983 33930 63790 33930 -42712 34010 43451 34010 -44549 34010 47451 34010 -55904 34010 56479 34010 -57375 34010 58100 34010 -58450 34010 58550 34010 -58900 34010 63719 34010 -42774 34090 43451 34090 -44549 34090 47451 34090 -56019 34090 56559 34090 -57375 34090 57989 34090 -58450 34090 58550 34090 -59012 34090 63665 34090 -42799 34170 43476 34170 -44523 34170 47476 34170 -56099 34170 56625 34170 -57375 34170 57918 34170 -58450 34170 58550 34170 -59083 34170 63642 34170 -42799 34250 43509 34250 -44490 34250 47509 34250 -56144 34250 56625 34250 -57375 34250 57869 34250 -58450 34250 58550 34250 -59132 34250 63625 34250 -42799 34330 43554 34330 -44446 34330 47554 34330 -56177 34330 56625 34330 -57375 34330 57828 34330 -58450 34330 58550 34330 -59173 34330 63625 34330 -42799 34410 43634 34410 -44366 34410 47625 34410 -56202 34410 56625 34410 -57375 34410 57843 34410 -58450 34410 58550 34410 -59156 34410 63625 34410 -64375 34410 66087 34410 -42799 34490 43749 34490 -44250 34490 47625 34490 -56202 34490 56625 34490 -57375 34490 59798 34490 -60203 34490 63625 34490 -64375 34490 66120 34490 -42799 34570 47625 34570 -56202 34570 56625 34570 -57375 34570 57855 34570 -59146 34570 59654 34570 -60346 34570 63625 34570 -64375 34570 66156 34570 -42799 34650 47625 34650 -56184 34650 56625 34650 -57431 34650 57821 34650 -59177 34650 59574 34650 -60426 34650 63574 34650 -64426 34650 66236 34650 -42799 34730 47625 34730 -56151 34730 56625 34730 -60483 34730 63518 34730 -64483 34730 66316 34730 -42799 34810 47625 34810 -56118 34810 56637 34810 -60516 34810 63485 34810 -64516 34810 66396 34810 -42782 34890 47625 34890 -56039 34890 56653 34890 -60549 34890 63452 34890 -64549 34890 66536 34890 -42732 34970 47625 34970 -55951 34970 56704 34970 -60549 34970 63451 34970 -64549 34970 66728 34970 -42702 35050 47625 35050 -55956 35050 56769 35050 -60549 35050 63451 35050 -64549 35050 66681 35050 -42770 35130 47625 35130 -56058 35130 56849 35130 -60540 35130 63459 35130 -64540 35130 66488 35130 -42799 35210 47625 35210 -56107 35210 56929 35210 -60507 35210 63493 35210 -64507 35210 66376 35210 -42799 35290 47633 35290 -56157 35290 57021 35290 -60473 35290 63526 35290 -64473 35290 66296 35290 -42800 35370 47649 35370 -56178 35370 57229 35370 -57270 35370 57807 35370 -59193 35370 59594 35370 -60406 35370 63594 35370 -64406 35370 66216 35370 -42788 35450 47691 35450 -55450 35450 57798 35450 -59202 35450 59674 35450 -60326 35450 63674 35450 -64326 35450 66146 35450 -41550 35530 47749 35530 -55450 35530 57798 35530 -59202 35530 59845 35530 -60154 35530 63845 35530 -64154 35530 66113 35530 -42748 35610 47829 35610 -55450 35610 55550 35610 -56168 35610 57798 35610 -59201 35610 66079 35610 -42799 35690 47909 35690 -55450 35690 55550 35690 -56166 35690 57831 35690 -59168 35690 64803 35690 -42799 35770 47991 35770 -55450 35770 55550 35770 -56119 35770 57864 35770 -59135 35770 64700 35770 -42799 35850 48125 35850 -55450 35850 55550 35850 -56069 35850 57921 35850 -59079 35850 64620 35850 -42786 35930 49501 35930 -55450 35930 55550 35930 -55983 35930 58001 35930 -58999 35930 64540 35930 -42742 36010 43750 36010 -44251 36010 47750 36010 -48251 36010 49596 36010 -55450 36010 55550 36010 -55900 36010 58099 36010 -58901 36010 64460 36010 -41550 36090 41652 36090 -42620 36090 43634 36090 -44366 36090 47634 36090 -48366 36090 49481 36090 -55450 36090 55550 36090 -56012 36090 57989 36090 -59012 36090 64380 36090 -42722 36170 43554 36170 -44446 36170 47554 36170 -55450 36170 55550 36170 -56083 36170 57918 36170 -59083 36170 64300 36170 -42778 36250 43510 36250 -44491 36250 47510 36250 -55450 36250 55550 36250 -56132 36250 57869 36250 -59132 36250 64220 36250 -42799 36330 43477 36330 -44524 36330 47477 36330 -55450 36330 55550 36330 -56173 36330 57828 36330 -59173 36330 64140 36330 -42799 36410 43451 36410 -44549 36410 47451 36410 -55450 36410 55550 36410 -56156 36410 57843 36410 -59156 36410 64060 36410 -65119 36410 66087 36410 -42799 36490 43451 36490 -44549 36490 47451 36490 -55450 36490 59798 36490 -60203 36490 63798 36490 -65039 36490 66120 36490 -42799 36570 43451 36570 -44549 36570 47451 36570 -55450 36570 55550 36570 -56146 36570 57855 36570 -58450 36570 58550 36570 -59146 36570 59654 36570 -60346 36570 63654 36570 -64959 36570 66156 36570 -42799 36650 43468 36650 -44531 36650 47468 36650 -55450 36650 55550 36650 -56178 36650 57821 36650 -58450 36650 58550 36650 -59178 36650 59574 36650 -60426 36650 63574 36650 -64879 36650 66236 36650 -42799 36730 43501 36730 -44498 36730 47501 36730 -55450 36730 55550 36730 -56143 36730 57856 36730 -58450 36730 58550 36730 -59143 36730 59518 36730 -60483 36730 63518 36730 -64799 36730 66316 36730 -42799 36810 43534 36810 -44465 36810 47534 36810 -55450 36810 55550 36810 -56094 36810 57905 36810 -58450 36810 58550 36810 -59094 36810 59485 36810 -60516 36810 63485 36810 -64719 36810 66396 36810 -42799 36890 43614 36890 -44386 36890 47614 36890 -48386 36890 49080 36890 -55450 36890 55550 36890 -56038 36890 57961 36890 -58450 36890 58550 36890 -59038 36890 59452 36890 -60549 36890 63452 36890 -64639 36890 66536 36890 -42799 36970 43701 36970 -44298 36970 47701 36970 -48298 36970 49000 36970 -55927 36970 58071 36970 -58450 36970 58550 36970 -58927 36970 59451 36970 -60549 36970 63451 36970 -64559 36970 66728 36970 -42778 37050 48942 37050 -55979 37050 58044 37050 -58450 37050 58550 37050 -58956 37050 59451 37050 -60549 37050 63451 37050 -64549 37050 66681 37050 -42722 37130 48900 37130 -56059 37130 57943 37130 -58450 37130 58550 37130 -59058 37130 59459 37130 -60540 37130 63459 37130 -64540 37130 66488 37130 -42712 37210 48884 37210 -56127 37210 57894 37210 -58450 37210 58550 37210 -59107 37210 59493 37210 -60507 37210 63493 37210 -64507 37210 66376 37210 -42774 37290 48875 37290 -56160 37290 57844 37290 -58450 37290 58550 37290 -59157 37290 59526 37290 -60473 37290 63526 37290 -64473 37290 66296 37290 -42799 37370 48875 37370 -56194 37370 57821 37370 -58450 37370 58550 37370 -59178 37370 59594 37370 -60406 37370 63594 37370 -64406 37370 66216 37370 -42799 37450 48875 37450 -56202 37450 59625 37450 -60375 37450 63674 37450 -64326 37450 66146 37450 -42799 37530 48875 37530 -56202 37530 59625 37530 -60375 37530 63845 37530 -64154 37530 66113 37530 -42799 37610 48875 37610 -56201 37610 57833 37610 -58450 37610 58550 37610 -59168 37610 59625 37610 -60375 37610 66079 37610 -42799 37690 48875 37690 -56168 37690 57833 37690 -58450 37690 58550 37690 -59166 37690 59625 37690 -60375 37690 64803 37690 -42799 37770 48879 37770 -56135 37770 57880 37770 -58450 37770 58550 37770 -59119 37770 59625 37770 -60375 37770 64700 37770 -42799 37850 48895 37850 -56079 37850 57930 37850 -58450 37850 58550 37850 -59069 37850 59619 37850 -60375 37850 64620 37850 -42799 37930 48928 37930 -55999 37930 58016 37930 -58450 37930 58550 37930 -58983 37930 59539 37930 -60375 37930 64540 37930 -42799 38010 48981 38010 -55901 38010 58095 38010 -58906 38010 59459 38010 -60372 38010 64460 38010 -42782 38090 49097 38090 -55450 38090 55550 38090 -56012 38090 57981 38090 -59019 38090 59379 38090 -60356 38090 64380 38090 -42732 38170 49196 38170 -55450 38170 55550 38170 -56083 38170 57901 38170 -59099 38170 59299 38170 -60328 38170 64300 38170 -41550 38250 49282 38250 -55450 38250 55550 38250 -56132 38250 57857 38250 -59144 38250 59219 38250 -60275 38250 64220 38250 -70280 38250 70348 38250 -42732 38330 49328 38330 -55450 38330 55550 38330 -56173 38330 57824 38330 -60200 38330 64140 38330 -70200 38330 71950 38330 -42783 38410 49343 38410 -50656 38410 50880 38410 -55450 38410 55550 38410 -56156 38410 57798 38410 -60120 38410 64060 38410 -65119 38410 66087 38410 -70120 38410 71950 38410 -42799 38490 50960 38490 -55450 38490 57798 38490 -60203 38490 63798 38490 -65039 38490 66120 38490 -70040 38490 71950 38490 -42799 38570 49355 38570 -49950 38570 50050 38570 -50646 38570 51040 38570 -55450 38570 55550 38570 -56146 38570 57798 38570 -60346 38570 63654 38570 -64959 38570 66156 38570 -69960 38570 71950 38570 -42799 38650 49321 38650 -49950 38650 50050 38650 -50678 38650 51120 38650 -55450 38650 55550 38650 -56178 38650 57815 38650 -60426 38650 63574 38650 -64879 38650 66236 38650 -69880 38650 71950 38650 -42799 38730 49356 38730 -49950 38730 50050 38730 -50643 38730 51125 38730 -55450 38730 55550 38730 -56143 38730 57848 38730 -60483 38730 63518 38730 -64799 38730 66316 38730 -69800 38730 71950 38730 -42799 38810 49405 38810 -49950 38810 50050 38810 -50594 38810 51125 38810 -55450 38810 55550 38810 -56094 38810 57881 38810 -60516 38810 63485 38810 -64719 38810 66396 38810 -69720 38810 71950 38810 -42799 38890 49461 38890 -49950 38890 50050 38890 -50538 38890 51125 38890 -55450 38890 55550 38890 -56038 38890 56676 38890 -60549 38890 63452 38890 -64639 38890 66536 38890 -69640 38890 71950 38890 -42799 38970 49571 38970 -49950 38970 50050 38970 -50428 38970 51125 38970 -55450 38970 55550 38970 -55928 38970 56507 38970 -60549 38970 63451 38970 -64559 38970 66728 38970 -69560 38970 71950 38970 -42799 39050 49797 39050 -49950 39050 50050 39050 -50202 39050 51125 39050 -55147 39050 55297 39050 -55450 39050 55550 39050 -55702 39050 56419 39050 -60549 39050 63451 39050 -64549 39050 66681 39050 -69480 39050 71950 39050 -42799 39130 51125 39130 -55227 39130 56339 39130 -60540 39130 63459 39130 -64540 39130 66488 39130 -69400 39130 71950 39130 -42773 39210 51125 39210 -55279 39210 56259 39210 -60507 39210 63493 39210 -64507 39210 66376 39210 -69320 39210 71950 39210 -42712 39290 51125 39290 -55312 39290 56179 39290 -60473 39290 63526 39290 -64473 39290 66296 39290 -69240 39290 71950 39290 -42646 39370 51125 39370 -55345 39370 56099 39370 -60406 39370 63594 39370 -64406 39370 66216 39370 -69160 39370 71950 39370 -42752 39450 51125 39450 -55349 39450 56019 39450 -60375 39450 63674 39450 -64326 39450 66146 39450 -69080 39450 71950 39450 -42791 39530 51125 39530 -55349 39530 55939 39530 -60368 39530 63845 39530 -64154 39530 66113 39530 -69000 39530 71950 39530 -42799 39610 51125 39610 -55349 39610 55859 39610 -60352 39610 66080 39610 -68920 39610 71950 39610 -42799 39690 51125 39690 -55319 39690 55779 39690 -60314 39690 66046 39690 -68840 39690 71950 39690 -42799 39770 51125 39770 -55286 39770 55699 39770 -60260 39770 66013 39770 -68760 39770 71950 39770 -42799 39850 51125 39850 -55247 39850 55619 39850 -60180 39850 66000 39850 -68680 39850 71950 39850 -42799 39930 51125 39930 -55167 39930 55539 39930 -60100 39930 66000 39930 -68600 39930 71950 39930 -42799 40010 51125 40010 -54375 40010 54415 40010 -55084 40010 55312 40010 -60020 40010 66000 40010 -68520 40010 71950 40010 -42799 40090 51125 40090 -54375 40090 54609 40090 -54890 40090 55167 40090 -59902 40090 66000 40090 -68440 40090 71950 40090 -42799 40170 51125 40170 -59918 40170 66000 40170 -68360 40170 71950 40170 -42799 40250 51125 40250 -60031 40250 66021 40250 -68280 40250 71950 40250 -42765 40330 51125 40330 -60111 40330 66054 40330 -68167 40330 71950 40330 -42692 40410 51125 40410 -60191 40410 66087 40410 -67912 40410 71950 40410 -42742 40490 43798 40490 -44203 40490 47798 40490 -48203 40490 51125 40490 -60269 40490 66120 40490 -67879 40490 71950 40490 -42787 40570 43654 40570 -44346 40570 47654 40570 -48346 40570 51125 40570 -60322 40570 66156 40570 -67844 40570 71950 40570 -42799 40650 43574 40650 -44426 40650 47574 40650 -48426 40650 51125 40650 -60355 40650 66236 40650 -67764 40650 71950 40650 -42800 40730 43518 40730 -44483 40730 47518 40730 -48483 40730 51125 40730 -60371 40730 66316 40730 -67684 40730 71950 40730 -42800 40810 43485 40810 -44516 40810 47485 40810 -48516 40810 51125 40810 -60375 40810 66396 40810 -67604 40810 71950 40810 -42748 40890 43452 40890 -44549 40890 47452 40890 -48549 40890 51125 40890 -58139 40890 58147 40890 -58852 40890 59609 40890 -60375 40890 66536 40890 -67463 40890 71950 40890 -41550 40970 43451 40970 -44549 40970 47451 40970 -48549 40970 51125 40970 -58125 40970 58262 40970 -58736 40970 59625 40970 -60375 40970 63846 40970 -64155 40970 66625 40970 -67375 40970 71950 40970 -41550 41050 41600 41050 -42788 41050 43451 41050 -44549 41050 47451 41050 -48549 41050 51125 41050 -58125 41050 59625 41050 -60375 41050 63674 41050 -64326 41050 66625 41050 -67375 41050 71950 41050 -41550 41130 41600 41130 -42799 41130 43459 41130 -44540 41130 47459 41130 -48540 41130 51125 41130 -58125 41130 59594 41130 -60406 41130 63594 41130 -67375 41130 71950 41130 -41550 41210 41600 41210 -42799 41210 43493 41210 -44507 41210 47493 41210 -48507 41210 51125 41210 -58125 41210 59527 41210 -60474 41210 63527 41210 -67375 41210 71950 41210 -41550 41290 41600 41290 -42799 41290 43526 41290 -44473 41290 47526 41290 -48473 41290 51133 41290 -58116 41290 59493 41290 -60507 41290 63493 41290 -67366 41290 71950 41290 -41550 41370 41600 41370 -42769 41370 43594 41370 -44406 41370 47594 41370 -48406 41370 51149 41370 -58100 41370 59460 41370 -60541 41370 63460 41370 -67350 41370 71950 41370 -41550 41450 41612 41450 -42702 41450 43674 41450 -44326 41450 47674 41450 -48326 41450 51191 41450 -58058 41450 59451 41450 -60549 41450 63451 41450 -67307 41450 71950 41450 -41550 41530 43845 41530 -44154 41530 47845 41530 -48154 41530 51250 41530 -58000 41530 59451 41530 -60549 41530 63451 41530 -67250 41530 71950 41530 -41550 41610 51330 41610 -57920 41610 59451 41610 -60548 41610 63451 41610 -67170 41610 71950 41610 -41550 41690 51410 41690 -57840 41690 59484 41690 -60515 41690 63484 41690 -67090 41690 71950 41690 -41550 41770 51490 41770 -57760 41770 59517 41770 -60482 41770 63517 41770 -67007 41770 71950 41770 -41550 41850 51570 41850 -57680 41850 59574 41850 -60426 41850 63574 41850 -66874 41850 71950 41850 -41550 41930 51650 41930 -57600 41930 59654 41930 -60346 41930 63654 41930 -64345 41930 71950 41930 -41550 42010 51730 42010 -57520 42010 58326 42010 -58658 42010 59797 42010 -60202 42010 63797 42010 -64202 42010 71950 42010 -41550 42090 51847 42090 -57402 42090 58223 42090 -58778 42090 71950 42090 -41550 42170 55145 42170 -55855 42170 56645 42170 -57259 42170 58241 42170 -58759 42170 71950 42170 -41550 42250 55043 42250 -55959 42250 56543 42250 -57179 42250 57321 42250 -57459 42250 58043 42250 -58179 42250 58321 42250 -58679 42250 58821 42250 -58959 42250 71950 42250 -41550 42330 55015 42330 -55992 42330 56515 42330 -57099 42330 57241 42330 -57492 42330 58015 42330 -58259 42330 58401 42330 -58599 42330 58741 42330 -58992 42330 71950 42330 -41550 42410 54987 42410 -56011 42410 56487 42410 -57019 42410 57161 42410 -57511 42410 57987 42410 -58339 42410 58481 42410 -58519 42410 58661 42410 -59011 42410 71950 42410 -41550 42490 54984 42490 -55439 42490 55561 42490 -56015 42490 56484 42490 -56939 42490 57081 42490 -57515 42490 57984 42490 -58419 42490 58581 42490 -59015 42490 71950 42490 -41550 42570 54988 42570 -55359 42570 55641 42570 -56019 42570 56488 42570 -56859 42570 57141 42570 -57519 42570 57988 42570 -58359 42570 58641 42570 -59019 42570 71950 42570 -41550 42650 55000 42650 -55279 42650 55421 42650 -55579 42650 55721 42650 -55992 42650 56500 42650 -56779 42650 56921 42650 -57079 42650 57221 42650 -57492 42650 58000 42650 -58279 42650 58421 42650 -58579 42650 58721 42650 -58992 42650 71950 42650 -41550 42730 55032 42730 -55199 42730 55341 42730 -55659 42730 55801 42730 -55964 42730 56532 42730 -56699 42730 56841 42730 -57159 42730 57301 42730 -57464 42730 58032 42730 -58199 42730 58341 42730 -58659 42730 58801 42730 -58964 42730 71950 42730 -41550 42810 55261 42810 -55739 42810 56761 42810 -57239 42810 58261 42810 -58739 42810 71950 42810 -41550 42890 55217 42890 -55782 42890 56717 42890 -57282 42890 58217 42890 -58782 42890 71950 42890 -50692 32125 50845 32125 -50699 32205 50925 32205 -50699 32285 51005 32285 -50699 32365 51085 32365 -50699 32445 51125 32445 -50699 32525 51125 32525 -50699 32605 51125 32605 -50699 32685 51125 32685 -50699 32765 51125 32765 -50699 32845 51125 32845 -50671 32925 51125 32925 -50607 33005 51125 33005 -49444 33085 49496 33085 -50505 33085 51125 33085 -49364 33165 49421 33165 -50580 33165 51125 33165 -49284 33245 49372 33245 -50629 33245 51125 33245 -49175 33325 49329 33325 -50672 33325 51125 33325 -48370 33405 49340 33405 -50659 33405 51125 33405 -48262 33485 51125 33485 -48341 33565 49357 33565 -50644 33565 51125 33565 -48421 33645 49320 33645 -50679 33645 51125 33645 -48480 33725 49352 33725 -50647 33725 51125 33725 -48514 33805 49402 33805 -50597 33805 51125 33805 -48547 33885 49454 33885 -50545 33885 51125 33885 -48549 33965 48727 33965 -49274 33965 49565 33965 -50434 33965 51125 33965 -48549 34045 48608 34045 -49392 34045 49526 34045 -50474 34045 51125 34045 -50554 34125 51125 34125 -50625 34205 51125 34205 -50658 34285 51132 34285 -50692 34365 51148 34365 -50702 34445 51188 34445 -50702 34525 51244 34525 -50702 34605 51324 34605 -50670 34685 51404 34685 -50637 34765 51455 34765 -50584 34845 51375 34845 -50504 34925 51295 34925 -50392 35005 51215 35005 -50514 35085 51135 35085 -$endFILLSEGMENTS $endCZONE_OUTLINE $EndBOARD diff --git a/demos/sonde xilinx/sonde xilinx.net b/demos/sonde xilinx/sonde xilinx.net index 1ab13033db..03f66e6d17 100644 --- a/demos/sonde xilinx/sonde xilinx.net +++ b/demos/sonde xilinx/sonde xilinx.net @@ -1,389 +1,162 @@ -# EESchema Netlist Version 1.1 created 3/5/2007-08:10:32 -( - ( 3EBF81A7 $noname C4 100pF {Lib=C} - ( 1 N-000001 ) - ( 2 GND ) +( { EESchema Netlist Version 1.1 11/02/2011 10:40:30 +eeschema (2011-02-09 BZR 2801)-testing} + ( 4D527316 $noname R11 100 + ( 1 exists in 40exists in 40 ) + ( 2 exists in 35exists in 35 ) ) - ( 3EBF819B $noname R13 100 {Lib=R} - ( 1 TMS-PROG_1 ) - ( 2 N-000001 ) + ( 3EBF81A7 $noname C4 100pF + ( 1 exists in 34exists in 34 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF7DBD $noname U1 74LS125 {Lib=74LS125} - ( 1 N-000041 ) - ( 2 GND ) - ( 3 N-000026 ) - ( 4 N-000028 ) - ( 5 N-000040 ) - ( 6 N-000024 ) - ( 7 GND ) - ( 8 N-000023 ) - ( 9 N-000039 ) - ( 10 N-000028 ) - ( 11 N-000001 ) - ( 12 N-000003 ) - ( 13 N-000028 ) - ( 14 VCC ) + ( 4D528082 $noname R13 100 + ( 1 exists in 42exists in 42 ) + ( 2 exists in 34exists in 34 ) ) - ( 3ECDE5C8 $noname J2 DB9MALE {Lib=DB9} - ( 1 PWR(3,3-5V)_1 ) - ( 2 TD0-DONE/P_1 ) - ( 3 TDI-DIN_1 ) - ( 4 TCK-CCLK_1 ) - ( 5 TMS-PROG_1 ) - ( 6 GND ) - ( 7 GND ) - ( 8 GND ) - ( 9 GND ) + ( 3EBF7DBD $noname U1 74LS125 + ( 1 exists in 31exists in 31 ) + ( 2 exists in 1exists in 1 ) + ( 3 exists in 38exists in 38 ) + ( 4 exists in 33exists in 33 ) + ( 5 exists in 16exists in 16 ) + ( 6 exists in 35exists in 35 ) + ( 7 exists in 1exists in 1 ) + ( 8 exists in 36exists in 36 ) + ( 9 exists in 30exists in 30 ) + ( 10 exists in 33exists in 33 ) + ( 11 exists in 34exists in 34 ) + ( 12 exists in 32exists in 32 ) + ( 13 exists in 33exists in 33 ) + ( 14 exists in 5exists in 5 ) ) - ( 3EBF830C $noname P1 CONN_6 {Lib=CONN_6} - ( 1 PWR(3,3-5V)_1 ) - ( 2 GND ) - ( 3 TD0-DONE/P_1 ) - ( 4 TDI-DIN_1 ) - ( 5 TCK-CCLK_1 ) - ( 6 TMS-PROG_1 ) + ( 3ECDE5C8 $noname J2 DB9MALE + ( 1 exists in 37exists in 37 ) + ( 2 exists in 39exists in 39 ) + ( 3 exists in 40exists in 40 ) + ( 4 exists in 41exists in 41 ) + ( 5 exists in 42exists in 42 ) + ( 6 exists in 1exists in 1 ) + ( 7 exists in 1exists in 1 ) + ( 8 exists in 1exists in 1 ) + ( 9 exists in 1exists in 1 ) ) - ( 3EBF82C6 $noname C1 1uF {Lib=CP} - ( 1 VCC ) - ( 2 GND ) + ( 3EBF830C $noname P1 CONN_6 + ( 1 exists in 37exists in 37 ) + ( 2 exists in 1exists in 1 ) + ( 3 exists in 39exists in 39 ) + ( 4 exists in 40exists in 40 ) + ( 5 exists in 41exists in 41 ) + ( 6 exists in 42exists in 42 ) ) - ( 3EBF81A7 $noname C5 100pF {Lib=C} - ( 1 N-000023 ) - ( 2 GND ) + ( 3EBF82C6 $noname C1 1uF + ( 1 exists in 5exists in 5 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF819B $noname R12 100 {Lib=R} - ( 1 TCK-CCLK_1 ) - ( 2 N-000023 ) + ( 4D528086 $noname C5 100pF + ( 1 exists in 36exists in 36 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF81A7 $noname C2 100pF {Lib=C} - ( 1 N-000024 ) - ( 2 GND ) + ( 4D528083 $noname R12 100 + ( 1 exists in 41exists in 41 ) + ( 2 exists in 36exists in 36 ) ) - ( 3EBF819B $noname R11 100 {Lib=R} - ( 1 TDI-DIN_1 ) - ( 2 N-000024 ) + ( 4D528085 $noname C2 100pF + ( 1 exists in 35exists in 35 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF81A7 $noname C3 100pF {Lib=C} - ( 1 N-000026 ) - ( 2 GND ) + ( 4D528084 $noname C3 100pF + ( 1 exists in 38exists in 38 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF819B $noname R14 100 {Lib=R} - ( 1 TD0-DONE/P_1 ) - ( 2 N-000026 ) + ( 3EBF819B $noname R14 100 + ( 1 exists in 39exists in 39 ) + ( 2 exists in 38exists in 38 ) ) - ( 3EBF818E $noname R5 1K {Lib=R} - ( 1 VCC ) - ( 2 GND ) + ( 3EBF818E $noname R5 1K + ( 1 exists in 5exists in 5 ) + ( 2 exists in 1exists in 1 ) ) - ( 3EBF8187 $noname R2 5,1K {Lib=R} - ( 1 VCC ) - ( 2 N-000026 ) + ( 3EBF8187 $noname R2 5,1K + ( 1 exists in 5exists in 5 ) + ( 2 exists in 38exists in 38 ) ) - ( 3EBF8176 $noname D2 BAT46 {Lib=DIODESCH} - ( 1 PWR(3,3-5V)_1 ) - ( 2 VCC ) + ( 3EBF8176 $noname D2 BAT46 + ( 1 exists in 37exists in 37 ) + ( 2 exists in 5exists in 5 ) ) - ( 3EBF815E $noname D1 BAT46 {Lib=DIODESCH} - ( 1 VCC ) - ( 2 N-000025 ) + ( 3EBF815E $noname D1 BAT46 + ( 1 exists in 5exists in 5 ) + ( 2 exists in 14exists in 14 ) ) - ( 3EBF7EEC $noname U2 74LS125 {Lib=74LS125} - ( 1 GND ) - ( 2 N-000026 ) - ( 3 N-000042 ) - ( 4 GND ) - ( 5 GND ) - ( 6 ? ) - ( 7 GND ) - ( 8 ? ) - ( 9 GND ) - ( 10 GND ) - ( 11 ? ) - ( 12 GND ) - ( 13 GND ) - ( 14 VCC ) + ( 3EBF7EEC $noname U2 74LS125 + ( 1 exists in 1exists in 1 ) + ( 2 exists in 38exists in 38 ) + ( 3 exists in 15exists in 15 ) + ( 4 exists in 1exists in 1 ) + ( 5 exists in 1exists in 1 ) + ( 6 exists in 4exists in 4 ) + ( 7 exists in 1exists in 1 ) + ( 8 exists in 3exists in 3 ) + ( 9 exists in 1exists in 1 ) + ( 10 exists in 1exists in 1 ) + ( 11 exists in 2exists in 2 ) + ( 12 exists in 1exists in 1 ) + ( 13 exists in 1exists in 1 ) + ( 14 exists in 5exists in 5 ) ) - ( 3EBF7D33 $noname R9 100 {Lib=R} - ( 1 N-000003 ) - ( 2 TMS/PROG(D2)_1 ) + ( 3EBF7D33 $noname R9 100 + ( 1 exists in 32exists in 32 ) + ( 2 exists in 6exists in 6 ) ) - ( 3EBF7D31 $noname R10 100 {Lib=R} - ( 1 N-000039 ) - ( 2 CLK(D1)_1 ) + ( 3EBF7D31 $noname R10 100 + ( 1 exists in 30exists in 30 ) + ( 2 exists in 12exists in 12 ) ) - ( 3EBF7D33 $noname R8 100 {Lib=R} - ( 1 N-000028 ) - ( 2 CTRL(D3)_1 ) + ( 4D528080 $noname R8 100 + ( 1 exists in 33exists in 33 ) + ( 2 exists in 11exists in 11 ) ) - ( 3EBF7D31 $noname R7 100 {Lib=R} - ( 1 N-000040 ) - ( 2 TDI/DIN(D0)_1 ) + ( 4D52807F $noname R7 100 + ( 1 exists in 16exists in 16 ) + ( 2 exists in 10exists in 10 ) ) - ( 3EBF7D26 $noname R6 100 {Lib=R} - ( 1 N-000041 ) - ( 2 TD0/PROG(D4)_1 ) + ( 3EBF7D26 $noname R6 100 + ( 1 exists in 31exists in 31 ) + ( 2 exists in 9exists in 9 ) ) - ( 3EBF7D22 $noname R4 47 {Lib=R} - ( 1 N-000042 ) - ( 2 DONE(/SELECT)_1 ) + ( 3EBF7D22 $noname R4 47 + ( 1 exists in 15exists in 15 ) + ( 2 exists in 24exists in 24 ) ) - ( 3EBF7D16 $noname R1 100 {Lib=R} - ( 1 N-000025 ) - ( 2 VCC_SENSE(/ERROR)_1 ) + ( 3EBF7D16 $noname R1 100 + ( 1 exists in 14exists in 14 ) + ( 2 exists in 7exists in 7 ) ) - ( 3EBF7D04 $noname J1 DB25MALE {Lib=DB25} - ( 1 ? ) - ( 2 TDI/DIN(D0)_1 ) - ( 3 CLK(D1)_1 ) - ( 4 TMS/PROG(D2)_1 ) - ( 5 CTRL(D3)_1 ) - ( 6 TD0/PROG(D4)_1 ) - ( 7 ? ) - ( 8 N-000027 ) - ( 9 ? ) - ( 10 ? ) - ( 11 N-000027 ) - ( 12 N-000027 ) - ( 13 DONE(/SELECT)_1 ) - ( 14 ? ) - ( 15 VCC_SENSE(/ERROR)_1 ) - ( 16 ? ) - ( 17 ? ) - ( 18 ? ) - ( 19 ? ) - ( 20 GND ) - ( 21 ? ) - ( 22 ? ) - ( 23 ? ) - ( 24 ? ) - ( 25 GND ) + ( 3EBF7D04 $noname J1 DB25MALE + ( 1 exists in 13exists in 13 ) + ( 2 exists in 10exists in 10 ) + ( 3 exists in 12exists in 12 ) + ( 4 exists in 6exists in 6 ) + ( 5 exists in 11exists in 11 ) + ( 6 exists in 9exists in 9 ) + ( 7 exists in 29exists in 29 ) + ( 8 exists in 8exists in 8 ) + ( 9 exists in 28exists in 28 ) + ( 10 exists in 27exists in 27 ) + ( 11 exists in 8exists in 8 ) + ( 12 exists in 8exists in 8 ) + ( 13 exists in 24exists in 24 ) + ( 14 exists in 22exists in 22 ) + ( 15 exists in 7exists in 7 ) + ( 16 exists in 20exists in 20 ) + ( 17 exists in 19exists in 19 ) + ( 18 exists in 18exists in 18 ) + ( 19 exists in 17exists in 17 ) + ( 20 exists in 1exists in 1 ) + ( 21 exists in 26exists in 26 ) + ( 22 exists in 25exists in 25 ) + ( 23 exists in 23exists in 23 ) + ( 24 exists in 21exists in 21 ) + ( 25 exists in 1exists in 1 ) ) ) * -{ Allowed footprints by component: -$component C4 - C? - SM* -$endlist -$component R13 - R? - SM0603 - SM0805 -$endlist -$component J2 - DB9* -$endlist -$component C1 - CP* - SM* -$endlist -$component C5 - C? - SM* -$endlist -$component R12 - R? - SM0603 - SM0805 -$endlist -$component C2 - C? - SM* -$endlist -$component R11 - R? - SM0603 - SM0805 -$endlist -$component C3 - C? - SM* -$endlist -$component R14 - R? - SM0603 - SM0805 -$endlist -$component R5 - R? - SM0603 - SM0805 -$endlist -$component R2 - R? - SM0603 - SM0805 -$endlist -$component R9 - R? - SM0603 - SM0805 -$endlist -$component R10 - R? - SM0603 - SM0805 -$endlist -$component R8 - R? - SM0603 - SM0805 -$endlist -$component R7 - R? - SM0603 - SM0805 -$endlist -$component R6 - R? - SM0603 - SM0805 -$endlist -$component R4 - R? - SM0603 - SM0805 -$endlist -$component R1 - R? - SM0603 - SM0805 -$endlist -$component J1 - DB25* -$endlist -$endfootprintlist -} -{ Pin List by Nets -Net 1 "" - U1 11 - C4 1 - R13 2 -Net 2 "GND" - C4 2 - U2 10 - J1 25 - C5 2 - U1 7 - J2 6 - J2 7 - J1 20 - J2 8 - J2 9 - U2 5 - U2 7 - U2 12 - U2 4 - U2 7 - R5 2 - U2 13 - C3 2 - U1 7 - C1 2 - U2 1 - U2 7 - P1 2 - U1 7 - U1 7 - U1 2 - U2 7 - U2 9 - C2 2 -Net 3 "" - U1 12 - R9 1 -Net 4 "VCC" - U2 14 - U1 14 - C1 1 - U1 14 - R5 1 - R2 1 - D2 2 - U2 14 - U2 14 - U1 14 - U2 14 - U1 14 - D1 1 -Net 18 "PWR(3,3-5V)_1" - D2 1 - P1 1 - J2 1 -Net 19 "TMS-PROG_1" - J2 5 - R13 1 - P1 6 -Net 20 "TCK-CCLK_1" - P1 5 - J2 4 - R12 1 -Net 21 "TDI-DIN_1" - J2 3 - R11 1 - P1 4 -Net 22 "TD0-DONE/P_1" - J2 2 - P1 3 - R14 1 -Net 23 "" - U1 8 - R12 2 - C5 1 -Net 24 "" - C2 1 - R11 2 - U1 6 -Net 25 "" - R1 1 - D1 2 -Net 26 "" - R14 2 - C3 1 - U2 2 - U1 3 - R2 2 -Net 27 "" - J1 12 - J1 8 - J1 11 -Net 28 "" - U1 13 - U1 4 - U1 10 - R8 1 -Net 29 "VCC_SENSE(/ERROR)_1" - J1 15 - R1 2 -Net 30 "TDI/DIN(D0)_1" - R7 2 - J1 2 -Net 31 "CLK(D1)_1" - J1 3 - R10 2 -Net 32 "CTRL(D3)_1" - R8 2 - J1 5 -Net 33 "TD0/PROG(D4)_1" - R6 2 - J1 6 -Net 34 "TMS/PROG(D2)_1" - J1 4 - R9 2 -Net 35 "DONE(/SELECT)_1" - R4 2 - J1 13 -Net 39 "" - U1 9 - R10 1 -Net 40 "" - R7 1 - U1 5 -Net 41 "" - U1 1 - R6 1 -Net 42 "" - R4 1 - U2 3 -} -#End diff --git a/demos/sonde xilinx/sonde xilinx.sch b/demos/sonde xilinx/sonde xilinx.sch index 60ac2206a8..92559ee9d6 100644 --- a/demos/sonde xilinx/sonde xilinx.sch +++ b/demos/sonde xilinx/sonde xilinx.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date 09/02/2011 18:36:39 +EESchema Schematic File Version 2 date 10/02/2011 12:23:20 LIBS:power LIBS:device LIBS:conn @@ -30,7 +30,7 @@ EELAYER END $Descr A4 11700 8267 Sheet 1 1 Title "CABLE PARALLELE III" -Date "9 feb 2011" +Date "10 feb 2011" Rev "1" Comp "" Comment1 "" @@ -38,6 +38,15 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +$Comp +L R R11 +U 1 1 4D527316 +P 6650 2600 +F 0 "R11" V 6730 2600 50 0000 C CNN +F 1 "100" V 6650 2600 50 0000 C CNN + 1 6650 2600 + 0 1 1 0 +$EndComp Wire Wire Line 6900 4200 7350 4200 Wire Wire Line @@ -48,17 +57,17 @@ Wire Wire Line Wire Wire Line 6400 4200 5900 4200 $Comp -L GND #PWR111 -U 1 1 4D52D0AC +L GND #PWR01 +U 1 1 3EBF81B1 P 6300 4650 -F 0 "#PWR111" H 6300 4650 40 0001 C CNN +F 0 "#PWR01" H 6300 4650 40 0001 C CNN F 1 "GND" H 6300 4580 40 0001 C CNN 1 6300 4650 1 0 0 -1 $EndComp $Comp L C C4 -U 1 1 4D52D0AA +U 1 1 3EBF81A7 P 6300 4450 F 0 "C4" H 6350 4550 50 0000 L CNN F 1 "100pF" H 6350 4350 50 0000 L CNN @@ -67,7 +76,7 @@ F 1 "100pF" H 6350 4350 50 0000 L CNN $EndComp $Comp L R R13 -U 1 1 4D52D0A6 +U 1 1 4D528082 P 6650 4200 F 0 "R13" V 6730 4200 50 0000 C CNN F 1 "100" V 6650 4200 50 0000 C CNN @@ -134,37 +143,37 @@ Wire Wire Line Wire Wire Line 8400 3700 8400 2750 $Comp -L PWR_FLAG #FLG102 +L PWR_FLAG #FLG02 U 1 1 3EBF848F P 6200 1050 -F 0 "#FLG102" H 6200 1320 30 0001 C CNN +F 0 "#FLG02" H 6200 1320 30 0001 C CNN F 1 "PWR_FLAG" H 6200 1280 30 0000 C CNN 1 6200 1050 1 0 0 -1 $EndComp $Comp -L VCC #PWR106 +L VCC #PWR03 U 1 1 3EBF8479 P 5900 1050 -F 0 "#PWR106" H 5900 1150 30 0001 C CNN +F 0 "#PWR03" H 5900 1150 30 0001 C CNN F 1 "VCC" H 5900 1150 30 0000 C CNN 1 5900 1050 1 0 0 -1 $EndComp $Comp -L GND #PWR101 +L GND #PWR04 U 1 1 3EBF8458 P 800 7300 -F 0 "#PWR101" H 800 7300 40 0001 C CNN +F 0 "#PWR04" H 800 7300 40 0001 C CNN F 1 "GND" H 800 7230 40 0001 C CNN 1 800 7300 1 0 0 -1 $EndComp $Comp -L PWR_FLAG #FLG101 +L PWR_FLAG #FLG05 U 1 1 3EBF843C P 800 7300 -F 0 "#FLG101" H 800 7570 30 0001 C CNN +F 0 "#FLG05" H 800 7570 30 0001 C CNN F 1 "PWR_FLAG" H 800 7530 30 0000 C CNN 1 800 7300 1 0 0 -1 @@ -179,10 +188,10 @@ Wire Wire Line Wire Wire Line 2500 2700 2200 2700 $Comp -L GND #PWR104 -U 1 1 4D52D0A5 +L GND #PWR06 +U 1 1 4D528081 P 2500 2750 -F 0 "#PWR104" H 2500 2750 40 0001 C CNN +F 0 "#PWR06" H 2500 2750 40 0001 C CNN F 1 "GND" H 2500 2680 40 0001 C CNN 1 2500 2750 1 0 0 -1 @@ -198,12 +207,12 @@ NoConn ~ 2200 1900 Wire Wire Line 10250 3500 9400 3500 Text Label 9450 3500 0 60 ~ 0 -PWR(3,3-5V) +PWR_3,3-5V $Comp -L GND #PWR114 -U 1 1 3EBF8376 +L GND #PWR07 +U 1 1 4D52808A P 10050 3600 -F 0 "#PWR114" H 10050 3600 40 0001 C CNN +F 0 "#PWR07" H 10050 3600 40 0001 C CNN F 1 "GND" H 10050 3530 40 0001 C CNN 1 10050 3600 0 1 1 0 @@ -215,14 +224,14 @@ TCK-CCLK Text Label 7550 2850 0 60 ~ 0 TDI-DIN Text Label 7550 2750 0 60 ~ 0 -TD0-DONE/P +TD0-DONE Text Label 7700 2550 0 60 ~ 0 -PWR(3,3-5V) +PWR_3,3-5V $Comp -L GND #PWR113 -U 1 1 4D52D0AF +L GND #PWR08 +U 1 1 3EBF8376 P 8500 2650 -F 0 "#PWR113" H 8500 2650 40 0001 C CNN +F 0 "#PWR08" H 8500 2650 40 0001 C CNN F 1 "GND" H 8500 2580 40 0001 C CNN 1 8500 2650 0 1 1 0 @@ -266,10 +275,10 @@ Connection ~ 6500 1050 Wire Wire Line 6500 1100 6500 1050 $Comp -L GND #PWR112 +L GND #PWR09 U 1 1 3EBF82CF P 6500 1500 -F 0 "#PWR112" H 6500 1500 40 0001 C CNN +F 0 "#PWR09" H 6500 1500 40 0001 C CNN F 1 "GND" H 6500 1430 40 0001 C CNN 1 6500 1500 1 0 0 -1 @@ -299,17 +308,17 @@ Wire Wire Line Wire Wire Line 6400 1900 5900 1900 $Comp -L GND #PWR110 -U 1 1 4D52D0AD +L GND #PWR010 +U 1 1 4D528089 P 6300 3750 -F 0 "#PWR110" H 6300 3750 40 0001 C CNN +F 0 "#PWR010" H 6300 3750 40 0001 C CNN F 1 "GND" H 6300 3680 40 0001 C CNN 1 6300 3750 1 0 0 -1 $EndComp $Comp L C C5 -U 1 1 3EBF81A7 +U 1 1 4D528086 P 6300 3550 F 0 "C5" H 6350 3650 50 0000 L CNN F 1 "100pF" H 6350 3450 50 0000 L CNN @@ -318,7 +327,7 @@ F 1 "100pF" H 6350 3450 50 0000 L CNN $EndComp $Comp L R R12 -U 1 1 4D52D0A7 +U 1 1 4D528083 P 6650 3300 F 0 "R12" V 6730 3300 50 0000 C CNN F 1 "100" V 6650 3300 50 0000 C CNN @@ -326,32 +335,23 @@ F 1 "100" V 6650 3300 50 0000 C CNN 0 1 1 0 $EndComp $Comp -L GND #PWR109 -U 1 1 4D52D0AE +L GND #PWR011 +U 1 1 4D528088 P 6300 3050 -F 0 "#PWR109" H 6300 3050 40 0001 C CNN +F 0 "#PWR011" H 6300 3050 40 0001 C CNN F 1 "GND" H 6300 2980 40 0001 C CNN 1 6300 3050 1 0 0 -1 $EndComp $Comp L C C2 -U 1 1 4D52D0AB +U 1 1 4D528085 P 6300 2850 F 0 "C2" H 6350 2950 50 0000 L CNN F 1 "100pF" H 6350 2750 50 0000 L CNN 1 6300 2850 1 0 0 -1 $EndComp -$Comp -L R R11 -U 1 1 4D52D0A8 -P 6650 2600 -F 0 "R11" V 6730 2600 50 0000 C CNN -F 1 "100" V 6650 2600 50 0000 C CNN - 1 6650 2600 - 0 1 1 0 -$EndComp Connection ~ 5900 1050 Connection ~ 6200 1050 Wire Wire Line @@ -365,26 +365,26 @@ Wire Wire Line Wire Wire Line 6200 1050 6200 1100 $Comp -L GND #PWR107 +L GND #PWR012 U 1 1 3EBF81B3 P 6200 1600 -F 0 "#PWR107" H 6200 1600 40 0001 C CNN +F 0 "#PWR012" H 6200 1600 40 0001 C CNN F 1 "GND" H 6200 1530 40 0001 C CNN 1 6200 1600 1 0 0 -1 $EndComp $Comp -L GND #PWR108 -U 1 1 3EBF81B1 +L GND #PWR013 +U 1 1 4D528087 P 6300 2350 -F 0 "#PWR108" H 6300 2350 40 0001 C CNN +F 0 "#PWR013" H 6300 2350 40 0001 C CNN F 1 "GND" H 6300 2280 40 0001 C CNN 1 6300 2350 1 0 0 -1 $EndComp $Comp L C C3 -U 1 1 4D52D0A9 +U 1 1 4D528084 P 6300 2150 F 0 "C3" H 6350 2250 50 0000 L CNN F 1 "100pF" H 6350 2050 50 0000 L CNN @@ -450,19 +450,19 @@ Wire Wire Line Wire Wire Line 2500 1700 2200 1700 $Comp -L GND #PWR103 +L GND #PWR014 U 1 1 3EBF8100 P 2500 1750 -F 0 "#PWR103" H 2500 1750 40 0001 C CNN +F 0 "#PWR014" H 2500 1750 40 0001 C CNN F 1 "GND" H 2500 1680 40 0001 C CNN 1 2500 1750 1 0 0 -1 $EndComp $Comp -L GND #PWR105 +L GND #PWR015 U 1 1 3EBF80DD P 4650 2000 -F 0 "#PWR105" H 4650 2000 40 0001 C CNN +F 0 "#PWR015" H 4650 2000 40 0001 C CNN F 1 "GND" H 4650 1930 40 0001 C CNN 1 4650 2000 1 0 0 -1 @@ -470,17 +470,17 @@ $EndComp Connection ~ 4800 3600 Connection ~ 4800 2900 Text Label 2500 1050 0 60 ~ 0 -VCC_SENSE(/ERROR) +VCC_SENSE-ERROR* Text Label 2400 3800 0 60 ~ 0 -TDI/DIN(D0) +TDI-DIN-D0 Text Label 2400 3600 0 60 ~ 0 -CLK(D1) +CLK-D1 Text Label 2400 3400 0 60 ~ 0 -TMS/PROG(D2) +TMS-PROG-D2 Text Label 2400 3200 0 60 ~ 0 -CTRL(D3) +CTRL-D3 Text Label 2400 3000 0 60 ~ 0 -TD0/PROG(D4) +TD0-PROG-D4 Wire Wire Line 2300 1050 3700 1050 Wire Wire Line @@ -516,7 +516,7 @@ Wire Wire Line Wire Wire Line 3350 2250 3700 2250 Text Label 2500 1600 0 60 ~ 0 -DONE(/SELECT) +DONE-SELECT* NoConn ~ 2150 6900 NoConn ~ 2150 6250 NoConn ~ 2150 5600 @@ -531,10 +531,10 @@ Wire Wire Line Wire Wire Line 1700 7200 1150 7200 $Comp -L GND #PWR102 +L GND #PWR016 U 1 1 3EBF7F0D P 1150 7300 -F 0 "#PWR102" H 1150 7300 40 0001 C CNN +F 0 "#PWR016" H 1150 7300 40 0001 C CNN F 1 "GND" H 1150 7230 40 0001 C CNN 1 1150 7300 1 0 0 -1 @@ -653,7 +653,7 @@ F 1 "100" V 3950 3300 50 0000 C CNN $EndComp $Comp L R R8 -U 1 1 4D52D0A4 +U 1 1 4D528080 P 3950 2900 F 0 "R8" V 4030 2900 50 0000 C CNN F 1 "100" V 3950 2900 50 0000 C CNN @@ -662,7 +662,7 @@ F 1 "100" V 3950 2900 50 0000 C CNN $EndComp $Comp L R R7 -U 1 1 4D52D0A3 +U 1 1 4D52807F P 3950 2600 F 0 "R7" V 4030 2600 50 0000 C CNN F 1 "100" V 3950 2600 50 0000 C CNN diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads-cache.lib b/demos/test_pads_inside_pads/test_pads_inside_pads-cache.lib new file mode 100644 index 0000000000..15cc8470f0 --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads-cache.lib @@ -0,0 +1,16 @@ +EESchema-LIBRARY Version 2.3 Date: 19/12/2011 12:55:30 +#encoding utf-8 +# +# CONN_1 +# +DEF ~CONN_1 P 0 30 N N 1 F N +F0 "P" 80 0 40 H V L CNN +F1 "CONN_1" 0 55 30 H I C CNN +DRAW +C 0 0 31 0 1 0 N +P 2 0 1 0 -30 0 -50 0 N +X 1 1 -150 0 100 R 60 60 1 1 P +ENDDRAW +ENDDEF +# +#End Library diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads.brd b/demos/test_pads_inside_pads/test_pads_inside_pads.brd new file mode 100644 index 0000000000..4bc241c9d2 --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads.brd @@ -0,0 +1,249 @@ +PCBNEW-BOARD Version 1 date 19/12/2011 12:56:01 + +# Created by Pcbnew(2011-12-16 BZR 3311)-testing + +$GENERAL +encoding utf-8 +LayerCount 2 +Ly 1FFF8001 +EnabledLayers 1FFF8001 +Links 12 +NoConn 0 +Di 29493 12193 43883 25650 +Ndraw 0 +Ntrack 4 +Nzone 0 +BoardThickness 630 +Nmodule 4 +Nnets 3 +$EndGENERAL + +$SHEETDESCR +Sheet A4 11700 8267 +Title "" +Date "19 dec 2011" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndSHEETDESCR + +$SETUP +InternalUnit 0.000100 INCH +Layers 2 +Layer[0] Dessous signal +Layer[15] Dessus signal +TrackWidth 80 +TrackClearence 100 +ZoneClearence 200 +TrackMinWidth 80 +DrawSegmWidth 150 +EdgeSegmWidth 150 +ViaSize 350 +ViaDrill 250 +ViaMinSize 350 +ViaMinDrill 200 +MicroViaSize 200 +MicroViaDrill 50 +MicroViasAllowed 0 +MicroViaMinSize 200 +MicroViaMinDrill 50 +TextPcbWidth 120 +TextPcbSize 600 800 +EdgeModWidth 150 +TextModSize 600 600 +TextModWidth 120 +PadSize 600 600 +PadDrill 320 +Pad2MaskClearance 100 +AuxiliaryAxisOrg 0 0 +PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions true) (excludeedgelayer true) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 0) (pscolor true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) +$EndSETUP + +$EQUIPOT +Na 0 "" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 1 "/NET1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 2 "/NET2" +St ~ +$EndEQUIPOT +$NCLASS +Name "Default" +Desc "Ceci est la Netclass par défaut" +Clearance 100 +TrackWidth 80 +ViaDia 350 +ViaDrill 250 +uViaDia 200 +uViaDrill 50 +AddNet "" +AddNet "/NET1" +AddNet "/NET2" +$EndNCLASS +$MODULE 1pin +Po 35250 17950 0 15 4EE506A9 4EE505BA ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 4EE505BA +AR /4EDF7CC5 +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "P1" +T1 0 1100 400 400 0 100 N I 21 N "CONN_1" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" R 8000 8000 0 0 0 +Dr 0 0 0 +At SMD N 00888000 +Ne 2 "/NET2" +Po 0 0 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po -3250 -3000 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po -1500 -3000 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 0 -3000 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 1500 -3000 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 3250 -3000 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 3250 -1750 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 1500 -1750 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 0 -1750 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po -1500 -1750 +$EndPAD +$PAD +Sh "1" C 600 600 0 0 0 +Dr 300 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po -3250 -1750 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 42400 17950 0 15 00200000 4EE505BC ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 4EE505BC +AR /4EDF7CC0 +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "P2" +T1 0 1100 400 400 0 100 N I 21 N "CONN_1" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 2 "/NET2" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 34300 24200 0 15 00200000 4EE505BE ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 4EE505BE +AR /4EE5056C +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "P3" +T1 0 1100 400 400 0 100 N I 21 N "CONN_1" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 1 "/NET1" +Po 0 0 +$EndPAD +$EndMODULE 1pin +$MODULE 1pin +Po 42150 24200 0 15 4EE8A1D1 4EE505C0 ~~ +Li 1pin +Cd module 1 pin (ou trou mecanique de percage) +Kw DEV +Sc 4EE505C0 +AR /4EE5056D +Op 0 0 0 +T0 0 -1200 400 400 0 100 N V 21 N "P4" +T1 0 1100 400 400 0 100 N I 21 N "CONN_1" +DC 0 0 0 -900 150 21 +$PAD +Sh "1" C 1600 1600 0 0 0 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 1 "/NET1" +Po 0 0 +Le 3000 +$EndPAD +$EndMODULE 1pin +$TRACK +Po 0 42150 24200 34300 24200 80 -1 +De 0 0 1 0 C00000 +Po 0 38500 16200 40850 16200 80 -1 +De 0 0 2 0 0 +Po 0 42400 17750 42400 17950 80 -1 +De 0 0 2 0 0 +Po 0 40850 16200 42400 17750 80 -1 +De 0 0 2 0 0 +$EndTRACK +$ZONE +$EndZONE +$EndBOARD diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads.cmp b/demos/test_pads_inside_pads/test_pads_inside_pads.cmp new file mode 100644 index 0000000000..4e0e15b801 --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads.cmp @@ -0,0 +1,31 @@ +Cmp-Mod V01 Created by CvPcb (2011-12-09 BZR 3290)-testing date = 11/12/2011 20:34:04 + +BeginCmp +TimeStamp = /4EDF7CC5; +Reference = P1; +ValeurCmp = CONN_1; +IdModule = 1pin; +EndCmp + +BeginCmp +TimeStamp = /4EDF7CC0; +Reference = P2; +ValeurCmp = CONN_1; +IdModule = 1pin; +EndCmp + +BeginCmp +TimeStamp = /4EE5056C; +Reference = P3; +ValeurCmp = CONN_1; +IdModule = 1pin; +EndCmp + +BeginCmp +TimeStamp = /4EE5056D; +Reference = P4; +ValeurCmp = CONN_1; +IdModule = 1pin; +EndCmp + +EndListe diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads.net b/demos/test_pads_inside_pads/test_pads_inside_pads.net new file mode 100644 index 0000000000..44f4da85cc --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads.net @@ -0,0 +1,25 @@ +# EESchema Netlist Version 1.1 created 19/12/2011 12:55:28 +( + ( /4EE5056D $noname P4 CONN_1 {Lib=CONN_1} + ( 1 /NET1 ) + ) + ( /4EE5056C $noname P3 CONN_1 {Lib=CONN_1} + ( 1 /NET1 ) + ) + ( /4EDF7CC5 $noname P1 CONN_1 {Lib=CONN_1} + ( 1 /NET2 ) + ) + ( /4EDF7CC0 $noname P2 CONN_1 {Lib=CONN_1} + ( 1 /NET2 ) + ) +) +* +{ Pin List by Nets +Net 1 "/NET1" "NET1" + P4 1 + P3 1 +Net 2 "/NET2" "NET2" + P1 1 + P2 1 +} +#End diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads.pro b/demos/test_pads_inside_pads/test_pads_inside_pads.pro new file mode 100644 index 0000000000..bf7aa9f8d6 --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads.pro @@ -0,0 +1,108 @@ +update=13/12/2011 11:04:14 +version=1 +last_client=pcbnew +[cvpcb] +version=1 +NetITyp=0 +NetIExt=.net +PkgIExt=.pkg +NetDir= +LibDir= +NetType=0 +[cvpcb/libraries] +EquName1=devcms +[eeschema] +version=1 +LibDir= +NetFmt=1 +HPGLSpd=20 +HPGLDm=15 +HPGLNum=1 +offX_A4=0 +offY_A4=0 +offX_A3=0 +offY_A3=0 +offX_A2=0 +offY_A2=0 +offX_A1=0 +offY_A1=0 +offX_A0=0 +offY_A0=0 +offX_A=0 +offY_A=0 +offX_B=0 +offY_B=0 +offX_C=0 +offY_C=0 +offX_D=0 +offY_D=0 +offX_E=0 +offY_E=0 +RptD_X=0 +RptD_Y=100 +RptLab=1 +SimCmd= +UseNetN=0 +LabSize=60 +[eeschema/libraries] +LibName1=power +LibName2=device +LibName3=transistors +LibName4=conn +LibName5=linear +LibName6=regul +LibName7=74xx +LibName8=cmos4000 +LibName9=adc-dac +LibName10=memory +LibName11=xilinx +LibName12=special +LibName13=microcontrollers +LibName14=dsp +LibName15=microchip +LibName16=analog_switches +LibName17=motorola +LibName18=texas +LibName19=intel +LibName20=audio +LibName21=interface +LibName22=digital-audio +LibName23=philips +LibName24=display +LibName25=cypress +LibName26=siliconi +LibName27=opto +LibName28=atmel +LibName29=contrib +LibName30=valves +[general] +version=1 +[pcbnew] +version=1 +PadDrlX=320 +PadDimH=600 +PadDimV=600 +BoardThickness=630 +TxtPcbV=800 +TxtPcbH=600 +TxtModV=600 +TxtModH=600 +TxtModW=120 +VEgarde=100 +DrawLar=150 +EdgeLar=150 +TxtLar=120 +MSegLar=150 +LastNetListRead= +[pcbnew/libraries] +LibDir= +LibName1=sockets +LibName2=connect +LibName3=discret +LibName4=pin_array +LibName5=divers +LibName6=libcms +LibName7=display +LibName8=valves +LibName9=led +LibName10=dip_sockets diff --git a/demos/test_pads_inside_pads/test_pads_inside_pads.sch b/demos/test_pads_inside_pads/test_pads_inside_pads.sch new file mode 100644 index 0000000000..fd311a106f --- /dev/null +++ b/demos/test_pads_inside_pads/test_pads_inside_pads.sch @@ -0,0 +1,90 @@ +EESchema Schematic File Version 2 date 19/12/2011 12:55:30 +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +EELAYER 25 0 +EELAYER END +$Descr A4 11700 8267 +encoding utf-8 +Sheet 1 1 +Title "" +Date "19 dec 2011" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +Wire Wire Line + 4150 1750 3750 1750 +Wire Wire Line + 4150 1450 3750 1450 +Text Label 3850 1450 0 60 ~ 0 +NET1 +$Comp +L CONN_1 P4 +U 1 1 4EE5056D +P 4300 1450 +F 0 "P4" H 4380 1450 40 0000 L CNN +F 1 "CONN_1" H 4300 1505 30 0001 C CNN + 1 4300 1450 + 1 0 0 -1 +$EndComp +$Comp +L CONN_1 P3 +U 1 1 4EE5056C +P 3600 1450 +F 0 "P3" H 3680 1450 40 0000 L CNN +F 1 "CONN_1" H 3600 1505 30 0001 C CNN + 1 3600 1450 + -1 0 0 1 +$EndComp +$Comp +L CONN_1 P1 +U 1 1 4EDF7CC5 +P 3600 1750 +F 0 "P1" H 3680 1750 40 0000 L CNN +F 1 "CONN_1" H 3600 1805 30 0001 C CNN + 1 3600 1750 + -1 0 0 1 +$EndComp +$Comp +L CONN_1 P2 +U 1 1 4EDF7CC0 +P 4300 1750 +F 0 "P2" H 4380 1750 40 0000 L CNN +F 1 "CONN_1" H 4300 1805 30 0001 C CNN + 1 4300 1750 + 1 0 0 -1 +$EndComp +Text Label 3850 1750 0 60 ~ 0 +NET2 +$EndSCHEMATC diff --git a/demos/test_xil_95108/carte_test.brd b/demos/test_xil_95108/carte_test.brd index 7827f5e36d..78dd8e7893 100644 --- a/demos/test_xil_95108/carte_test.brd +++ b/demos/test_xil_95108/carte_test.brd @@ -1,5202 +1,11634 @@ -PCBNEW-BOARD Version 1 date 7/2/2008-18:03:55 - -$GENERAL -LayerCount 2 -Ly 1FFF8001 -Links 173 -NoConn 0 -Di 29190 12925 79494 55559 -Ndraw 30 -Ntrack 757 -Nzone 0 -Nmodule 46 -Nnets 83 -$EndGENERAL - -$SHEETDESCR -Sheet A4 11700 8267 -Title "CARTE TEST XILINX XC95108" -Date "7 feb 2008" -Rev "0" -Comp "" -Comment1 "" -Comment2 "" -Comment3 "" -Comment4 "" -$EndSHEETDESCR - -$SETUP -InternalUnit 0.000100 INCH -GridSize 500 500 -UserGridSize 0.010000 0.010000 mm -ZoneGridSize 25 -Layers 2 -TrackWidth 170 -TrackWidthHistory 170 -TrackWidthHistory 250 -TrackClearence 100 -ZoneClearence 200 -DrawSegmWidth 120 -EdgeSegmWidth 120 -ViaSize 650 -ViaDrill 250 -ViaSizeHistory 450 -ViaSizeHistory 650 -MicroViaSize 200 -MicroViaDrill 80 -MicroViasAllowed 0 -TextPcbWidth 120 -TextPcbSize 600 600 -EdgeModWidth 120 -TextModSize 120 600 -TextModWidth 120 -PadSize 880 880 -PadDrill 400 -AuxiliaryAxisOrg 0 0 -$EndSETUP - -$EQUIPOT -Na 0 "" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 1 "N-000078" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 2 "MD12_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 3 "MD7_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 4 "MD6_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 5 "MD5_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 6 "MD4_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 7 "MD3_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 8 "MD2_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 9 "MD1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 10 "MD0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 11 "MA0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 12 "MA1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 13 "MA2_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 14 "GND" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 15 "MA3_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 16 "MA4_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 17 "MA5_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 18 "MA6_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 19 "MA7_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 20 "CSMEM_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 21 "MD10_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 22 "OEMEM_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 23 "MD11_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 24 "MD9_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 25 "MD8_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 26 "MD13_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 27 "R/W-A14_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 28 "VCC" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 29 "TDO_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 30 "TDI_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 31 "TCK_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 32 "TMS_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 33 "N-000003" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 34 "N-000001" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 35 "N-000009" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 36 "N-000010" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 37 "N-000011" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 38 "N-000013" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 39 "N-000014" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 40 "N-000012" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 41 "-12V" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 42 "N-000015" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 43 "+12V" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 44 "PIN_TEST0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 45 "PIN_TEST1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 46 "SW1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 47 "SW0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 48 "N-000041" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 49 "LED1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 50 "N-000040" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 51 "LED2_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 52 "N-000085" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 53 "N-000091" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 54 "N-000084" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 55 "MD14_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 56 "PAR_AUX0_X00001" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 57 "PARBUS0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 58 "PARBUS1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 59 "PARBUS2_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 60 "PARBUS3_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 61 "PARBUS4_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 62 "PARBUS5_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 63 "PARBUS6_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 64 "PARBUS7_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 65 "PAR_AUX6/ACK_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 66 "PAR_AUX5/BUSY*_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 67 "PAR_AUX4/PE_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 68 "PAR_AUX3_X00002" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 69 "PAR_AUX2_X00003" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 70 "PAR_AUX1_X00004" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 71 "PAR_AUX7/INIT_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 72 "PAR_AUX8_X00005" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 73 "N-000090" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 74 "DAT2_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 75 "DAT3_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 76 "DCLK_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 77 "DAT7_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 78 "DAT6_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 79 "DAT5_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 80 "DAT4_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 81 "DAT1_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 82 "DAT0_1" -St ~ -$EndEQUIPOT -$EQUIPOT -Na 83 "XIN/CLK_1" -St ~ -$EndEQUIPOT -$MODULE 28DIP-ELL300-600 -Po 69250 35250 2700 15 3ED1C7FD 3EC4C463 ~~ -Li 28DIP-ELL300-600 -Cd Module Dil 28 pins, pads elliptiques, e=600 mils -Kw DIL -Sc 3EC4C463 -Op 0 0 0 -T0 -5000 -1500 700 450 2700 120 N V 21 "U5" -T1 -50 1650 700 700 2700 120 N V 21 "RAM_32KO" -DS -7500 1000 -7000 1000 120 21 -DS -7000 1000 -7000 2000 120 21 -DS -7000 2000 -7500 2000 120 21 -DS -7500 500 7500 500 120 21 -DS -7500 -500 -7500 -500 120 21 -DS -7500 -500 -7000 -500 120 21 -DS -7000 -500 -7000 500 120 21 -DS -7000 500 -7500 500 120 21 -DS -7500 -2500 7500 -2500 120 21 -DS 7500 -2500 7500 2500 120 21 -DS 7500 2500 -7500 2500 120 21 -DS -7500 2500 -7500 -2500 120 21 -$PAD -Sh "1" R 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 1 "N-000078" -Po -6500 3000 -$EndPAD -$PAD -Sh "2" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "MD12_1" -Po -5500 3000 -$EndPAD -$PAD -Sh "3" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 3 "MD7_1" -Po -4500 3000 -$EndPAD -$PAD -Sh "4" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 4 "MD6_1" -Po -3500 3000 -$EndPAD -$PAD -Sh "5" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 5 "MD5_1" -Po -2500 3000 -$EndPAD -$PAD -Sh "6" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 6 "MD4_1" -Po -1500 3000 -$EndPAD -$PAD -Sh "7" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 7 "MD3_1" -Po -500 3000 -$EndPAD -$PAD -Sh "8" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 8 "MD2_1" -Po 500 3000 -$EndPAD -$PAD -Sh "9" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 9 "MD1_1" -Po 1500 3000 -$EndPAD -$PAD -Sh "10" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 10 "MD0_1" -Po 2500 3000 -$EndPAD -$PAD -Sh "11" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 11 "MA0_1" -Po 3500 3000 -$EndPAD -$PAD -Sh "12" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 12 "MA1_1" -Po 4500 3000 -$EndPAD -$PAD -Sh "13" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 13 "MA2_1" -Po 5500 3000 -$EndPAD -$PAD -Sh "14" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 6500 3000 -$EndPAD -$PAD -Sh "15" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 15 "MA3_1" -Po 6500 -3000 -$EndPAD -$PAD -Sh "16" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 16 "MA4_1" -Po 5500 -3000 -$EndPAD -$PAD -Sh "17" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 17 "MA5_1" -Po 4500 -3000 -$EndPAD -$PAD -Sh "18" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 18 "MA6_1" -Po 3500 -3000 -$EndPAD -$PAD -Sh "19" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 19 "MA7_1" -Po 2500 -3000 -$EndPAD -$PAD -Sh "20" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 20 "CSMEM_1" -Po 1500 -3000 -$EndPAD -$PAD -Sh "21" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 21 "MD10_1" -Po 500 -3000 -$EndPAD -$PAD -Sh "22" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 22 "OEMEM_1" -Po -500 -3000 -$EndPAD -$PAD -Sh "23" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 23 "MD11_1" -Po -1500 -3000 -$EndPAD -$PAD -Sh "24" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 24 "MD9_1" -Po -2500 -3000 -$EndPAD -$PAD -Sh "25" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 25 "MD8_1" -Po -3500 -3000 -$EndPAD -$PAD -Sh "26" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 26 "MD13_1" -Po -4500 -3000 -$EndPAD -$PAD -Sh "27" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 27 "R/W-A14_1" -Po -5500 -3000 -$EndPAD -$PAD -Sh "28" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -6500 -3000 -$EndPAD -$PAD -Sh "15" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 15 "MA3_1" -Po 6500 0 -$EndPAD -$PAD -Sh "16" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 16 "MA4_1" -Po 5500 0 -$EndPAD -$PAD -Sh "17" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 17 "MA5_1" -Po 4500 0 -$EndPAD -$PAD -Sh "18" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 18 "MA6_1" -Po 3500 0 -$EndPAD -$PAD -Sh "19" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 19 "MA7_1" -Po 2500 0 -$EndPAD -$PAD -Sh "20" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 20 "CSMEM_1" -Po 1500 0 -$EndPAD -$PAD -Sh "21" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 21 "MD10_1" -Po 500 0 -$EndPAD -$PAD -Sh "22" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 22 "OEMEM_1" -Po -500 0 -$EndPAD -$PAD -Sh "23" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 23 "MD11_1" -Po -1500 0 -$EndPAD -$PAD -Sh "24" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 24 "MD9_1" -Po -2500 0 -$EndPAD -$PAD -Sh "25" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 25 "MD8_1" -Po -3500 0 -$EndPAD -$PAD -Sh "26" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 26 "MD13_1" -Po -4500 0 -$EndPAD -$PAD -Sh "27" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 27 "R/W-A14_1" -Po -5500 0 -$EndPAD -$PAD -Sh "28" O 620 900 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -6500 0 -$EndPAD -$SHAPE3D -Na "dil/dil_28-w600.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE 28DIP-ELL300-600 -$MODULE MIRE -Po 37250 14250 0 15 00200000 3ECE0B80 ~~ -Li MIRE -Sc 3ECE0B80 -Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 "MIRE" -T1 1300 1100 600 600 0 80 N I 21 "*" -DC 0 0 1000 750 150 21 -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 -600 -$EndPAD -$PAD -Sh "" C 100 100 0 0 0 -Dr 20 0 0 -At STD N 00C0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$PAD -Sh "" R 900 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 600 -$EndPAD -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 600 0 -$EndPAD -$EndMODULE MIRE -$MODULE MIRE -Po 77250 14250 0 15 00200000 3ECE0B79 ~~ -Li MIRE -Sc 3ECE0B79 -Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 "MIRE" -T1 1300 1100 600 600 0 80 N I 21 "*" -DC 0 0 1000 750 150 21 -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 -600 -$EndPAD -$PAD -Sh "" C 100 100 0 0 0 -Dr 20 0 0 -At STD N 00C0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$PAD -Sh "" R 900 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 600 -$EndPAD -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 600 0 -$EndPAD -$EndMODULE MIRE -$MODULE MIRE -Po 77250 53500 0 15 00200000 3ECE0B72 ~~ -Li MIRE -Sc 3ECE0B72 -Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 "MIRE" -T1 1300 1100 600 600 0 80 N I 21 "*" -DC 0 0 1000 750 150 21 -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 -600 -$EndPAD -$PAD -Sh "" C 100 100 0 0 0 -Dr 20 0 0 -At STD N 00C0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$PAD -Sh "" R 900 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 600 -$EndPAD -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 600 0 -$EndPAD -$EndMODULE MIRE -$MODULE MIRE -Po 37250 53500 0 15 00200000 3ECE0B69 ~~ -Li MIRE -Sc 3ECE0B69 -Op 0 0 0 -T0 -50 1800 400 400 0 80 N I 21 "MIRE" -T1 1300 1100 600 600 0 80 N I 21 "*" -DC 0 0 1000 750 150 21 -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 -600 -$EndPAD -$PAD -Sh "" C 100 100 0 0 0 -Dr 20 0 0 -At STD N 00C0FFFF -Ne 0 "" -Po 0 0 -$EndPAD -$PAD -Sh "" R 900 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -600 0 -$EndPAD -$PAD -Sh "" R 100 1100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 600 -$EndPAD -$PAD -Sh "" R 1100 100 0 0 0 -Dr 0 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 600 0 -$EndPAD -$EndMODULE MIRE -$MODULE DB9F_CI_INVERT -Po 60150 53500 1800 15 3F98DDC2 3ECDEBEA ~~ -Li DB9F_CI_INVERT -Cd Connecteur DB9 male encarte -Kw CONN DB9 -Sc 3ECDEBEA -Op 0 0 0 -T0 0 0 600 600 1800 120 N V 21 "J2" -T1 0 2350 600 600 1800 120 N V 21 "DB9FEM" -DS -3350 -4750 3400 -4750 120 21 -DS 3650 -500 -3600 -500 120 21 -DS 3900 -500 3650 -500 120 21 -DS 3900 -1750 -3850 -1750 120 21 -DS 6150 -1750 3900 -1750 120 21 -DS -6100 -2250 6150 -2250 120 21 -DS 3400 -2250 3400 -4750 120 21 -DS 6150 -1750 6150 -2250 120 21 -DS 3900 -500 3900 -1750 120 21 -DS 2900 0 3650 0 120 21 -DS 3650 0 3650 -500 120 21 -DS -3350 -2250 -3350 -4750 120 21 -DS -3850 -1750 -6100 -1750 120 21 -DS -6100 -1750 -6100 -2250 120 21 -DS -3600 -500 -3850 -500 120 21 -DS -3850 -500 -3850 -1750 120 21 -DS -2850 0 -3600 0 120 21 -DS -3600 0 -3600 -500 120 21 -$PAD -Sh "2" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00400001 -Ne 29 "TDO_1" -Po 1100 1000 -$EndPAD -$PAD -Sh "3" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00400001 -Ne 30 "TDI_1" -Po 0 1000 -$EndPAD -$PAD -Sh "4" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00400001 -Ne 31 "TCK_1" -Po -1100 1000 -$EndPAD -$PAD -Sh "5" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00400001 -Ne 32 "TMS_1" -Po -2200 1000 -$EndPAD -$PAD -Sh "1" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00400001 -Ne 28 "VCC" -Po 2200 1000 -$EndPAD -$PAD -Sh "9" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00808000 -Ne 14 "GND" -Po -1650 1000 -$EndPAD -$PAD -Sh "8" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00808000 -Ne 14 "GND" -Po -550 1000 -$EndPAD -$PAD -Sh "7" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00808000 -Ne 14 "GND" -Po 550 1000 -$EndPAD -$PAD -Sh "6" R 700 2000 0 0 1800 -Dr 0 0 0 -At CONN N 00808000 -Ne 14 "GND" -Po 1650 1000 -$EndPAD -$SHAPE3D -Na "conn_DBxx/db9_female.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 -0.006000 -Ro 90.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE DB9F_CI_INVERT -$MODULE bornier3 -Po 73750 49250 2700 15 3EC0ECFA 3EC243AC ~~ -Li bornier3 -Cd Bornier d'alimentation 3 pins -Kw DEV -Sc 3EC243AC -Op 0 0 0 -T0 0 -2000 600 600 2700 120 N V 21 "P2" -T1 0 2000 600 600 2700 120 N V 21 "CONN_3" -DS -3000 1500 -3000 -1500 120 21 -DS 3000 1500 3000 -1500 120 21 -DS -3000 1000 3000 1000 120 21 -DS -3000 -1500 3000 -1500 120 21 -DS -3000 1500 3000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 33 "N-000003" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 0 0 -$EndPAD -$PAD -Sh "3" C 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 34 "N-000001" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_3.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier3 -$MODULE R4 -Po 46250 17500 2700 15 00200000 3ECDDB57 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3ECDDB57 -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R6" -T1 0 0 550 500 2700 80 N I 21 "1,1k" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 35 "N-000009" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 55000 16500 0 15 00200000 3ECDDB60 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3ECDDB60 -Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 "R7" -T1 0 0 550 500 0 80 N I 21 "1,1K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 36 "N-000010" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 37 "N-000011" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 73750 18500 900 15 00200000 3ECDDB6D ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3ECDDB6D -Op 0 A 0 -T0 0 0 550 500 900 80 N V 21 "R10" -T1 0 0 550 500 900 80 N I 21 "75" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 38 "N-000013" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 36 "N-000010" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 55000 18500 0 15 00200000 3ECDDB4B ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3ECDDB4B -Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 "R9" -T1 0 0 550 500 0 80 N I 21 "2,2K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 35 "N-000009" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 39 "N-000014" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 55000 17500 0 15 00200000 3ECDDB43 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3ECDDB43 -Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 "R8" -T1 0 0 550 500 0 80 N I 21 "2,2K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 37 "N-000011" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 40 "N-000012" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE D5 -Po 76500 39750 2700 15 00200000 3ECDDCDD ~~ -Li D5 -Cd Diode 5 pas -Kw DIODE DEV -Sc 3ECDDCDD -Op 0 0 0 -T0 0 0 600 400 2700 120 N V 21 "D4" -T1 -100 0 600 400 2700 120 N I 21 "1N4004" -DS 2500 0 2000 0 120 21 -DS 2000 0 2000 -500 120 21 -DS 2000 -500 -2000 -500 120 21 -DS -2000 -500 -2000 0 120 21 -DS -2000 0 -2500 0 120 21 -DS -2000 0 -2000 500 120 21 -DS -2000 500 2000 500 120 21 -DS 2000 500 2000 0 120 21 -DS 1500 -500 1500 500 120 21 -DS 1600 -500 1600 500 120 21 -$PAD -Sh "1" C 700 700 0 0 2700 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 41 "-12V" -Po -2500 0 -$EndPAD -$PAD -Sh "2" R 700 700 0 0 2700 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 34 "N-000001" -Po 2500 0 -$EndPAD -$SHAPE3D -Na "discret/diode.wrl" -Sc 0.500000 0.500000 0.500000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE D5 -$MODULE CP6 -Po 62750 17250 1800 15 00200000 3ECDDCAD ~~ -Li CP6 -Cd Condensateur polarise -Kw CP -Sc 3ECDDCAD -Op 0 0 0 -T0 0 0 600 600 1800 120 N V 21 "C13" -T1 250 0 600 600 1800 120 N I 21 "10uF" -DS -3000 0 -2600 0 120 21 -DS -2400 200 -2600 200 120 21 -DS -2600 200 -2600 -200 120 21 -DS -2600 -200 -2400 -200 120 21 -DS 3000 0 2600 0 120 21 -DS 2600 0 2600 -600 120 21 -DS 2600 -600 -2400 -600 120 21 -DS -2400 -600 -2400 600 120 21 -DS -2400 600 2600 600 120 21 -DS 2600 600 2600 0 120 21 -$PAD -Sh "1" R 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -3000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 41 "-12V" -Po 3000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.600000 0.600000 0.600000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP6 -$MODULE CP6 -Po 54000 19750 0 15 00200000 3ECDDACB ~~ -Li CP6 -Cd Condensateur polarise -Kw CP -Sc 3ECDDACB -Op 0 0 0 -T0 0 0 600 600 0 120 N V 21 "C14" -T1 250 0 600 600 0 120 N I 21 "10uF" -DS -3000 0 -2600 0 120 21 -DS -2400 200 -2600 200 120 21 -DS -2600 200 -2600 -200 120 21 -DS -2600 -200 -2400 -200 120 21 -DS 3000 0 2600 0 120 21 -DS 2600 0 2600 -600 120 21 -DS 2600 -600 -2400 -600 120 21 -DS -2400 -600 -2400 600 120 21 -DS -2400 600 2600 600 120 21 -DS 2600 600 2600 0 120 21 -$PAD -Sh "1" R 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 42 "N-000015" -Po -3000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 40 "N-000012" -Po 3000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.600000 0.600000 0.600000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP6 -$MODULE 8DIP-ELL300 -Po 49500 17000 0 15 00200000 3ECDDB8B ~~ -Li 8DIP-ELL300 -Cd Module Dil 8 pins, pads elliptiques -Kw DIL -Sc 3ECDDB8B -Op 0 0 0 -T0 -2500 0 700 450 900 120 N V 21 "U6" -T1 0 0 700 400 0 120 N V 21 "LM318N" -DS -2000 -500 -1500 -500 150 21 -DS -1500 -500 -1500 500 150 21 -DS -1500 500 -2000 500 150 21 -DS -2000 -1000 2000 -1000 150 21 -DS 2000 -1000 2000 1000 150 21 -DS 2000 1000 -2000 1000 150 21 -DS -2000 1000 -2000 -1000 150 21 -$PAD -Sh "1" R 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -1500 1500 -$EndPAD -$PAD -Sh "2" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 37 "N-000011" -Po -500 1500 -$EndPAD -$PAD -Sh "3" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 35 "N-000009" -Po 500 1500 -$EndPAD -$PAD -Sh "4" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 41 "-12V" -Po 1500 1500 -$EndPAD -$PAD -Sh "5" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 1500 -1500 -$EndPAD -$PAD -Sh "6" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 36 "N-000010" -Po 500 -1500 -$EndPAD -$PAD -Sh "7" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 43 "+12V" -Po -500 -1500 -$EndPAD -$PAD -Sh "8" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -1500 -1500 -$EndPAD -$SHAPE3D -Na "dil/dil_8.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE 8DIP-ELL300 -$MODULE head_2x2 -Po 44250 34500 2700 15 00200000 3ECB3F5E ~~ -Li head_2x2 -Cd Double rangee de contacts 2 x 2 pins -Kw CONN -Sc 3ECB3F5E -Op 0 0 0 -T0 160 -1620 700 600 2700 120 N V 21 "P4" -T1 160 -1620 700 600 2700 120 N I 21 "CONN_2X2" -DS -1000 -1000 1000 -1000 120 21 -DS 1000 -1000 1000 1000 120 21 -DS 1000 1000 -1000 1000 120 21 -DS -1000 1000 -1000 -1000 120 21 -$PAD -Sh "1" R 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -500 500 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 44 "PIN_TEST0_1" -Po -500 -500 -$EndPAD -$PAD -Sh "3" C 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 500 500 -$EndPAD -$PAD -Sh "4" C 600 600 0 0 2700 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 45 "PIN_TEST1_1" -Po 500 -500 -$EndPAD -$SHAPE3D -Na "pin_array/pins_array_2x2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE head_2x2 -$MODULE R4 -Po 59250 23250 900 15 00200000 3EC8B970 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3EC8B970 -Op 0 A 0 -T0 0 0 550 500 900 80 N V 21 "R4" -T1 0 0 550 500 900 80 N I 21 "4,7K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 46 "SW1_1" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 58250 23250 900 15 00200000 3EC8B978 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3EC8B978 -Op 0 A 0 -T0 0 0 550 500 900 80 N V 21 "R5" -T1 0 0 550 500 900 80 N I 21 "4,7K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 47 "SW0_1" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 45250 22750 2700 15 00200000 3EC4D082 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3EC4D082 -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R2" -T1 0 0 550 500 2700 80 N I 21 "330" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 48 "N-000041" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 49 "LED1_1" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE R4 -Po 46250 22750 2700 15 00200000 3EC4D082 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3EC4D082 -Op 0 A 0 -T0 0 0 550 500 2700 80 N V 21 "R3" -T1 0 0 550 500 2700 80 N I 21 "330" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 50 "N-000040" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 51 "LED2_1" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE LEDV -Po 43250 23750 1800 15 00200000 3EC4D08F ~~ -Li LEDV -Cd Led verticale diam 6mm -Kw LED DEV -Sc 3EC4D08F -Op 0 0 0 -T0 0 -1500 600 600 1800 120 N V 21 "D2" -T1 0 -1500 600 600 1800 120 N I 21 "LED" -DC 0 0 -1000 0 120 21 -DS 1000 -250 750 -250 120 21 -DS 750 -250 750 250 120 21 -DS 750 250 1000 250 120 21 -$PAD -Sh "1" R 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 48 "N-000041" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 500 0 -$EndPAD -$SHAPE3D -Na "discret/led5_vertical.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE LEDV -$MODULE LEDV -Po 43250 20750 1800 15 00200000 3EC4D08F ~~ -Li LEDV -Cd Led verticale diam 6mm -Kw LED DEV -Sc 3EC4D08F -Op 0 0 0 -T0 0 -1500 600 600 1800 120 N V 21 "D3" -T1 0 -1500 600 600 1800 120 N I 21 "LED" -DC 0 0 -1000 0 120 21 -DS 1000 -250 750 -250 120 21 -DS 750 -250 750 250 120 21 -DS 750 250 1000 250 120 21 -$PAD -Sh "1" R 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 50 "N-000040" -Po -500 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 500 0 -$EndPAD -$SHAPE3D -Na "discret/led5_vertical.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE LEDV -$MODULE bornier2 -Po 73750 24250 2700 15 3EC0ED69 3EC2446D ~~ -Li bornier2 -Cd Bornier d'alimentation 2 pins -Kw DEV -Sc 3EC2446D -Op 0 0 0 -T0 0 -2000 600 600 2700 120 N V 21 "P3" -T1 0 2000 600 600 2700 120 N V 21 "CONN_2" -DS 2000 1000 -2000 1000 120 21 -DS 2000 1500 2000 -1500 120 21 -DS 2000 -1500 -2000 -1500 120 21 -DS -2000 -1500 -2000 1500 120 21 -DS -2000 1500 2000 1500 120 21 -$PAD -Sh "1" R 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 38 "N-000013" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 2700 -Dr 600 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "device/bornier_2.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE bornier2 -$MODULE SM1206 -Po 51250 47750 0 0 3E15900A 3EC242AD ~~ -Li SM1206 -Sc 3EC242AD -Op 0 0 0 -At SMD -T0 0 0 300 200 2700 50 M V 20 "C5" -T1 0 0 300 200 2700 50 M I 20 "22pF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 52 "N-000085" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 54250 31250 0 0 3E15900A 3EC4C7DB ~~ -Li SM1206 -Sc 3EC4C7DB -Op 0 0 0 -At SMD -T0 0 0 300 200 2700 50 M V 20 "C8" -T1 0 0 300 200 2700 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 28 "VCC" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 55750 36250 900 0 3E15900A 3EC4C7DB ~~ -Li SM1206 -Sc 3EC4C7DB -Op 0 0 0 -At SMD -T0 0 0 300 200 3600 50 M V 20 "C10" -T1 0 0 300 200 3600 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 900 -Dr 0 0 0 -At SMD N 00440001 -Ne 28 "VCC" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 900 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 50250 33750 2700 0 3E15900A 3EC4C7DB ~~ -Li SM1206 -Sc 3EC4C7DB -Op 0 0 0 -At SMD -T0 0 0 300 200 5400 50 M V 20 "C11" -T1 0 0 300 200 5400 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 2700 -Dr 0 0 0 -At SMD N 00440001 -Ne 28 "VCC" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 2700 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 69500 27500 1800 0 3E15900A 3EC4C7DB ~~ -Li SM1206 -Sc 3EC4C7DB -Op 0 0 0 -At SMD -T0 0 0 300 200 4500 50 M V 20 "C7" -T1 0 0 300 200 4500 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 1800 -Dr 0 0 0 -At SMD N 00440001 -Ne 28 "VCC" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 1800 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 46750 44750 2700 0 3E15900A 3EC4C7DB ~~ -Li SM1206 -Sc 3EC4C7DB -Op 0 0 0 -At SMD -T0 0 0 300 200 5400 50 M V 20 "C12" -T1 0 0 300 200 5400 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 2700 -Dr 0 0 0 -At SMD N 00440001 -Ne 28 "VCC" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 2700 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 47750 24750 900 0 3E15900A 3EC23ABA ~~ -Li SM1206 -Sc 3EC23ABA -Op 0 0 0 -At SMD -T0 0 0 300 200 3600 50 M V 20 "C1" -T1 0 0 300 200 3600 50 M I 20 "100nF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 900 -Dr 0 0 0 -At SMD N 00440001 -Ne 53 "N-000091" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 900 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SM1206 -Po 51250 49750 0 0 3E15900A 3EC242AD ~~ -Li SM1206 -Sc 3EC242AD -Op 0 0 0 -At SMD -T0 0 0 300 200 2700 50 M V 20 "C4" -T1 0 0 300 200 2700 50 M I 20 "22pF" -DS -1000 450 -1000 -450 50 20 -DS -1000 -450 -350 -450 50 20 -DS 350 450 1000 450 50 20 -DS 1000 450 1000 -450 50 20 -DS 1000 -450 350 -450 50 20 -DS -350 450 -1000 450 50 20 -$PAD -Sh "1" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 54 "N-000084" -Po -650 0 -$EndPAD -$PAD -Sh "2" R 600 800 0 0 0 -Dr 0 0 0 -At SMD N 00440001 -Ne 14 "GND" -Po 650 0 -$EndPAD -$SHAPE3D -Na "smd/chip_cms.wrl" -Sc 0.170000 0.160000 0.160000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SM1206 -$MODULE SIL-3 -Po 66250 26250 1800 15 00200000 3EC4C49F ~~ -Li SIL-3 -Cd Connecteur 3 pins -Kw CONN DEV -Sc 3EC4C49F -Op 0 0 0 -T0 0 -1000 705 424 1800 120 N V 21 "K1" -T1 0 -1000 600 400 1800 120 N I 21 "CONN_3" -DS -1500 500 -1500 -500 120 21 -DS -1500 -500 1500 -500 120 21 -DS 1500 -500 1500 500 120 21 -DS 1500 500 -1500 500 120 21 -DS -500 -500 -500 500 120 21 -$PAD -Sh "1" R 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 1 "N-000078" -Po 0 0 -$EndPAD -$PAD -Sh "3" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 55 "MD14_1" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "pins_array_3x1.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SIL-3 -$MODULE R4 -Po 51250 49750 0 15 00200000 3EC242C1 ~~ -Li R4 -Cd Resitance 4 pas -Kw R -Sc 3EC242C1 -Op 0 A 0 -T0 0 0 550 500 0 80 N V 21 "R1" -T1 0 0 550 500 0 80 N I 21 "100K" -DS -2000 0 -1600 0 120 21 -DS -1600 0 -1600 -400 120 21 -DS -1600 -400 1600 -400 120 21 -DS 1600 -400 1600 400 120 21 -DS 1600 400 -1600 400 120 21 -DS -1600 400 -1600 0 120 21 -DS -1600 -200 -1400 -400 120 21 -DS 2000 0 1600 0 120 21 -$PAD -Sh "1" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 54 "N-000084" -Po -2000 0 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 52 "N-000085" -Po 2000 0 -$EndPAD -$SHAPE3D -Na "discret/resistor.wrl" -Sc 0.400000 0.400000 0.400000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE R4 -$MODULE LM78XX -Po 61250 47250 0 15 00200000 3EC2436D ~~ -Li LM78XX -Cd Regulateur TO220 serie LM78xx -Kw TR TO220 -Sc 3EC2436D -Op 0 0 0 -T0 3000 0 600 400 900 80 N V 21 "U3" -T1 4200 50 600 400 900 80 N V 21 "LM7805" -DS 0 -1000 2000 -1000 120 21 -DS 0 0 2000 0 120 21 -DS 0 1000 2000 1000 120 21 -DS 2000 -1500 2000 2000 120 21 -DS 2000 2000 8000 2000 120 21 -DS 8000 2000 8000 -2000 120 21 -DS 2000 -1500 2000 -2000 120 21 -DS 5000 1500 5000 -2000 120 21 -DS 5000 1500 5000 2000 120 21 -DS 2000 -2000 8000 -2000 120 21 -$PAD -Sh "4" R 3500 3500 0 0 0 -Dr 1200 0 0 -At STD N 00F0FFFF -Ne 0 "" -Po 6500 0 -$EndPAD -$PAD -Sh "VI" C 700 700 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 43 "+12V" -Po 0 -1000 -$EndPAD -$PAD -Sh "GND" R 700 700 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 0 0 -$EndPAD -$PAD -Sh "VO" C 700 700 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po 0 1000 -$EndPAD -$SHAPE3D -Na "discret/to220_horiz.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE LM78XX -$MODULE HC-18UH -Po 47750 48750 2700 15 00200000 3EC2428D ~~ -Li HC-18UH -Cd Quartz boitier HC-18 horizontal -Kw QUARTZ DEV -Sc 3EC2428D -Op 0 0 0 -T0 0 2500 600 600 2700 120 N V 21 "X1" -T1 0 4500 600 600 2700 120 N V 21 "10MHz" -DS 2500 1100 -2500 1100 120 21 -DS 2300 1100 2300 6000 120 21 -DS -2500 1100 -2500 800 120 21 -DS 2500 1100 2500 800 120 21 -DS 2500 800 -2500 800 120 21 -DS -1000 0 -1000 800 120 21 -DS 1000 0 1000 800 120 21 -DS -2300 1100 -2300 6000 120 21 -DS 2300 6000 2100 6200 120 21 -DS 2100 6200 -2100 6200 120 21 -DS -2100 6200 -2300 6000 120 21 -$PAD -Sh "1" C 700 700 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 52 "N-000085" -Po -1000 0 -$EndPAD -$PAD -Sh "2" C 700 700 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 54 "N-000084" -Po 1000 0 -$EndPAD -$SHAPE3D -Na "discret/crystal_hc18u_horizontal.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE HC-18UH -$MODULE DB25FC -Po 39750 34750 900 15 00200000 3EC4C60F ~~ -Li DB25FC -Cd Connecteur DB25 femelle couche -Kw CONN DB25 -Sc 3EC4C60F -Op 0 0 0 -T0 0 -6000 600 600 900 120 N V 21 "J1" -T1 0 -2500 600 600 900 120 N V 21 "DB25" -DS 10500 -4500 10500 1000 120 21 -DS 7500 -2500 7500 1000 120 21 -DS 8250 -4500 8250 -2500 120 21 -DS -8250 -4500 -8250 -2500 120 21 -DS -7500 -2500 -7500 1000 120 21 -DS -10500 1000 -10500 -4500 120 21 -DS 10500 -2500 7500 -2500 120 21 -DS -10500 -2500 -7500 -2500 120 21 -DS 8000 -3250 8000 -4500 120 21 -DS -8000 -3250 -8000 -4500 120 21 -DS 8000 -7250 8000 -5000 120 21 -DS -8000 -7250 -8000 -5000 120 21 -DS 10500 -4500 10500 -5000 120 21 -DS 10500 -5000 -10500 -5000 120 21 -DS -10500 -5000 -10500 -4500 120 21 -DS -10500 -4500 10500 -4500 120 21 -DS 7500 1000 10500 1000 120 21 -DS -8000 -3250 8000 -3250 120 21 -DS -8000 -7250 8000 -7250 120 21 -DS -10500 1000 -7500 1000 120 21 -$PAD -Sh "" C 1500 1500 0 0 900 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 9250 -500 -$EndPAD -$PAD -Sh "" C 1500 1500 0 0 900 -Dr 1200 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -9250 -500 -$EndPAD -$PAD -Sh "1" R 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 56 "PAR_AUX0_X00001" -Po -6500 500 -$EndPAD -$PAD -Sh "2" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 57 "PARBUS0_1" -Po -5400 500 -$EndPAD -$PAD -Sh "3" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 58 "PARBUS1_1" -Po -4350 500 -$EndPAD -$PAD -Sh "4" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 59 "PARBUS2_1" -Po -3250 500 -$EndPAD -$PAD -Sh "5" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 60 "PARBUS3_1" -Po -2150 500 -$EndPAD -$PAD -Sh "6" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 61 "PARBUS4_1" -Po -1050 500 -$EndPAD -$PAD -Sh "7" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 62 "PARBUS5_1" -Po 0 500 -$EndPAD -$PAD -Sh "8" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 63 "PARBUS6_1" -Po 1100 500 -$EndPAD -$PAD -Sh "9" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 64 "PARBUS7_1" -Po 2200 500 -$EndPAD -$PAD -Sh "10" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 65 "PAR_AUX6/ACK_1" -Po 3300 500 -$EndPAD -$PAD -Sh "11" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 66 "PAR_AUX5/BUSY*_1" -Po 4350 500 -$EndPAD -$PAD -Sh "12" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 67 "PAR_AUX4/PE_1" -Po 5450 500 -$EndPAD -$PAD -Sh "13" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 68 "PAR_AUX3_X00002" -Po 6550 500 -$EndPAD -$PAD -Sh "14" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 69 "PAR_AUX2_X00003" -Po -5880 -500 -$EndPAD -$PAD -Sh "15" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 70 "PAR_AUX1_X00004" -Po -4880 -500 -$EndPAD -$PAD -Sh "16" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 71 "PAR_AUX7/INIT_1" -Po -3780 -500 -$EndPAD -$PAD -Sh "17" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 72 "PAR_AUX8_X00005" -Po -2700 -500 -$EndPAD -$PAD -Sh "18" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -1620 -500 -$EndPAD -$PAD -Sh "19" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -520 -500 -$EndPAD -$PAD -Sh "20" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 560 -500 -$EndPAD -$PAD -Sh "21" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 1640 -500 -$EndPAD -$PAD -Sh "22" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2760 -500 -$EndPAD -$PAD -Sh "23" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 3820 -500 -$EndPAD -$PAD -Sh "24" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 4900 -500 -$EndPAD -$PAD -Sh "25" C 600 600 0 0 900 -Dr 400 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 6000 -500 -$EndPAD -$SHAPE3D -Na "conn_DBxx/db25_female_pin90deg.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE DB25FC -$MODULE D5 -Po 73250 44250 1800 15 00200000 3EC243C8 ~~ -Li D5 -Cd Diode 5 pas -Kw DIODE DEV -Sc 3EC243C8 -Op 0 0 0 -T0 0 0 600 400 1800 120 N V 21 "D1" -T1 -100 0 600 400 1800 120 N I 21 "1N4004" -DS 2500 0 2000 0 120 21 -DS 2000 0 2000 -500 120 21 -DS 2000 -500 -2000 -500 120 21 -DS -2000 -500 -2000 0 120 21 -DS -2000 0 -2500 0 120 21 -DS -2000 0 -2000 500 120 21 -DS -2000 500 2000 500 120 21 -DS 2000 500 2000 0 120 21 -DS 1500 -500 1500 500 120 21 -DS 1600 -500 1600 500 120 21 -$PAD -Sh "1" C 700 700 0 0 1800 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 33 "N-000003" -Po -2500 0 -$EndPAD -$PAD -Sh "2" R 700 700 0 0 1800 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 43 "+12V" -Po 2500 0 -$EndPAD -$SHAPE3D -Na "discret/diode.wrl" -Sc 0.500000 0.500000 0.500000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE D5 -$MODULE CP6 -Po 54000 21250 0 15 00200000 3EC23B98 ~~ -Li CP6 -Cd Condensateur polarise -Kw CP -Sc 3EC23B98 -Op 0 0 0 -T0 0 0 600 600 0 120 N V 21 "C2" -T1 250 0 600 600 0 120 N I 21 "10uF" -DS -3000 0 -2600 0 120 21 -DS -2400 200 -2600 200 120 21 -DS -2600 200 -2600 -200 120 21 -DS -2600 -200 -2400 -200 120 21 -DS 3000 0 2600 0 120 21 -DS 2600 0 2600 -600 120 21 -DS 2600 -600 -2400 -600 120 21 -DS -2400 -600 -2400 600 120 21 -DS -2400 600 2600 600 120 21 -DS 2600 600 2600 0 120 21 -$PAD -Sh "1" R 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 73 "N-000090" -Po -3000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 39 "N-000014" -Po 3000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.600000 0.600000 0.600000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP6 -$MODULE CP6 -Po 61500 42000 1800 15 00200000 3EC243D6 ~~ -Li CP6 -Cd Condensateur polarise -Kw CP -Sc 3EC243D6 -Op 0 0 0 -T0 0 0 600 600 1800 120 N V 21 "C6" -T1 250 0 600 600 1800 120 N I 21 "47uF" -DS -3000 0 -2600 0 120 21 -DS -2400 200 -2600 200 120 21 -DS -2600 200 -2600 -200 120 21 -DS -2600 -200 -2400 -200 120 21 -DS 3000 0 2600 0 120 21 -DS 2600 0 2600 -600 120 21 -DS 2600 -600 -2400 -600 120 21 -DS -2400 -600 -2400 600 120 21 -DS -2400 600 2600 600 120 21 -DS 2600 600 2600 0 120 21 -$PAD -Sh "1" R 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 43 "+12V" -Po -3000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 1800 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 3000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.600000 0.600000 0.600000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP6 -$MODULE CP6 -Po 74250 35000 2700 15 00200000 3EC23DCD ~~ -Li CP6 -Cd Condensateur polarise -Kw CP -Sc 3EC23DCD -Op 0 0 0 -T0 0 0 600 600 2700 120 N V 21 "C3" -T1 250 0 600 600 2700 120 N I 21 "10uF" -DS -3000 0 -2600 0 120 21 -DS -2400 200 -2600 200 120 21 -DS -2600 200 -2600 -200 120 21 -DS -2600 -200 -2400 -200 120 21 -DS 3000 0 2600 0 120 21 -DS 2600 0 2600 -600 120 21 -DS 2600 -600 -2400 -600 120 21 -DS -2400 -600 -2400 600 120 21 -DS -2400 600 2600 600 120 21 -DS 2600 600 2600 0 120 21 -$PAD -Sh "1" R 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -3000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 2700 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 3000 0 -$EndPAD -$SHAPE3D -Na "discret/c_pol.wrl" -Sc 0.600000 0.600000 0.600000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE CP6 -$MODULE 16DIP-ELL300 -Po 52250 24250 0 15 00200000 3EC238E5 ~~ -Li 16DIP-ELL300 -Cd Module Dil 16 pins, pads elliptiques -Kw DIL -Sc 3EC238E5 -Op 0 0 0 -T0 -2500 -500 600 450 0 120 N V 21 "U1" -T1 500 500 600 450 0 120 N V 21 "TDA8702" -DS -4500 -500 -4500 -500 150 21 -DS -4500 -500 -4000 -500 150 21 -DS -4000 -500 -4000 500 150 21 -DS -4000 500 -4500 500 150 21 -DS -4500 -1000 4500 -1000 150 21 -DS 4500 -1000 4500 1000 150 21 -DS 4500 1000 -4500 1000 150 21 -DS -4500 1000 -4500 -1000 150 21 -$PAD -Sh "1" R 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 53 "N-000091" -Po -3500 1500 -$EndPAD -$PAD -Sh "2" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -2500 1500 -$EndPAD -$PAD -Sh "3" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 74 "DAT2_1" -Po -1500 1500 -$EndPAD -$PAD -Sh "4" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 75 "DAT3_1" -Po -500 1500 -$EndPAD -$PAD -Sh "5" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 76 "DCLK_1" -Po 500 1500 -$EndPAD -$PAD -Sh "6" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 1500 1500 -$EndPAD -$PAD -Sh "7" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 77 "DAT7_1" -Po 2500 1500 -$EndPAD -$PAD -Sh "8" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 78 "DAT6_1" -Po 3500 1500 -$EndPAD -$PAD -Sh "9" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 79 "DAT5_1" -Po 3500 -1500 -$EndPAD -$PAD -Sh "10" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 80 "DAT4_1" -Po 2500 -1500 -$EndPAD -$PAD -Sh "11" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 81 "DAT1_1" -Po 1500 -1500 -$EndPAD -$PAD -Sh "12" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 82 "DAT0_1" -Po 500 -1500 -$EndPAD -$PAD -Sh "13" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -500 -1500 -$EndPAD -$PAD -Sh "14" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 73 "N-000090" -Po -1500 -1500 -$EndPAD -$PAD -Sh "15" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 42 "N-000015" -Po -2500 -1500 -$EndPAD -$PAD -Sh "16" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -3500 -1500 -$EndPAD -$SHAPE3D -Na "dil/dil_16.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE 16DIP-ELL300 -$MODULE 14DIP-ELL300 -Po 51750 44750 0 15 00200000 3EC4C318 ~~ -Li 14DIP-ELL300 -Cd Module Dil 14 pins, pads elliptiques -Kw DIL -Sc 3EC4C318 -Op 0 0 0 -T0 -2000 -500 600 450 0 120 N V 21 "U4" -T1 500 500 600 450 0 120 N V 21 "74HC04" -DS -4000 -1000 4000 -1000 150 21 -DS 4000 1000 -4000 1000 150 21 -DS -4000 1000 -4000 -1000 150 21 -DS -4000 -500 -3500 -500 150 21 -DS -3500 -500 -3500 500 150 21 -DS -3500 500 -4000 500 150 21 -DS 4000 -1000 4000 1000 150 21 -$PAD -Sh "1" R 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 52 "N-000085" -Po -3000 1500 -$EndPAD -$PAD -Sh "2" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 54 "N-000084" -Po -2000 1500 -$EndPAD -$PAD -Sh "3" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 54 "N-000084" -Po -1000 1500 -$EndPAD -$PAD -Sh "4" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 83 "XIN/CLK_1" -Po 0 1500 -$EndPAD -$PAD -Sh "5" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 1000 1500 -$EndPAD -$PAD -Sh "6" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 2000 1500 -$EndPAD -$PAD -Sh "7" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 3000 1500 -$EndPAD -$PAD -Sh "8" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 3000 -1500 -$EndPAD -$PAD -Sh "9" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 -1500 -$EndPAD -$PAD -Sh "10" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 1000 -1500 -$EndPAD -$PAD -Sh "11" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 0 -1500 -$EndPAD -$PAD -Sh "12" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -1000 -1500 -$EndPAD -$PAD -Sh "13" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -2000 -1500 -$EndPAD -$PAD -Sh "14" O 620 900 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -3000 -1500 -$EndPAD -$SHAPE3D -Na "dil/dil_14.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE 14DIP-ELL300 -$MODULE PLCC84 -Po 53250 34250 0 15 00200000 3EC230AD ~~ -Li PLCC84 -Cd Support Plcc 84 pins, pads ronds -Kw PLCC -Sc 3EC230AD -Op 0 0 0 -T0 0 -1000 1314 767 0 120 N V 21 "U2" -T1 0 1500 1144 668 0 120 N V 21 "XC95108PC84" -DS -4000 2500 -3000 4000 150 21 -DS -3000 4000 4000 4000 150 21 -DS 4000 4000 4000 -4000 150 21 -DS 4000 -4000 -4000 -4000 150 21 -DS -6500 -6500 -6500 6500 150 21 -DS -6500 6500 6500 6500 150 21 -DS 6500 6500 6500 -6500 150 21 -DS 6500 -6500 -6500 -6500 150 21 -DS -4000 -4000 -4000 2500 150 21 -$PAD -Sh "1" R 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 44 "PIN_TEST0_1" -Po -6000 0 -$EndPAD -$PAD -Sh "2" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 45 "PIN_TEST1_1" -Po -5000 0 -$EndPAD -$PAD -Sh "3" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 60 "PARBUS3_1" -Po -6000 1000 -$EndPAD -$PAD -Sh "4" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 72 "PAR_AUX8_X00005" -Po -5000 1000 -$EndPAD -$PAD -Sh "5" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 59 "PARBUS2_1" -Po -6000 2000 -$EndPAD -$PAD -Sh "6" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 71 "PAR_AUX7/INIT_1" -Po -5000 2000 -$EndPAD -$PAD -Sh "7" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 58 "PARBUS1_1" -Po -6000 3000 -$EndPAD -$PAD -Sh "8" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -5000 3000 -$EndPAD -$PAD -Sh "9" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 70 "PAR_AUX1_X00004" -Po -6000 4000 -$EndPAD -$PAD -Sh "10" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 57 "PARBUS0_1" -Po -5000 4000 -$EndPAD -$PAD -Sh "11" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 69 "PAR_AUX2_X00003" -Po -6000 5000 -$EndPAD -$PAD -Sh "12" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 83 "XIN/CLK_1" -Po -5000 6000 -$EndPAD -$PAD -Sh "13" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 56 "PAR_AUX0_X00001" -Po -5000 5000 -$EndPAD -$PAD -Sh "14" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -4000 6000 -$EndPAD -$PAD -Sh "15" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -4000 5000 -$EndPAD -$PAD -Sh "16" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po -3000 6000 -$EndPAD -$PAD -Sh "17" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -3000 5000 -$EndPAD -$PAD -Sh "18" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -2000 6000 -$EndPAD -$PAD -Sh "19" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -2000 5000 -$EndPAD -$PAD -Sh "20" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -1000 6000 -$EndPAD -$PAD -Sh "21" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po -1000 5000 -$EndPAD -$PAD -Sh "22" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po 0 6000 -$EndPAD -$PAD -Sh "23" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 5000 -$EndPAD -$PAD -Sh "24" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 16 "MA4_1" -Po 1000 6000 -$EndPAD -$PAD -Sh "25" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 15 "MA3_1" -Po 1000 5000 -$EndPAD -$PAD -Sh "26" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 13 "MA2_1" -Po 2000 6000 -$EndPAD -$PAD -Sh "27" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 5000 -$EndPAD -$PAD -Sh "28" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 30 "TDI_1" -Po 3000 6000 -$EndPAD -$PAD -Sh "29" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 32 "TMS_1" -Po 3000 5000 -$EndPAD -$PAD -Sh "30" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 31 "TCK_1" -Po 4000 6000 -$EndPAD -$PAD -Sh "31" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 17 "MA5_1" -Po 4000 5000 -$EndPAD -$PAD -Sh "32" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 12 "MA1_1" -Po 5000 6000 -$EndPAD -$PAD -Sh "33" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 11 "MA0_1" -Po 6000 5000 -$EndPAD -$PAD -Sh "34" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 18 "MA6_1" -Po 5000 5000 -$EndPAD -$PAD -Sh "35" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 10 "MD0_1" -Po 6000 4000 -$EndPAD -$PAD -Sh "36" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 19 "MA7_1" -Po 5000 4000 -$EndPAD -$PAD -Sh "37" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 9 "MD1_1" -Po 6000 3000 -$EndPAD -$PAD -Sh "38" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po 5000 3000 -$EndPAD -$PAD -Sh "39" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 20 "CSMEM_1" -Po 6000 2000 -$EndPAD -$PAD -Sh "40" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 8 "MD2_1" -Po 5000 2000 -$EndPAD -$PAD -Sh "41" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 21 "MD10_1" -Po 6000 1000 -$EndPAD -$PAD -Sh "42" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 5000 1000 -$EndPAD -$PAD -Sh "43" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 22 "OEMEM_1" -Po 6000 0 -$EndPAD -$PAD -Sh "44" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 7 "MD3_1" -Po 5000 0 -$EndPAD -$PAD -Sh "45" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 23 "MD11_1" -Po 6000 -1000 -$EndPAD -$PAD -Sh "46" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 6 "MD4_1" -Po 5000 -1000 -$EndPAD -$PAD -Sh "47" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 24 "MD9_1" -Po 6000 -2000 -$EndPAD -$PAD -Sh "48" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 5 "MD5_1" -Po 5000 -2000 -$EndPAD -$PAD -Sh "49" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 6000 -3000 -$EndPAD -$PAD -Sh "50" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 4 "MD6_1" -Po 5000 -3000 -$EndPAD -$PAD -Sh "51" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 25 "MD8_1" -Po 6000 -4000 -$EndPAD -$PAD -Sh "52" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 3 "MD7_1" -Po 5000 -4000 -$EndPAD -$PAD -Sh "53" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 26 "MD13_1" -Po 6000 -5000 -$EndPAD -$PAD -Sh "54" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 27 "R/W-A14_1" -Po 5000 -6000 -$EndPAD -$PAD -Sh "55" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 2 "MD12_1" -Po 5000 -5000 -$EndPAD -$PAD -Sh "56" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 55 "MD14_1" -Po 4000 -6000 -$EndPAD -$PAD -Sh "57" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 4000 -5000 -$EndPAD -$PAD -Sh "58" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 78 "DAT6_1" -Po 3000 -6000 -$EndPAD -$PAD -Sh "59" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 29 "TDO_1" -Po 3000 -5000 -$EndPAD -$PAD -Sh "60" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 -6000 -$EndPAD -$PAD -Sh "61" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 79 "DAT5_1" -Po 2000 -5000 -$EndPAD -$PAD -Sh "62" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 77 "DAT7_1" -Po 1000 -6000 -$EndPAD -$PAD -Sh "63" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 80 "DAT4_1" -Po 1000 -5000 -$EndPAD -$PAD -Sh "64" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po 0 -6000 -$EndPAD -$PAD -Sh "65" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 0 "" -Po 0 -5000 -$EndPAD -$PAD -Sh "66" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 81 "DAT1_1" -Po -1000 -6000 -$EndPAD -$PAD -Sh "67" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 76 "DCLK_1" -Po -1000 -5000 -$EndPAD -$PAD -Sh "68" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 75 "DAT3_1" -Po -2000 -6000 -$EndPAD -$PAD -Sh "69" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 82 "DAT0_1" -Po -2000 -5000 -$EndPAD -$PAD -Sh "70" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 74 "DAT2_1" -Po -3000 -6000 -$EndPAD -$PAD -Sh "71" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 46 "SW1_1" -Po -3000 -5000 -$EndPAD -$PAD -Sh "72" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 47 "SW0_1" -Po -4000 -6000 -$EndPAD -$PAD -Sh "73" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -4000 -5000 -$EndPAD -$PAD -Sh "74" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 51 "LED2_1" -Po -5000 -6000 -$EndPAD -$PAD -Sh "75" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 68 "PAR_AUX3_X00002" -Po -6000 -5000 -$EndPAD -$PAD -Sh "76" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 49 "LED1_1" -Po -5000 -5000 -$EndPAD -$PAD -Sh "77" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 67 "PAR_AUX4/PE_1" -Po -6000 -4000 -$EndPAD -$PAD -Sh "78" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 28 "VCC" -Po -5000 -4000 -$EndPAD -$PAD -Sh "79" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 65 "PAR_AUX6/ACK_1" -Po -6000 -3000 -$EndPAD -$PAD -Sh "80" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 66 "PAR_AUX5/BUSY*_1" -Po -5000 -3000 -$EndPAD -$PAD -Sh "81" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 63 "PARBUS6_1" -Po -6000 -2000 -$EndPAD -$PAD -Sh "82" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 64 "PARBUS7_1" -Po -5000 -2000 -$EndPAD -$PAD -Sh "83" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 62 "PARBUS5_1" -Po -6000 -1000 -$EndPAD -$PAD -Sh "84" C 550 550 0 0 0 -Dr 320 0 0 -At STD N 00E0FFFF -Ne 61 "PARBUS4_1" -Po -5000 -1000 -$EndPAD -$SHAPE3D -Na "support/supp_plcc84.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE PLCC84 -$MODULE SW_PUSH -Po 68250 21250 0 15 3F9504DA 3EC8B882 ~~ -Li SW_PUSH -Cd Bouton poussoir -Kw SWITCH DEV -Sc 3EC8B882 -Op 0 A 0 -T0 500 -2000 500 500 0 100 N V 21 "SW2" -T1 0 0 500 500 0 100 N V 21 "SW_PUSH" -DS 2500 -2250 2500 2250 80 21 -DS 2500 2250 2250 2500 80 21 -DS 2250 2500 -2250 2500 80 21 -DS -2250 2500 -2500 2250 80 21 -DS -2500 2250 -2500 -2250 80 21 -DS -2250 -2500 2250 -2500 80 21 -DS 2250 -2500 2500 -2250 80 21 -DS -2500 -2250 -2250 -2500 80 21 -$PAD -Sh "1" C 1000 1000 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 46 "SW1_1" -Po -2000 -1000 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 1000 -$EndPAD -$SHAPE3D -Na "device/switch_push.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SW_PUSH -$MODULE SW_PUSH -Po 62750 21250 0 15 3F9504DA 3EC8B876 ~~ -Li SW_PUSH -Cd Bouton poussoir -Kw SWITCH DEV -Sc 3EC8B876 -Op 0 A 0 -T0 500 -2000 500 500 0 100 N V 21 "SW1" -T1 0 0 500 500 0 100 N V 21 "SW_PUSH" -DS 2500 -2250 2500 2250 80 21 -DS 2500 2250 2250 2500 80 21 -DS 2250 2500 -2250 2500 80 21 -DS -2250 2500 -2500 2250 80 21 -DS -2500 2250 -2500 -2250 80 21 -DS -2250 -2500 2250 -2500 80 21 -DS 2250 -2500 2500 -2250 80 21 -DS -2500 -2250 -2250 -2500 80 21 -$PAD -Sh "1" C 1000 1000 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 47 "SW0_1" -Po -2000 -1000 -$EndPAD -$PAD -Sh "2" C 1000 1000 0 0 0 -Dr 450 0 0 -At STD N 00E0FFFF -Ne 14 "GND" -Po 2000 1000 -$EndPAD -$SHAPE3D -Na "device/switch_push.wrl" -Sc 1.000000 1.000000 1.000000 -Of 0.000000 0.000000 0.000000 -Ro 0.000000 0.000000 0.000000 -$EndSHAPE3D -$EndMODULE SW_PUSH -$TEXTPCB -Te "ROM" -Po 69500 26500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "XILINX XC95108PC84" -Po 44750 52750 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "CARTE TEST" -Po 42250 51750 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$DRAWSEGMENT -Po 0 63250 53500 75750 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 37250 53500 57000 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 37250 14250 37250 18250 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 77250 14250 37250 14250 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 77250 14750 77250 14250 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 77250 53500 76750 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 77250 14750 77250 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 75750 53500 76750 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 37250 52750 37250 53500 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$TEXTPCB -Te "XILINX XC95108" -Po 42750 52750 600 600 120 0 -De 0 0 0 0 -$EndTEXTPCB -$DRAWSEGMENT -Po 0 37250 52250 37250 52750 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$TEXTPCB -Te "PIN2" -Po 44500 36500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "PIN1" -Po 44500 32500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "TMS" -Po 63250 51500 600 600 120 900 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "TCK" -Po 61500 50000 600 600 120 900 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "TDI" -Po 60250 50000 600 500 120 900 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "TDO" -Po 59000 49250 600 600 120 900 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "GND" -Po 56250 51750 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "VCC" -Po 57000 50750 600 600 120 900 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "CARTE TEST" -Po 41250 51750 600 600 120 0 -De 0 0 0 0 -$EndTEXTPCB -$TEXTPCB -Te "VOUT" -Po 73750 21500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "GND" -Po 73750 27000 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "+12V" -Po 71000 46750 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "GND" -Po 70750 49500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$TEXTPCB -Te "RAM" -Po 63500 26500 600 600 120 0 -De 15 1 0 0 -$EndTEXTPCB -$DRAWSEGMENT -Po 0 37250 18250 37250 21250 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$DRAWSEGMENT -Po 0 37250 21250 37250 52250 120 -De 28 0 900 0 0 -$EndDRAWSEGMENT -$TRACK -Po 0 66250 26250 66250 28750 170 -1 -De 0 0 1 0 C00 -Po 0 58750 28750 62250 28750 170 -1 -De 0 0 2 0 0 -Po 0 62250 28750 63250 29750 170 -1 -De 0 0 2 0 0 -Po 0 63250 29750 66250 29750 170 -1 -De 0 0 2 0 400 -Po 0 58250 29250 58750 28750 170 -1 -De 0 0 2 0 800 -Po 0 58750 29750 58250 30250 170 -1 -De 0 0 3 0 400 -Po 0 61750 29750 58750 29750 170 -1 -De 0 0 3 0 0 -Po 0 62750 30750 61750 29750 170 -1 -De 0 0 3 0 0 -Po 0 66250 30750 62750 30750 170 -1 -De 0 0 3 0 800 -Po 0 58250 31250 58750 31750 170 -1 -De 0 0 4 0 800 -Po 0 58750 31750 66250 31750 170 -1 -De 0 0 4 0 400 -Po 0 66250 32750 58750 32750 170 -1 -De 0 0 5 0 800 -Po 0 58750 32750 58250 32250 170 -1 -De 0 0 5 0 400 -Po 0 58750 33750 58250 33250 170 -1 -De 0 0 6 0 400 -Po 0 66250 33750 58750 33750 170 -1 -De 0 0 6 0 800 -Po 0 58250 34250 58750 34750 170 -1 -De 0 0 7 0 800 -Po 0 58750 34750 66250 34750 170 -1 -De 0 0 7 0 400 -Po 0 58250 36250 58750 35750 170 -1 -De 0 0 8 0 800 -Po 0 58750 35750 66250 35750 170 -1 -De 0 0 8 0 400 -Po 0 59750 36750 66250 36750 170 -1 -De 0 0 9 0 400 -Po 0 59250 37250 59750 36750 170 -1 -De 0 0 9 0 800 -Po 0 59250 38250 62750 38250 170 -1 -De 0 0 10 0 800 -Po 0 63250 37750 66250 37750 170 -1 -De 0 0 10 0 400 -Po 0 62750 38250 63250 37750 170 -1 -De 0 0 10 0 0 -Po 0 59250 39250 63750 39250 170 -1 -De 0 0 11 0 800 -Po 0 63750 39250 64250 38750 170 -1 -De 0 0 11 0 0 -Po 0 64250 38750 66250 38750 170 -1 -De 0 0 11 0 400 -Po 0 58250 40250 63750 40250 170 -1 -De 0 0 12 0 800 -Po 0 63750 40250 64250 39750 170 -1 -De 0 0 12 0 0 -Po 0 64250 39750 66250 39750 170 -1 -De 0 0 12 0 400 -Po 0 55500 41250 55500 41500 170 -1 -De 0 0 13 0 0 -Po 0 55500 41500 59500 41500 170 -1 -De 15 0 13 0 0 -Po 3 55500 41500 55500 41500 650 -1 -De 15 1 13 0 0 -Po 0 55250 41000 55500 41250 170 -1 -De 0 0 13 0 0 -Po 0 55250 40250 55250 41000 170 -1 -De 0 0 13 0 800 -Po 0 59500 41500 63750 41500 170 -1 -De 15 0 13 0 0 -Po 0 63750 41500 64500 40750 170 -1 -De 15 0 13 0 0 -Po 0 64500 40750 66250 40750 170 -1 -De 15 0 13 0 400 -Po 0 64250 49750 61750 47250 400 -1 -De 0 0 14 0 0 -Po 0 72250 49250 73750 49250 400 -1 -De 0 0 14 0 400 -Po 0 59500 45000 59750 45250 400 -1 -De 0 0 14 0 0 -Po 0 58500 44000 59500 45000 400 -1 -De 0 0 14 0 0 -Po 0 58500 42000 58500 44000 400 -1 -De 0 0 14 0 800 -Po 0 52750 46250 52750 45750 400 -1 -De 0 0 14 0 800 -Po 0 52750 45750 53250 45250 400 -1 -De 0 0 14 0 0 -Po 0 54750 45750 54750 46250 400 -1 -De 0 0 14 0 400 -Po 0 54250 45250 54750 45750 400 -1 -De 0 0 14 0 0 -Po 0 53250 45250 54250 45250 400 -1 -De 0 0 14 0 0 -Po 0 51900 47750 52500 47750 400 -1 -De 0 0 14 0 800 -Po 0 52750 47500 52750 46250 400 -1 -De 0 0 14 0 400 -Po 0 52500 47750 52750 47500 400 -1 -De 0 0 14 0 0 -Po 0 51900 49750 51900 47750 400 -1 -De 0 0 14 0 C00 -Po 0 55250 39250 54750 39750 400 -1 -De 0 0 14 0 800 -Po 0 54750 39750 54750 42250 170 -1 -De 0 0 14 0 0 -Po 0 51750 43250 51750 44000 400 -1 -De 0 0 14 0 800 -Po 0 51750 44000 52000 44250 400 -1 -De 0 0 14 0 0 -Po 0 52000 44250 52250 44250 400 -1 -De 0 0 14 0 0 -Po 0 53750 44000 53750 43250 400 -1 -De 0 0 14 0 400 -Po 0 53500 44250 53750 44000 400 -1 -De 0 0 14 0 0 -Po 0 52250 44250 53250 44250 400 -1 -De 0 0 14 0 0 -Po 0 53250 44250 53500 44250 400 -1 -De 0 0 14 0 0 -Po 0 53250 44250 53250 45250 400 -1 -De 0 0 14 0 0 -Po 0 49750 44650 49750 44250 400 -1 -De 0 0 14 0 0 -Po 0 49750 44250 49750 43250 400 -1 -De 0 0 14 0 400 -Po 0 47250 44900 49500 44900 250 -1 -De 0 0 14 0 0 -Po 0 49500 44900 49750 44650 250 -1 -De 0 0 14 0 0 -Po 0 50250 34400 50250 37000 400 -1 -De 0 0 14 0 800 -Po 0 50250 37000 50000 37250 400 -1 -De 0 0 14 0 0 -Po 0 50000 37250 49750 37250 400 -1 -De 0 0 14 0 0 -Po 0 49750 37250 48250 37250 400 -1 -De 0 0 14 0 400 -Po 0 39250 34190 38500 34190 400 -1 -De 0 0 14 0 800 -Po 0 38500 28750 39250 28750 400 -1 -De 0 0 14 0 400 -Po 0 38250 29000 38500 28750 400 -1 -De 0 0 14 0 0 -Po 0 38250 33940 38250 34000 400 -1 -De 0 0 14 0 0 -Po 0 38250 34000 38250 33000 400 -1 -De 0 0 14 0 0 -Po 0 38250 33000 38250 32000 400 -1 -De 0 0 14 0 0 -Po 0 38250 32000 38250 31000 400 -1 -De 0 0 14 0 0 -Po 0 38250 31000 38250 30000 400 -1 -De 0 0 14 0 0 -Po 0 38250 30000 38250 29000 400 -1 -De 0 0 14 0 0 -Po 0 38500 34190 38250 33940 400 -1 -De 0 0 14 0 0 -Po 0 46750 45400 47250 44900 400 -1 -De 0 0 14 0 800 -Po 0 50250 40250 50250 41250 400 -1 -De 0 0 14 0 800 -Po 0 49750 41750 49750 43250 400 -1 -De 0 0 14 0 400 -Po 0 50250 41250 49750 41750 400 -1 -De 0 0 14 0 0 -Po 0 49750 44250 52250 44250 400 -1 -De 0 0 14 0 0 -Po 0 54900 31250 54900 30250 400 -1 -De 0 0 14 0 800 -Po 0 54750 28750 55250 28250 400 -1 -De 0 0 14 0 400 -Po 0 54750 30250 54750 28750 170 -1 -De 0 0 14 0 0 -Po 0 54900 30250 54750 30250 400 -1 -De 0 0 14 0 0 -Po 0 47750 24100 48750 24100 400 -1 -De 0 0 14 0 800 -Po 0 49750 25100 49750 25750 400 -1 -De 0 0 14 0 400 -Po 0 48750 24100 49750 25100 400 -1 -De 0 0 14 0 0 -Po 0 64750 22250 67500 22250 400 -1 -De 0 0 14 0 800 -Po 0 67500 22250 70250 22250 400 -1 -De 0 0 14 0 400 -Po 0 70250 22250 70250 25250 400 -1 -De 0 0 14 0 800 -Po 0 70250 25250 70250 25750 400 -1 -De 0 0 14 0 0 -Po 0 61750 52500 61800 52500 400 -1 -De 15 0 14 0 400 -Po 0 65750 17250 67500 19000 400 -1 -De 0 0 14 0 800 -Po 0 73750 25250 70250 25250 400 -1 -De 0 0 14 0 800 -Po 0 55750 30750 58750 30750 170 -1 -De 0 0 14 0 0 -Po 0 42750 20750 42750 19500 400 -1 -De 0 0 14 0 800 -Po 0 42750 19500 43000 19250 400 -1 -De 0 0 14 0 0 -Po 0 55400 30750 55750 30750 400 -1 -De 0 0 14 0 0 -Po 0 39250 28750 39250 27750 400 -1 -De 0 0 14 0 800 -Po 0 42750 24250 42750 23750 400 -1 -De 0 0 14 0 400 -Po 0 39250 27750 42750 24250 400 -1 -De 0 0 14 0 0 -Po 0 55750 35250 55750 30750 400 -1 -De 0 0 14 0 0 -Po 0 49750 39750 49750 37250 170 -1 -De 0 0 14 0 0 -Po 0 74750 38000 74250 38000 400 -1 -De 0 0 14 0 400 -Po 0 75250 28750 75250 37750 400 -1 -De 0 0 14 0 0 -Po 0 74750 28250 75250 28750 400 -1 -De 0 0 14 0 0 -Po 0 74500 25250 73750 25250 400 -1 -De 0 0 14 0 400 -Po 0 74750 25500 74500 25250 400 -1 -De 0 0 14 0 0 -Po 0 74750 28250 74750 25500 400 -1 -De 0 0 14 0 0 -Po 0 53750 43250 54750 42250 250 -1 -De 0 0 14 0 800 -Po 0 52250 26750 52500 27000 400 -1 -De 15 0 14 0 0 -Po 0 53500 27000 53750 26750 400 -1 -De 0 0 14 0 0 -Po 3 53500 27000 53500 27000 650 -1 -De 15 1 14 0 0 -Po 0 52500 27000 53500 27000 400 -1 -De 15 0 14 0 0 -Po 0 55750 35600 55750 35250 400 -1 -De 0 0 14 0 800 -Po 0 49750 26750 52250 26750 400 -1 -De 15 0 14 0 0 -Po 0 53750 25750 53750 24250 250 -1 -De 0 0 14 0 800 -Po 0 64750 23000 64750 22250 400 -1 -De 0 0 14 0 400 -Po 0 64500 23250 64750 23000 400 -1 -De 0 0 14 0 0 -Po 0 58000 23250 64500 23250 400 -1 -De 0 0 14 0 0 -Po 0 56750 22000 58000 23250 400 -1 -De 0 0 14 0 0 -Po 0 54500 22000 56750 22000 250 -1 -De 0 0 14 0 0 -Po 0 54250 22250 54500 22000 250 -1 -De 0 0 14 0 0 -Po 0 54250 23750 54250 22250 170 -1 -De 0 0 14 0 0 -Po 0 53750 24250 54250 23750 250 -1 -De 0 0 14 0 0 -Po 0 49750 26750 49750 25750 400 -1 -De 0 0 14 0 400 -Po 3 49750 26750 49750 26750 650 -1 -De 15 1 14 0 0 -Po 0 53500 27000 56000 27000 400 -1 -De 15 0 14 0 0 -Po 0 57000 26000 59750 26000 400 -1 -De 15 0 14 0 0 -Po 0 56000 27000 57000 26000 400 -1 -De 15 0 14 0 0 -Po 0 59750 26000 61000 24750 400 -1 -De 15 0 14 0 0 -Po 0 61000 24750 61500 24750 400 -1 -De 15 0 14 0 0 -Po 0 69250 25750 70250 25750 400 -1 -De 0 0 14 0 0 -Po 0 61500 24750 68250 24750 400 -1 -De 15 0 14 0 0 -Po 0 68250 24750 69250 25750 400 -1 -De 15 0 14 0 0 -Po 3 69250 25750 69250 25750 650 -1 -De 15 1 14 0 0 -Po 0 59250 31250 60500 31250 400 -1 -De 0 0 14 0 800 -Po 0 61500 31000 61500 24750 400 -1 -De 15 0 14 0 0 -Po 3 61500 31000 61500 31000 650 -1 -De 15 1 14 0 0 -Po 0 60500 31250 60750 31000 400 -1 -De 0 0 14 0 0 -Po 0 60750 31000 61500 31000 400 -1 -De 0 0 14 0 0 -Po 0 39250 29850 38250 29850 400 -1 -De 0 0 14 0 800 -Po 0 38250 29850 38250 30000 400 -1 -De 0 0 14 0 0 -Po 0 39250 30930 38250 30930 400 -1 -De 0 0 14 0 800 -Po 0 38250 30930 38250 31000 400 -1 -De 0 0 14 0 0 -Po 0 39250 31990 38250 31990 400 -1 -De 0 0 14 0 800 -Po 0 38250 31990 38250 32000 400 -1 -De 0 0 14 0 0 -Po 0 39250 33110 38250 33110 400 -1 -De 0 0 14 0 800 -Po 0 38250 33110 38250 33000 400 -1 -De 0 0 14 0 0 -Po 0 38250 34000 38250 35250 400 -1 -De 0 0 14 0 0 -Po 0 38250 35250 38250 36000 400 -1 -De 0 0 14 0 0 -Po 0 39250 36250 39250 36370 400 -1 -De 0 0 14 0 400 -Po 0 38500 36250 39250 36250 400 -1 -De 0 0 14 0 0 -Po 0 38250 36000 38500 36250 400 -1 -De 0 0 14 0 0 -Po 0 39250 35270 38250 35270 400 -1 -De 0 0 14 0 800 -Po 0 38250 35270 38250 35250 400 -1 -De 0 0 14 0 0 -Po 0 43750 35000 43750 34000 400 -1 -De 0 0 14 0 C00 -Po 0 39250 36370 41250 36370 250 -1 -De 0 0 14 0 800 -Po 0 42620 35000 43750 35000 400 -1 -De 0 0 14 0 400 -Po 0 41250 36370 42620 35000 400 -1 -De 0 0 14 0 0 -Po 0 75250 37750 75000 38000 400 -1 -De 0 0 14 0 0 -Po 0 58750 30750 59250 31250 400 -1 -De 0 0 14 0 400 -Po 0 74750 42750 74750 38000 400 -1 -De 0 0 14 0 0 -Po 0 67500 19000 67500 22250 400 -1 -De 0 0 14 0 0 -Po 0 43000 19250 46000 19250 400 -1 -De 0 0 14 0 0 -Po 0 46000 19250 46250 19500 400 -1 -De 0 0 14 0 400 -Po 0 46250 19500 47750 21000 400 -1 -De 0 0 14 0 800 -Po 0 47750 21000 47750 24100 400 -1 -De 0 0 14 0 400 -Po 0 42750 23750 42750 20750 400 -1 -De 0 0 14 0 C00 -Po 0 75000 38000 74750 38000 400 -1 -De 0 0 14 0 0 -Po 0 57750 52500 55500 52500 400 -1 -De 15 0 14 0 0 -Po 0 58500 52500 57750 52500 400 -1 -De 15 0 14 0 800 -Po 3 55500 52500 55500 52500 650 -1 -De 15 1 14 0 0 -Po 0 55500 52500 55500 50000 400 -1 -De 0 0 14 0 0 -Po 0 55500 50000 54750 49250 400 -1 -De 0 0 14 0 0 -Po 0 54750 49250 54750 46250 400 -1 -De 0 0 14 0 400 -Po 0 54750 46250 58000 46250 400 -1 -De 15 0 14 0 800 -Po 0 59000 47250 61250 47250 400 -1 -De 15 0 14 0 400 -Po 0 58000 46250 59000 47250 400 -1 -De 15 0 14 0 0 -Po 0 58500 52500 59500 52500 400 -1 -De 15 0 14 0 800 -Po 0 59500 52500 59600 52500 400 -1 -De 15 0 14 0 400 -Po 0 59600 52500 60750 52500 400 -1 -De 15 0 14 0 800 -Po 0 60750 52500 60700 52500 400 -1 -De 15 0 14 0 400 -Po 0 60700 52500 61750 52500 400 -1 -De 15 0 14 0 800 -Po 0 68850 27500 68850 26250 400 -1 -De 0 0 14 0 800 -Po 0 69250 25850 69250 25750 400 -1 -De 0 0 14 0 0 -Po 0 68850 26250 69250 25850 400 -1 -De 0 0 14 0 0 -Po 0 58500 42000 61000 42000 400 -1 -De 0 0 14 0 800 -Po 0 65750 41750 66250 41750 400 -1 -De 0 0 14 0 400 -Po 0 65000 41000 65750 41750 400 -1 -De 0 0 14 0 0 -Po 0 64750 41000 65000 41000 400 -1 -De 0 0 14 0 0 -Po 0 62000 41000 64750 41000 400 -1 -De 0 0 14 0 0 -Po 0 61000 42000 62000 41000 400 -1 -De 0 0 14 0 0 -Po 0 61250 47250 60500 47250 400 -1 -De 0 0 14 0 800 -Po 0 59750 46500 59750 45250 400 -1 -De 0 0 14 0 0 -Po 0 60500 47250 59750 46500 400 -1 -De 0 0 14 0 0 -Po 0 72250 45250 72250 49250 250 -1 -De 0 0 14 0 0 -Po 0 74750 42750 72250 45250 400 -1 -De 0 0 14 0 0 -Po 0 72250 45250 72250 49250 400 -1 -De 0 0 14 0 0 -Po 0 53750 26750 53750 25750 400 -1 -De 0 0 14 0 400 -Po 0 70750 49250 72250 49250 400 -1 -De 0 0 14 0 0 -Po 0 50250 40250 49750 39750 400 -1 -De 0 0 14 0 800 -Po 0 70250 49750 70750 49250 400 -1 -De 0 0 14 0 0 -Po 0 58250 35250 55750 35250 400 -1 -De 0 0 14 0 800 -Po 0 64250 49750 70250 49750 400 -1 -De 0 0 14 0 0 -Po 0 54900 31250 55400 30750 400 -1 -De 0 0 14 0 800 -Po 0 61250 47250 61750 47250 400 -1 -De 0 0 14 0 800 -Po 0 54000 42500 53750 42250 170 -1 -De 15 0 15 0 0 -Po 0 53750 39750 54250 39250 170 -1 -De 0 0 15 0 400 -Po 0 53750 42250 53250 42250 170 -1 -De 15 0 15 0 0 -Po 0 69250 41750 72250 41750 170 -1 -De 0 0 15 0 C00 -Po 0 55250 42500 54000 42500 170 -1 -De 15 0 15 0 0 -Po 0 53250 41250 53750 40750 170 -1 -De 0 0 15 0 0 -Po 0 53750 40750 53750 39750 170 -1 -De 0 0 15 0 0 -Po 0 72250 42750 72250 41750 170 -1 -De 15 0 15 0 400 -Po 0 55250 42500 55750 43000 170 -1 -De 15 0 15 0 0 -Po 0 55750 43000 72000 43000 170 -1 -De 15 0 15 0 0 -Po 3 53250 42250 53250 42250 650 -1 -De 15 1 15 0 0 -Po 0 72000 43000 72250 42750 170 -1 -De 15 0 15 0 0 -Po 0 53250 42250 53250 41250 170 -1 -De 0 0 15 0 0 -Po 0 72250 40750 69250 40750 170 -1 -De 0 0 16 0 C00 -Po 0 54000 41750 54500 41750 170 -1 -De 15 0 16 0 0 -Po 0 56500 42250 55500 42250 170 -1 -De 15 0 16 0 0 -Po 0 54250 41000 54250 40250 170 -1 -De 0 0 16 0 400 -Po 0 69750 42500 56750 42500 170 -1 -De 15 0 16 0 0 -Po 0 54500 41750 54750 42000 170 -1 -De 15 0 16 0 0 -Po 0 56750 42500 56500 42250 170 -1 -De 15 0 16 0 0 -Po 0 71500 40750 69750 42500 170 -1 -De 15 0 16 0 0 -Po 0 54000 41250 54000 41750 170 -1 -De 0 0 16 0 0 -Po 0 72250 40750 71500 40750 170 -1 -De 15 0 16 0 800 -Po 3 54000 41750 54000 41750 650 -1 -De 15 1 16 0 0 -Po 0 54750 42000 55250 42000 170 -1 -De 15 0 16 0 0 -Po 0 54250 41000 54000 41250 170 -1 -De 0 0 16 0 0 -Po 0 55250 42000 55500 42250 170 -1 -De 15 0 16 0 0 -Po 0 63750 39750 64250 39250 170 -1 -De 0 0 17 0 0 -Po 0 69250 39750 68500 39750 170 -1 -De 0 0 17 0 800 -Po 0 64250 39250 68000 39250 170 -1 -De 0 0 17 0 0 -Po 0 71250 39750 69250 39750 170 -1 -De 0 0 17 0 400 -Po 0 71250 39750 72250 39750 170 -1 -De 0 0 17 0 400 -Po 0 57250 39250 57750 39750 170 -1 -De 0 0 17 0 800 -Po 0 68500 39750 68000 39250 170 -1 -De 0 0 17 0 0 -Po 0 57750 39750 63750 39750 170 -1 -De 0 0 17 0 0 -Po 0 69250 38750 68250 38750 170 -1 -De 0 0 18 0 800 -Po 0 71250 38750 69250 38750 170 -1 -De 0 0 18 0 400 -Po 0 71250 38750 72250 38750 170 -1 -De 0 0 18 0 400 -Po 0 63750 38750 64250 38250 170 -1 -De 0 0 18 0 0 -Po 0 64250 38250 67750 38250 170 -1 -De 0 0 18 0 0 -Po 0 58750 38750 63750 38750 170 -1 -De 0 0 18 0 0 -Po 0 68250 38750 67750 38250 170 -1 -De 0 0 18 0 0 -Po 0 58250 39250 58750 38750 170 -1 -De 0 0 18 0 800 -Po 0 68000 37250 67750 37250 170 -1 -De 0 0 19 0 0 -Po 0 69250 37750 68500 37750 170 -1 -De 0 0 19 0 800 -Po 0 68500 37750 68000 37250 170 -1 -De 0 0 19 0 0 -Po 0 58250 38250 58750 37750 170 -1 -De 0 0 19 0 800 -Po 0 62750 37250 67750 37250 170 -1 -De 0 0 19 0 0 -Po 0 58750 37750 62250 37750 170 -1 -De 0 0 19 0 0 -Po 0 62250 37750 62750 37250 170 -1 -De 0 0 19 0 0 -Po 0 71250 37750 69250 37750 170 -1 -De 0 0 19 0 400 -Po 0 71250 37750 72250 37750 170 -1 -De 0 0 19 0 400 -Po 0 68250 36750 67750 36250 170 -1 -De 0 0 20 0 0 -Po 0 71250 36750 72250 36750 170 -1 -De 0 0 20 0 400 -Po 0 69250 36750 68250 36750 170 -1 -De 0 0 20 0 800 -Po 0 59250 36250 67750 36250 170 -1 -De 0 0 20 0 800 -Po 0 71250 36750 69250 36750 170 -1 -De 0 0 20 0 400 -Po 0 59250 35250 68000 35250 170 -1 -De 0 0 21 0 800 -Po 0 71250 35750 72250 35750 170 -1 -De 0 0 21 0 400 -Po 0 71250 35750 69250 35750 170 -1 -De 0 0 21 0 400 -Po 0 69250 35750 68500 35750 170 -1 -De 0 0 21 0 800 -Po 0 68500 35750 68000 35250 170 -1 -De 0 0 21 0 0 -Po 0 69250 34750 68500 34750 170 -1 -De 0 0 22 0 800 -Po 0 59250 34250 68000 34250 170 -1 -De 0 0 22 0 800 -Po 0 71250 34750 72250 34750 170 -1 -De 0 0 22 0 400 -Po 0 68500 34750 68000 34250 170 -1 -De 0 0 22 0 0 -Po 0 71250 34750 69250 34750 170 -1 -De 0 0 22 0 400 -Po 0 68500 33750 68000 33250 170 -1 -De 0 0 23 0 0 -Po 0 71250 33750 72250 33750 170 -1 -De 0 0 23 0 400 -Po 0 69250 33750 71250 33750 170 -1 -De 0 0 23 0 800 -Po 0 59250 33250 68000 33250 170 -1 -De 0 0 23 0 800 -Po 0 69250 33750 68500 33750 170 -1 -De 0 0 23 0 800 -Po 0 69250 32750 71250 32750 170 -1 -De 0 0 24 0 800 -Po 0 71250 32750 72250 32750 170 -1 -De 0 0 24 0 400 -Po 0 69250 32750 68500 32750 170 -1 -De 0 0 24 0 800 -Po 0 59250 32250 68000 32250 170 -1 -De 0 0 24 0 800 -Po 0 68500 32750 68000 32250 170 -1 -De 0 0 24 0 0 -Po 0 62750 31250 68000 31250 170 -1 -De 0 0 25 0 0 -Po 0 68500 31750 68000 31250 170 -1 -De 0 0 25 0 0 -Po 0 61750 30250 62750 31250 170 -1 -De 0 0 25 0 0 -Po 0 69250 31750 68500 31750 170 -1 -De 0 0 25 0 800 -Po 0 71250 31750 72250 31750 170 -1 -De 0 0 25 0 400 -Po 0 69250 31750 71250 31750 170 -1 -De 0 0 25 0 800 -Po 0 59250 30250 61750 30250 170 -1 -De 0 0 25 0 800 -Po 0 63250 30250 67250 30250 170 -1 -De 0 0 26 0 0 -Po 0 62250 29250 59250 29250 170 -1 -De 0 0 26 0 400 -Po 0 67250 30250 67750 30750 170 -1 -De 0 0 26 0 0 -Po 0 62250 29250 63250 30250 170 -1 -De 0 0 26 0 0 -Po 0 69250 30750 72250 30750 170 -1 -De 0 0 26 0 C00 -Po 0 69250 30750 67750 30750 170 -1 -De 0 0 26 0 800 -Po 0 69250 29750 67750 29750 170 -1 -De 0 0 27 0 800 -Po 0 67250 29250 63750 29250 170 -1 -De 0 0 27 0 0 -Po 0 62750 28250 58250 28250 170 -1 -De 0 0 27 0 400 -Po 0 67250 29250 67750 29750 170 -1 -De 0 0 27 0 0 -Po 0 63750 29250 62750 28250 170 -1 -De 0 0 27 0 0 -Po 0 69250 29750 72250 29750 170 -1 -De 0 0 27 0 C00 -Po 0 49250 24000 56500 24000 400 -1 -De 15 0 28 0 0 -Po 0 48750 22750 48750 23500 400 -1 -De 15 0 28 0 800 -Po 0 70250 28750 72250 28750 400 -1 -De 0 0 28 0 400 -Po 0 69250 28750 70250 28750 400 -1 -De 0 0 28 0 800 -Po 0 56000 48350 56000 48250 400 -1 -De 15 0 28 0 0 -Po 3 56000 48350 56000 48350 650 -1 -De 15 1 28 0 0 -Po 0 57900 50250 56000 48350 400 -1 -De 0 0 28 0 0 -Po 0 57950 52500 57950 51000 400 -1 -De 0 0 28 0 800 -Po 0 57950 51000 57900 51000 400 -1 -De 0 0 28 0 0 -Po 0 57900 51000 57900 50250 400 -1 -De 0 0 28 0 0 -Po 0 55750 36900 56100 37250 400 -1 -De 0 0 28 0 800 -Po 0 51750 23500 51750 22750 400 -1 -De 0 0 28 0 400 -Po 0 52750 39750 52750 37000 170 -1 -De 0 0 28 0 0 -Po 0 72250 28750 74000 28750 400 -1 -De 0 0 28 0 800 -Po 0 74000 28750 74250 29000 400 -1 -De 0 0 28 0 0 -Po 0 71750 45500 71000 45500 400 -1 -De 15 0 28 0 0 -Po 0 61250 48250 63750 48250 400 -1 -De 15 0 28 0 800 -Po 0 63750 48250 65500 50000 400 -1 -De 15 0 28 0 0 -Po 0 65500 50000 70250 50000 400 -1 -De 15 0 28 0 0 -Po 0 68250 28750 69250 28750 400 -1 -De 0 0 28 0 400 -Po 0 70150 27500 70150 28750 400 -1 -De 0 0 28 0 800 -Po 0 74750 32000 74250 32000 400 -1 -De 15 0 28 0 400 -Po 0 67250 27750 68250 28750 400 -1 -De 0 0 28 0 0 -Po 0 70500 46000 71000 45500 400 -1 -De 15 0 28 0 0 -Po 0 61250 48250 56000 48250 400 -1 -De 15 0 28 0 800 -Po 0 56000 48250 48750 48250 400 -1 -De 15 0 28 0 0 -Po 0 47000 42250 48750 42250 400 -1 -De 15 0 28 0 0 -Po 0 48750 48250 48250 48750 400 -1 -De 15 0 28 0 0 -Po 0 67000 25250 67250 25500 400 -1 -De 0 0 28 0 0 -Po 0 48250 48750 47000 48750 400 -1 -De 15 0 28 0 0 -Po 0 46750 48500 46750 42500 400 -1 -De 15 0 28 0 0 -Po 0 56100 37250 58250 37250 400 -1 -De 0 0 28 0 400 -Po 0 46750 44100 48500 44100 400 -1 -De 0 0 28 0 800 -Po 0 48750 43850 48750 43250 400 -1 -De 0 0 28 0 400 -Po 0 48500 44100 48750 43850 400 -1 -De 0 0 28 0 0 -Po 0 55750 36750 55750 36900 400 -1 -De 0 0 28 0 400 -Po 0 54250 36750 55750 36750 400 -1 -De 0 0 28 0 0 -Po 0 52750 28750 52750 31000 170 -1 -De 0 0 28 0 0 -Po 0 48750 22750 48750 23500 400 -1 -De 0 0 28 0 800 -Po 0 67250 26250 67250 27750 400 -1 -De 0 0 28 0 800 -Po 0 70150 28750 70250 28750 400 -1 -De 0 0 28 0 0 -Po 0 50250 33250 50250 33100 400 -1 -De 0 0 28 0 400 -Po 0 48750 23500 49250 24000 400 -1 -De 15 0 28 0 0 -Po 0 48750 42250 51750 42250 400 -1 -De 15 0 28 0 0 -Po 0 69250 28750 69100 28750 400 -1 -De 0 0 28 0 800 -Po 0 57750 25250 58250 25250 400 -1 -De 15 0 28 0 400 -Po 0 75250 41250 75250 32500 400 -1 -De 15 0 28 0 0 -Po 0 75250 41250 75250 42000 400 -1 -De 15 0 28 0 0 -Po 0 53600 31250 53600 33000 400 -1 -De 0 0 28 0 800 -Po 0 70250 50000 70500 49750 400 -1 -De 15 0 28 0 0 -Po 0 48750 23500 49000 23750 250 -1 -De 0 0 28 0 0 -Po 0 56500 24000 57750 25250 400 -1 -De 15 0 28 0 0 -Po 0 53600 33000 53350 33250 400 -1 -De 0 0 28 0 0 -Po 0 52750 33250 50250 33250 400 -1 -De 0 0 28 0 0 -Po 0 53350 33250 52750 33250 400 -1 -De 0 0 28 0 0 -Po 0 51500 23750 51750 23500 400 -1 -De 0 0 28 0 0 -Po 0 49000 23750 51500 23750 250 -1 -De 0 0 28 0 0 -Po 0 49250 30250 49250 31250 400 -1 -De 0 0 28 0 0 -Po 0 50250 32250 50250 33250 400 -1 -De 0 0 28 0 0 -Po 0 49250 31250 50250 32250 400 -1 -De 0 0 28 0 0 -Po 0 52750 33250 52750 35000 400 -1 -De 0 0 28 0 0 -Po 0 54250 35500 54250 36750 400 -1 -De 0 0 28 0 0 -Po 0 54000 35250 54250 35500 400 -1 -De 0 0 28 0 0 -Po 0 53000 35250 54000 35250 400 -1 -De 0 0 28 0 0 -Po 0 52750 35000 53000 35250 400 -1 -De 0 0 28 0 0 -Po 0 53250 28250 52750 28750 400 -1 -De 0 0 28 0 800 -Po 0 47000 48750 46750 48500 400 -1 -De 15 0 28 0 0 -Po 0 74250 29000 74250 32000 400 -1 -De 0 0 28 0 400 -Po 0 48250 30250 49250 30250 400 -1 -De 0 0 28 0 800 -Po 0 48750 43250 48750 42250 400 -1 -De 0 0 28 0 800 -Po 3 48750 42250 48750 42250 650 -1 -De 15 1 28 0 0 -Po 0 51750 42250 52250 41750 400 -1 -De 15 0 28 0 0 -Po 0 52250 41250 52250 41750 400 -1 -De 0 0 28 0 0 -Po 3 52250 41750 52250 41750 650 -1 -De 15 1 28 0 0 -Po 0 53250 40250 52250 41250 400 -1 -De 0 0 28 0 800 -Po 0 49250 29250 49250 30250 400 -1 -De 0 0 28 0 800 -Po 0 70500 49750 70500 46000 400 -1 -De 15 0 28 0 0 -Po 0 75250 42000 71750 45500 400 -1 -De 15 0 28 0 0 -Po 0 53250 40250 52750 39750 400 -1 -De 0 0 28 0 800 -Po 0 53000 36750 54250 36750 400 -1 -De 0 0 28 0 0 -Po 0 52750 37000 53000 36750 400 -1 -De 0 0 28 0 0 -Po 0 75250 32500 74750 32000 400 -1 -De 15 0 28 0 0 -Po 0 58250 25250 59250 25250 400 -1 -De 0 0 28 0 C00 -Po 0 59250 25250 67000 25250 400 -1 -De 0 0 28 0 800 -Po 0 67250 25500 67250 26250 400 -1 -De 0 0 28 0 400 -Po 0 52750 31000 53000 31250 400 -1 -De 0 0 28 0 0 -Po 0 53000 31250 53600 31250 400 -1 -De 0 0 28 0 400 -Po 0 46750 42500 47000 42250 400 -1 -De 15 0 28 0 0 -Po 0 59050 51250 59000 51250 170 -1 -De 0 0 29 0 0 -Po 0 60000 26000 60750 26000 170 -1 -De 0 0 29 0 0 -Po 0 56750 26500 57000 26250 170 -1 -De 0 0 29 0 0 -Po 0 57000 26250 59750 26250 170 -1 -De 0 0 29 0 0 -Po 0 56750 28750 56250 29250 170 -1 -De 0 0 29 0 400 -Po 0 60750 40250 60000 41000 170 -1 -De 15 0 29 0 0 -Po 0 59050 52500 59050 51250 170 -1 -De 0 0 29 0 800 -Po 0 59000 50500 59000 51250 170 -1 -De 0 0 29 0 0 -Po 3 59000 50500 59000 50500 650 -1 -De 15 1 29 0 0 -Po 0 57250 50500 59000 50500 170 -1 -De 15 0 29 0 0 -Po 0 60000 41000 56000 41000 170 -1 -De 15 0 29 0 0 -Po 0 56000 41000 55900 40900 170 -1 -De 15 0 29 0 0 -Po 0 55900 40900 55050 40900 170 -1 -De 15 0 29 0 0 -Po 0 56750 51000 57250 50500 170 -1 -De 15 0 29 0 0 -Po 0 55050 40900 54950 41000 170 -1 -De 15 0 29 0 0 -Po 0 54950 41000 47500 41000 170 -1 -De 15 0 29 0 0 -Po 0 47500 41000 45750 42750 170 -1 -De 15 0 29 0 0 -Po 0 56750 26500 56750 28750 170 -1 -De 0 0 29 0 0 -Po 0 45750 42750 45750 50250 170 -1 -De 15 0 29 0 0 -Po 0 45750 50250 46500 51000 170 -1 -De 15 0 29 0 0 -Po 0 46500 51000 56750 51000 170 -1 -De 15 0 29 0 0 -Po 0 60750 40250 60750 26000 170 -1 -De 15 0 29 0 0 -Po 3 60750 26000 60750 26000 650 -1 -De 15 1 29 0 0 -Po 0 59750 26250 60000 26000 170 -1 -De 0 0 29 0 0 -Po 0 60150 51250 60000 51250 170 -1 -De 0 0 30 0 0 -Po 0 59750 48250 59750 50750 170 -1 -De 0 0 30 0 0 -Po 0 56750 45250 59750 48250 170 -1 -De 0 0 30 0 0 -Po 0 56250 40250 56750 40750 170 -1 -De 0 0 30 0 800 -Po 0 56750 40750 56750 45250 170 -1 -De 0 0 30 0 0 -Po 0 60150 52500 60150 51250 170 -1 -De 0 0 30 0 800 -Po 0 59750 50750 60000 51000 170 -1 -De 0 0 30 0 0 -Po 0 60000 51000 60000 51250 170 -1 -De 0 0 30 0 0 -Po 0 61000 49500 61000 51000 170 -1 -De 0 0 31 0 0 -Po 0 60250 48750 61000 49500 170 -1 -De 0 0 31 0 0 -Po 0 60250 48250 60250 48500 170 -1 -De 0 0 31 0 0 -Po 0 60250 48500 60250 48750 170 -1 -De 0 0 31 0 0 -Po 0 57250 44750 57250 40250 170 -1 -De 0 0 31 0 400 -Po 0 60250 47750 60250 48250 170 -1 -De 0 0 31 0 0 -Po 0 61250 51250 61250 52500 170 -1 -De 0 0 31 0 400 -Po 0 61000 51000 61250 51250 170 -1 -De 0 0 31 0 0 -Po 0 60250 47750 57250 44750 170 -1 -De 0 0 31 0 0 -Po 0 56250 47000 58000 48750 170 -1 -De 0 0 32 0 0 -Po 0 56250 47000 56250 41250 170 -1 -De 0 0 32 0 0 -Po 0 58500 49750 62500 49750 170 -1 -De 15 0 32 0 0 -Po 0 62350 50750 62500 50600 170 -1 -De 0 0 32 0 0 -Po 0 55750 40750 55750 39750 170 -1 -De 0 0 32 0 0 -Po 0 62350 52500 62350 50750 170 -1 -De 0 0 32 0 800 -Po 0 62500 50600 62500 50500 170 -1 -De 0 0 32 0 0 -Po 0 55750 40750 56250 41250 170 -1 -De 0 0 32 0 0 -Po 3 58000 49250 58000 49250 650 -1 -De 15 1 32 0 0 -Po 0 58000 48750 58000 49250 170 -1 -De 0 0 32 0 0 -Po 0 58000 49250 58500 49750 170 -1 -De 15 0 32 0 0 -Po 0 56250 39250 55750 39750 170 -1 -De 0 0 32 0 800 -Po 0 62500 50500 62500 49750 170 -1 -De 0 0 32 0 0 -Po 3 62500 49750 62500 49750 650 -1 -De 15 1 32 0 0 -Po 0 73750 47250 75250 47250 400 -1 -De 0 0 33 0 800 -Po 0 75750 46750 75750 44250 400 -1 -De 0 0 33 0 400 -Po 0 75250 47250 75750 46750 400 -1 -De 0 0 33 0 0 -Po 0 76500 42250 76750 42500 400 -1 -De 0 0 34 0 800 -Po 0 76750 50750 76250 51250 400 -1 -De 0 0 34 0 0 -Po 0 76250 51250 73750 51250 400 -1 -De 0 0 34 0 400 -Po 0 76750 42500 76750 50750 400 -1 -De 0 0 34 0 0 -Po 0 49250 19500 49500 19250 170 -1 -De 0 0 35 0 0 -Po 0 47000 19250 47250 19500 170 -1 -De 0 0 35 0 0 -Po 0 50250 17750 51750 17750 170 -1 -De 0 0 35 0 0 -Po 0 51750 17750 52500 18500 170 -1 -De 0 0 35 0 0 -Po 0 50000 18000 50250 17750 170 -1 -De 0 0 35 0 0 -Po 0 46250 15500 46250 18000 170 -1 -De 0 0 35 0 800 -Po 0 50000 19000 50000 18500 170 -1 -De 0 0 35 0 400 -Po 0 52500 18500 53000 18500 170 -1 -De 0 0 35 0 400 -Po 0 50000 18500 50000 18000 170 -1 -De 0 0 35 0 800 -Po 0 47000 18750 47000 19250 170 -1 -De 0 0 35 0 0 -Po 0 46250 18000 47000 18750 170 -1 -De 0 0 35 0 0 -Po 0 49750 19250 50000 19000 170 -1 -De 0 0 35 0 0 -Po 0 49500 19250 49750 19250 170 -1 -De 0 0 35 0 0 -Po 0 47250 19500 49250 19500 170 -1 -De 0 0 35 0 0 -Po 0 67250 15750 68000 16500 170 -1 -De 0 0 36 0 0 -Po 0 50000 16250 50250 16500 170 -1 -De 0 0 36 0 0 -Po 0 54750 16500 53000 16500 170 -1 -De 0 0 36 0 400 -Po 0 55500 15750 54750 16500 170 -1 -De 0 0 36 0 0 -Po 0 55500 15750 67250 15750 170 -1 -De 0 0 36 0 0 -Po 0 50000 15500 50000 16250 170 -1 -De 0 0 36 0 800 -Po 0 73750 16500 68000 16500 170 -1 -De 0 0 36 0 800 -Po 0 50250 16500 53000 16500 170 -1 -De 0 0 36 0 400 -Po 0 55750 16500 57000 16500 170 -1 -De 0 0 37 0 400 -Po 0 54750 17500 55750 16500 170 -1 -De 0 0 37 0 0 -Po 0 49000 18500 49000 17500 170 -1 -De 0 0 37 0 800 -Po 0 53000 17500 54750 17500 170 -1 -De 0 0 37 0 800 -Po 0 49000 17500 49250 17250 170 -1 -De 0 0 37 0 0 -Po 0 49250 17250 52000 17250 170 -1 -De 0 0 37 0 0 -Po 0 52000 17250 52250 17500 170 -1 -De 0 0 37 0 0 -Po 0 52250 17500 53000 17500 170 -1 -De 0 0 37 0 400 -Po 0 73750 20500 73750 23250 170 -1 -De 0 0 38 0 C00 -Po 0 56250 18750 56250 21000 170 -1 -De 0 0 39 0 0 -Po 0 56500 21250 57000 21250 170 -1 -De 0 0 39 0 400 -Po 0 56500 18500 56250 18750 170 -1 -De 0 0 39 0 0 -Po 0 57000 18500 56500 18500 170 -1 -De 0 0 39 0 800 -Po 0 56250 21000 56500 21250 170 -1 -De 0 0 39 0 0 -Po 0 57500 19750 57000 19750 170 -1 -De 0 0 40 0 400 -Po 0 57750 19500 57500 19750 170 -1 -De 0 0 40 0 0 -Po 0 57000 17500 57500 17500 170 -1 -De 0 0 40 0 800 -Po 0 57750 17750 57750 19500 170 -1 -De 0 0 40 0 0 -Po 0 57500 17500 57750 17750 170 -1 -De 0 0 40 0 0 -Po 0 76500 37250 76500 19500 400 -1 -De 0 0 41 0 800 -Po 0 51000 18500 51750 18500 400 -1 -De 0 0 41 0 800 -Po 0 68750 18250 75250 18250 400 -1 -De 0 0 41 0 0 -Po 0 63000 17250 64000 16250 400 -1 -De 0 0 41 0 0 -Po 0 66750 16250 68750 18250 400 -1 -De 0 0 41 0 0 -Po 0 58750 17250 59750 17250 400 -1 -De 0 0 41 0 400 -Po 0 59750 17250 63000 17250 400 -1 -De 0 0 41 0 800 -Po 0 54500 19250 55750 18000 400 -1 -De 0 0 41 0 0 -Po 0 76500 19500 75500 18500 400 -1 -De 0 0 41 0 0 -Po 0 52500 19250 54500 19250 400 -1 -De 0 0 41 0 0 -Po 0 55750 18000 55750 17250 400 -1 -De 0 0 41 0 0 -Po 0 56000 17000 58500 17000 170 -1 -De 0 0 41 0 0 -Po 0 58500 17000 58750 17250 400 -1 -De 0 0 41 0 0 -Po 0 55750 17250 56000 17000 400 -1 -De 0 0 41 0 0 -Po 0 75250 18250 75500 18500 400 -1 -De 0 0 41 0 0 -Po 0 51750 18500 52500 19250 400 -1 -De 0 0 41 0 0 -Po 0 64000 16250 66750 16250 400 -1 -De 0 0 41 0 0 -Po 0 51000 19750 50000 19750 170 -1 -De 0 0 42 0 800 -Po 0 50000 19750 49750 20000 170 -1 -De 0 0 42 0 0 -Po 0 49750 20000 49750 22750 170 -1 -De 0 0 42 0 400 -Po 0 49250 16500 49000 16250 400 -1 -De 15 0 43 0 0 -Po 0 49000 16250 49000 15500 400 -1 -De 15 0 43 0 400 -Po 0 73500 42250 73500 28250 400 -1 -De 15 0 43 0 0 -Po 0 73500 28250 73000 27750 400 -1 -De 15 0 43 0 0 -Po 0 64500 44250 61750 44250 400 -1 -De 0 0 43 0 0 -Po 0 73000 42750 73500 42250 400 -1 -De 15 0 43 0 0 -Po 0 66750 44250 70750 44250 400 -1 -De 0 0 43 0 400 -Po 0 70750 43500 72250 43500 400 -1 -De 15 0 43 0 0 -Po 0 72250 43500 73000 42750 400 -1 -De 15 0 43 0 0 -Po 0 61750 44250 61250 44750 400 -1 -De 0 0 43 0 0 -Po 0 73000 27750 68500 23250 400 -1 -De 15 0 43 0 0 -Po 0 70750 44250 70750 43500 400 -1 -De 15 0 43 0 800 -Po 0 64500 42000 64500 44250 400 -1 -De 0 0 43 0 800 -Po 0 52500 15750 51750 16500 400 -1 -De 15 0 43 0 0 -Po 0 68500 23250 63000 23250 400 -1 -De 15 0 43 0 0 -Po 0 66750 44250 64500 44250 400 -1 -De 0 0 43 0 0 -Po 0 62750 16000 62500 15750 400 -1 -De 15 0 43 0 0 -Po 0 62750 23000 62750 16000 400 -1 -De 15 0 43 0 0 -Po 0 62500 15750 52500 15750 400 -1 -De 15 0 43 0 0 -Po 0 61250 44750 61250 46250 400 -1 -De 0 0 43 0 400 -Po 0 63000 23250 62750 23000 400 -1 -De 15 0 43 0 0 -Po 0 51750 16500 49250 16500 400 -1 -De 15 0 43 0 0 -Po 0 44750 34000 45750 34000 170 -1 -De 0 0 44 0 800 -Po 0 45750 34000 46000 34250 170 -1 -De 0 0 44 0 0 -Po 0 46000 34250 47250 34250 170 -1 -De 0 0 44 0 400 -Po 0 46000 34750 47750 34750 170 -1 -De 0 0 45 0 0 -Po 0 47750 34750 48250 34250 170 -1 -De 0 0 45 0 400 -Po 0 44750 35000 45750 35000 170 -1 -De 0 0 45 0 800 -Po 0 45750 35000 46000 34750 170 -1 -De 0 0 45 0 0 -Po 3 48000 26750 48000 26750 650 -1 -De 15 1 46 0 0 -Po 0 48500 20500 48000 21000 170 -1 -De 15 0 46 0 0 -Po 0 48000 26750 48000 21000 170 -1 -De 15 0 46 0 0 -Po 0 49750 27750 48750 26750 170 -1 -De 0 0 46 0 0 -Po 0 53500 20500 54750 21750 170 -1 -De 15 0 46 0 0 -Po 0 59250 21750 59250 21250 170 -1 -De 15 0 46 0 400 -Po 0 63750 20250 66250 20250 170 -1 -De 0 0 46 0 400 -Po 0 56750 22000 59000 22000 170 -1 -De 15 0 46 0 0 -Po 0 53500 20500 48500 20500 170 -1 -De 15 0 46 0 0 -Po 0 50250 29250 49750 28750 170 -1 -De 0 0 46 0 800 -Po 0 49750 28750 49750 27750 170 -1 -De 0 0 46 0 0 -Po 0 56500 21750 56750 22000 170 -1 -De 15 0 46 0 0 -Po 0 48750 26750 48000 26750 170 -1 -De 0 0 46 0 0 -Po 0 59000 22000 59250 21750 170 -1 -De 15 0 46 0 0 -Po 0 59250 21250 62750 21250 170 -1 -De 0 0 46 0 800 -Po 0 54750 21750 56500 21750 170 -1 -De 15 0 46 0 0 -Po 0 62750 21250 63750 20250 170 -1 -De 0 0 46 0 0 -Po 0 54750 20500 57500 20500 170 -1 -De 15 0 47 0 0 -Po 0 48500 27500 49250 28250 170 -1 -De 0 0 47 0 400 -Po 3 47250 26750 47250 26750 650 -1 -De 15 1 47 0 0 -Po 0 58250 21250 57500 20500 170 -1 -De 15 0 47 0 800 -Po 0 53500 19250 54750 20500 170 -1 -De 15 0 47 0 0 -Po 0 47250 27250 47500 27500 170 -1 -De 0 0 47 0 0 -Po 0 48000 19250 53500 19250 170 -1 -De 15 0 47 0 0 -Po 0 59250 20250 60750 20250 170 -1 -De 0 0 47 0 400 -Po 0 58250 21250 59250 20250 170 -1 -De 0 0 47 0 800 -Po 0 47500 27500 48500 27500 170 -1 -De 0 0 47 0 0 -Po 0 47250 20000 48000 19250 170 -1 -De 15 0 47 0 0 -Po 0 47250 26750 47250 20000 170 -1 -De 15 0 47 0 0 -Po 0 47250 26750 47250 27250 170 -1 -De 0 0 47 0 0 -Po 0 43750 22750 45250 21250 170 -1 -De 0 0 48 0 0 -Po 0 43750 23750 43750 22750 170 -1 -De 0 0 48 0 800 -Po 0 45250 21250 45250 20750 170 -1 -De 0 0 48 0 400 -Po 0 47750 28750 48250 29250 170 -1 -De 0 0 49 0 400 -Po 0 45750 28750 47750 28750 170 -1 -De 0 0 49 0 0 -Po 0 45750 28750 45250 28250 170 -1 -De 0 0 49 0 0 -Po 0 45250 24750 45250 28250 170 -1 -De 0 0 49 0 800 -Po 0 43750 20000 44000 19750 170 -1 -De 0 0 50 0 0 -Po 0 43750 20750 43750 20000 170 -1 -De 0 0 50 0 800 -Po 0 46250 20750 45250 19750 170 -1 -De 0 0 50 0 800 -Po 0 44000 19750 45250 19750 170 -1 -De 0 0 50 0 0 -Po 0 46250 24750 46250 28000 170 -1 -De 0 0 51 0 800 -Po 0 46500 28250 48250 28250 170 -1 -De 0 0 51 0 400 -Po 0 46250 28000 46500 28250 170 -1 -De 0 0 51 0 0 -Po 0 47750 47750 48750 47750 170 -1 -De 0 0 52 0 800 -Po 0 53250 49750 52250 50750 170 -1 -De 0 0 52 0 800 -Po 0 46750 48000 47000 47750 170 -1 -De 0 0 52 0 0 -Po 0 48750 47750 50600 47750 170 -1 -De 0 0 52 0 400 -Po 0 52250 50750 47250 50750 170 -1 -De 0 0 52 0 0 -Po 0 47250 50750 46750 50250 170 -1 -De 0 0 52 0 0 -Po 0 46750 50250 46750 48000 170 -1 -De 0 0 52 0 0 -Po 0 48750 46250 48750 47750 170 -1 -De 0 0 52 0 800 -Po 0 47000 47750 47750 47750 170 -1 -De 0 0 52 0 400 -Po 0 47750 25750 48750 25750 170 -1 -De 0 0 53 0 400 -Po 0 47750 25400 47750 25750 170 -1 -De 0 0 53 0 800 -Po 0 49750 46250 50750 46250 170 -1 -De 0 0 54 0 C00 -Po 0 49250 49750 47750 49750 170 -1 -De 0 0 54 0 C00 -Po 0 50750 49750 50600 49750 170 -1 -De 0 0 54 0 400 -Po 0 50750 46250 51250 46750 170 -1 -De 0 0 54 0 800 -Po 0 50750 49250 50750 49750 170 -1 -De 0 0 54 0 0 -Po 0 51250 48750 50750 49250 170 -1 -De 0 0 54 0 0 -Po 0 50600 49750 49250 49750 170 -1 -De 0 0 54 0 C00 -Po 0 51250 46750 51250 48750 170 -1 -De 0 0 54 0 0 -Po 0 57500 26750 62750 26750 170 -1 -De 0 0 55 0 0 -Po 0 62750 26750 63250 26250 170 -1 -De 0 0 55 0 0 -Po 0 57250 27000 57500 26750 170 -1 -De 0 0 55 0 0 -Po 0 63250 26250 65250 26250 170 -1 -De 0 0 55 0 400 -Po 0 57250 28250 57250 27000 170 -1 -De 0 0 55 0 800 -Po 0 40250 41250 46250 41250 170 -1 -De 0 0 56 0 800 -Po 0 46250 41250 48250 39250 170 -1 -De 0 0 56 0 400 -Po 0 45650 38750 47750 38750 170 -1 -De 0 0 57 0 0 -Po 0 47750 38750 48250 38250 170 -1 -De 0 0 57 0 400 -Po 0 44250 40150 45650 38750 170 -1 -De 0 0 57 0 0 -Po 0 40250 40150 44250 40150 170 -1 -De 0 0 57 0 800 -Po 0 44250 37750 46750 37750 170 -1 -De 0 0 58 0 0 -Po 0 46750 37750 47250 37250 170 -1 -De 0 0 58 0 400 -Po 0 44250 37750 43000 39000 170 -1 -De 0 0 58 0 0 -Po 0 40250 39000 40250 39100 170 -1 -De 0 0 58 0 400 -Po 0 43000 39000 40250 39000 170 -1 -De 0 0 58 0 0 -Po 0 40250 38000 41250 38000 170 -1 -De 0 0 59 0 800 -Po 0 46250 36750 46750 36250 170 -1 -De 0 0 59 0 0 -Po 0 46750 36250 47250 36250 170 -1 -De 0 0 59 0 400 -Po 0 42750 37750 43750 36750 170 -1 -De 0 0 59 0 0 -Po 0 41500 37750 42750 37750 170 -1 -De 0 0 59 0 0 -Po 0 41250 38000 41500 37750 170 -1 -De 0 0 59 0 0 -Po 0 43750 36750 46250 36750 170 -1 -De 0 0 59 0 0 -Po 0 43000 35750 46000 35750 170 -1 -De 0 0 60 0 0 -Po 0 40250 36900 41500 36900 170 -1 -De 0 0 60 0 800 -Po 0 46500 35250 47250 35250 170 -1 -De 0 0 60 0 400 -Po 0 41500 36900 42150 36250 170 -1 -De 0 0 60 0 0 -Po 0 42500 36250 43000 35750 170 -1 -De 0 0 60 0 0 -Po 0 46000 35750 46500 35250 170 -1 -De 0 0 60 0 0 -Po 0 42150 36250 42500 36250 170 -1 -De 0 0 60 0 0 -Po 0 43250 33250 46000 33250 170 -1 -De 0 0 61 0 0 -Po 0 42000 34500 43250 33250 170 -1 -De 0 0 61 0 0 -Po 0 40250 35800 41250 35800 170 -1 -De 0 0 61 0 800 -Po 0 41250 35750 42000 35000 170 -1 -De 0 0 61 0 0 -Po 0 46000 33250 46500 33750 170 -1 -De 0 0 61 0 0 -Po 0 46500 33750 47750 33750 170 -1 -De 0 0 61 0 0 -Po 0 41250 35800 41250 35750 170 -1 -De 0 0 61 0 0 -Po 0 42000 35000 42000 34500 170 -1 -De 0 0 61 0 0 -Po 0 47750 33750 48250 33250 170 -1 -De 0 0 61 0 400 -Po 0 43000 32750 46250 32750 170 -1 -De 0 0 62 0 0 -Po 0 40250 34750 41000 34750 170 -1 -De 0 0 62 0 800 -Po 0 46750 33250 47250 33250 170 -1 -De 0 0 62 0 400 -Po 0 41000 34750 43000 32750 170 -1 -De 0 0 62 0 0 -Po 0 46250 32750 46750 33250 170 -1 -De 0 0 62 0 0 -Po 0 41000 33650 41000 33500 170 -1 -De 0 0 63 0 0 -Po 0 42250 32250 47250 32250 170 -1 -De 0 0 63 0 400 -Po 0 41000 33500 42250 32250 170 -1 -De 0 0 63 0 0 -Po 0 40250 33650 41000 33650 170 -1 -De 0 0 63 0 800 -Po 0 47750 31750 48250 32250 170 -1 -De 0 0 64 0 400 -Po 0 41500 31750 47750 31750 170 -1 -De 0 0 64 0 0 -Po 0 40750 32550 40750 32500 170 -1 -De 0 0 64 0 0 -Po 0 40250 32550 40750 32550 170 -1 -De 0 0 64 0 800 -Po 0 40750 32500 41500 31750 170 -1 -De 0 0 64 0 0 -Po 0 40750 31250 47250 31250 170 -1 -De 0 0 65 0 400 -Po 0 40250 31450 40750 31450 170 -1 -De 0 0 65 0 800 -Po 0 40750 31450 40750 31250 170 -1 -De 0 0 65 0 0 -Po 0 47750 30750 48250 31250 170 -1 -De 0 0 66 0 400 -Po 0 40250 30400 43750 30400 170 -1 -De 0 0 66 0 800 -Po 0 43750 30400 44100 30750 170 -1 -De 0 0 66 0 0 -Po 0 44100 30750 47750 30750 170 -1 -De 0 0 66 0 0 -Po 0 43250 29300 44200 30250 170 -1 -De 0 0 67 0 0 -Po 0 44200 30250 47250 30250 170 -1 -De 0 0 67 0 400 -Po 0 40250 29300 43250 29300 170 -1 -De 0 0 67 0 800 -Po 0 47250 29200 47250 29250 170 -1 -De 0 0 68 0 400 -Po 0 43750 29200 47250 29200 170 -1 -De 0 0 68 0 0 -Po 0 42750 28200 43750 29200 170 -1 -De 0 0 68 0 0 -Po 0 40250 28200 42750 28200 170 -1 -De 0 0 68 0 800 -Po 0 39250 40630 39750 40630 170 -1 -De 0 0 69 0 800 -Po 0 39750 40630 39750 40750 170 -1 -De 0 0 69 0 0 -Po 0 45750 40750 47250 39250 170 -1 -De 0 0 69 0 400 -Po 0 39750 40750 45750 40750 170 -1 -De 0 0 69 0 0 -Po 0 44630 38250 47250 38250 170 -1 -De 0 0 70 0 400 -Po 0 39250 39630 43250 39630 170 -1 -De 0 0 70 0 800 -Po 0 43250 39630 44630 38250 170 -1 -De 0 0 70 0 0 -Po 0 44000 37250 46250 37250 170 -1 -De 0 0 71 0 0 -Po 0 39250 38530 39320 38600 170 -1 -De 0 0 71 0 800 -Po 0 39320 38600 41100 38600 170 -1 -De 0 0 71 0 0 -Po 0 41200 38500 42750 38500 170 -1 -De 0 0 71 0 0 -Po 0 42750 38500 44000 37250 170 -1 -De 0 0 71 0 0 -Po 0 46750 36750 46250 37250 170 -1 -De 0 0 71 0 0 -Po 0 41100 38600 41200 38500 170 -1 -De 0 0 71 0 0 -Po 0 47750 36750 48250 36250 170 -1 -De 0 0 71 0 400 -Po 0 46750 36750 47750 36750 170 -1 -De 0 0 71 0 0 -Po 0 41450 37250 42750 37250 170 -1 -De 0 0 72 0 0 -Po 0 43750 36250 46250 36250 170 -1 -De 0 0 72 0 0 -Po 0 39250 37450 41250 37450 170 -1 -De 0 0 72 0 800 -Po 0 46250 36250 46750 35750 170 -1 -De 0 0 72 0 0 -Po 0 46750 35750 47750 35750 170 -1 -De 0 0 72 0 0 -Po 0 47750 35750 48250 35250 170 -1 -De 0 0 72 0 400 -Po 0 42750 37250 43750 36250 170 -1 -De 0 0 72 0 0 -Po 0 41250 37450 41450 37250 170 -1 -De 0 0 72 0 0 -Po 0 50750 22750 50750 21500 170 -1 -De 0 0 73 0 800 -Po 0 50750 21500 51000 21250 170 -1 -De 0 0 73 0 400 -Po 0 50750 25750 50750 26750 170 -1 -De 0 0 74 0 800 -Po 0 50750 26750 50250 27250 170 -1 -De 0 0 74 0 0 -Po 0 50250 27250 50250 28250 170 -1 -De 0 0 74 0 400 -Po 0 51250 27250 51750 26750 170 -1 -De 0 0 75 0 0 -Po 0 51750 26750 51750 25750 170 -1 -De 0 0 75 0 400 -Po 0 51250 28250 51250 27250 170 -1 -De 0 0 75 0 800 -Po 0 51750 28750 51750 27250 170 -1 -De 0 0 76 0 0 -Po 0 51750 27250 52750 26250 170 -1 -De 0 0 76 0 0 -Po 0 52750 26250 52750 25750 170 -1 -De 0 0 76 0 400 -Po 0 52250 29250 51750 28750 170 -1 -De 0 0 76 0 800 -Po 0 54750 27750 54250 28250 170 -1 -De 0 0 77 0 400 -Po 0 54750 25750 54750 27750 170 -1 -De 0 0 77 0 800 -Po 0 56250 28250 56250 26000 170 -1 -De 0 0 78 0 800 -Po 0 56250 26000 56000 25750 170 -1 -De 0 0 78 0 0 -Po 0 56000 25750 55750 25750 170 -1 -De 0 0 78 0 400 -Po 0 55250 24250 55250 26250 170 -1 -De 0 0 79 0 0 -Po 0 55750 23750 55250 24250 170 -1 -De 0 0 79 0 0 -Po 0 55750 26750 55250 26250 170 -1 -De 0 0 79 0 0 -Po 0 55750 28750 55750 26750 170 -1 -De 0 0 79 0 0 -Po 0 55750 22750 55750 23750 170 -1 -De 0 0 79 0 800 -Po 0 55250 29250 55750 28750 170 -1 -De 0 0 79 0 800 -Po 0 54750 22750 54750 23750 170 -1 -De 0 0 80 0 800 -Po 0 53750 28000 54250 27500 170 -1 -De 0 0 80 0 0 -Po 0 53750 28000 53750 28750 170 -1 -De 0 0 80 0 0 -Po 0 54250 27500 54250 24250 170 -1 -De 0 0 80 0 0 -Po 0 54750 23750 54250 24250 170 -1 -De 0 0 80 0 0 -Po 0 53750 28750 54250 29250 170 -1 -De 0 0 80 0 400 -Po 0 53250 24250 53750 23750 170 -1 -De 0 0 81 0 0 -Po 0 53750 22750 53750 23750 170 -1 -De 0 0 81 0 800 -Po 0 52250 27250 53250 26250 170 -1 -De 0 0 81 0 0 -Po 0 52250 27250 52250 28250 170 -1 -De 0 0 81 0 400 -Po 0 53250 24250 53250 26250 170 -1 -De 0 0 81 0 0 -Po 0 51250 24750 51750 24250 170 -1 -De 0 0 82 0 0 -Po 0 50750 27250 51250 26750 170 -1 -De 0 0 82 0 0 -Po 0 51750 24250 52500 24250 170 -1 -De 0 0 82 0 0 -Po 0 50750 28750 50750 27250 170 -1 -De 0 0 82 0 0 -Po 0 52500 24250 52750 24000 170 -1 -De 0 0 82 0 0 -Po 0 52750 24000 52750 22750 170 -1 -De 0 0 82 0 400 -Po 0 51250 29250 50750 28750 170 -1 -De 0 0 82 0 800 -Po 0 51250 26750 51250 24750 170 -1 -De 0 0 82 0 0 -Po 0 47500 46250 46000 46250 170 -1 -De 0 0 83 0 0 -Po 0 45750 46000 45750 42500 170 -1 -De 0 0 83 0 0 -Po 0 46000 42250 47750 42250 170 -1 -De 0 0 83 0 0 -Po 0 51500 45250 48250 45250 170 -1 -De 0 0 83 0 0 -Po 0 51750 46250 51750 45500 170 -1 -De 0 0 83 0 800 -Po 0 45750 42500 46000 42250 170 -1 -De 0 0 83 0 0 -Po 0 48250 41750 48250 40250 170 -1 -De 0 0 83 0 400 -Po 0 47750 42250 48250 41750 170 -1 -De 0 0 83 0 0 -Po 0 51750 45500 51500 45250 170 -1 -De 0 0 83 0 0 -Po 0 47750 45750 47750 46000 170 -1 -De 0 0 83 0 0 -Po 0 47750 46000 47500 46250 170 -1 -De 0 0 83 0 0 -Po 0 46000 46250 45750 46000 170 -1 -De 0 0 83 0 0 -Po 0 48250 45250 47750 45750 170 -1 -De 0 0 83 0 0 -$EndTRACK -$ZONE -$EndZONE -$CZONE_OUTLINE -ZInfo 47AB4739 14 "GND" -ZLayer 0 -ZAux 4 E -ZCorner 77000 14500 0 -ZCorner 37500 14500 0 -ZCorner 37500 53000 0 -ZCorner 77000 53000 1 -$endCZONE_OUTLINE -$EndBOARD +PCBNEW-BOARD Version 1 date 18/12/2011 08:54:51 + +# Created by Pcbnew(2011-12-16 BZR 3311)-testing + +$GENERAL +encoding utf-8 +LayerCount 2 +Ly 1FFF8001 +EnabledLayers 1FFF8001 +Links 173 +NoConn 0 +Di 32279 14129 77371 58471 +Ndraw 30 +Ntrack 757 +Nzone 0 +BoardThickness 630 +Nmodule 42 +Nnets 84 +$EndGENERAL + +$SHEETDESCR +Sheet A4 11700 8267 +Title "CARTE TEST XILINX XC95108" +Date "18 dec 2011" +Rev "0" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndSHEETDESCR + +$SETUP +InternalUnit 0.000100 INCH +Layers 2 +Layer[0] Dessous signal +Layer[15] Dessus signal +TrackWidth 170 +TrackWidthList 400 +TrackClearence 100 +ZoneClearence 200 +TrackMinWidth 100 +DrawSegmWidth 120 +EdgeSegmWidth 120 +ViaSize 350 +ViaDrill 250 +ViaMinSize 350 +ViaMinDrill 200 +MicroViaSize 200 +MicroViaDrill 50 +MicroViasAllowed 0 +MicroViaMinSize 200 +MicroViaMinDrill 50 +TextPcbWidth 80 +TextPcbSize 600 600 +EdgeModWidth 120 +TextModSize 500 500 +TextModWidth 80 +PadSize 550 550 +PadDrill 320 +Pad2MaskClearance 100 +AuxiliaryAxisOrg 0 0 +PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions true) (excludeedgelayer true) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 2) (pscolor true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) +$EndSETUP + +$EQUIPOT +Na 0 "" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 1 "+12V" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 2 "-12V" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 3 "CSMEM_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 4 "DAT0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 5 "DAT1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 6 "DAT2_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 7 "DAT3_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 8 "DAT4_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 9 "DAT5_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 10 "DAT6_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 11 "DAT7_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 12 "DCLK_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 13 "GND" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 14 "LED1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 15 "LED2_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 16 "MA0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 17 "MA1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 18 "MA2_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 19 "MA3_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 20 "MA4_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 21 "MA5_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 22 "MA6_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 23 "MA7_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 24 "MD0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 25 "MD10_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 26 "MD11_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 27 "MD12_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 28 "MD13_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 29 "MD14_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 30 "MD1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 31 "MD2_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 32 "MD3_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 33 "MD4_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 34 "MD5_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 35 "MD6_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 36 "MD7_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 37 "MD8_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 38 "MD9_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 39 "N-000001" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 40 "N-000003" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 41 "N-000009" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 42 "N-000010" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 43 "N-000011" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 44 "N-000012" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 45 "N-000013" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 46 "N-000014" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 47 "N-000015" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 48 "N-000040" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 49 "N-000041" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 50 "N-000078" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 51 "N-000084" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 52 "N-000085" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 53 "N-000090" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 54 "N-000091" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 55 "OEMEM_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 56 "PARBUS0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 57 "PARBUS1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 58 "PARBUS2_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 59 "PARBUS3_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 60 "PARBUS4_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 61 "PARBUS5_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 62 "PARBUS6_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 63 "PARBUS7_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 64 "PAR_AUX0_X00001" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 65 "PAR_AUX1_X00004" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 66 "PAR_AUX2_X00003" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 67 "PAR_AUX3_X00002" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 68 "PAR_AUX4/PE_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 69 "PAR_AUX5/BUSY*_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 70 "PAR_AUX6/ACK_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 71 "PAR_AUX7/INIT_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 72 "PAR_AUX8_X00005" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 73 "PIN_TEST0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 74 "PIN_TEST1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 75 "R/W-A14_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 76 "SW0_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 77 "SW1_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 78 "TCK_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 79 "TDI_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 80 "TDO_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 81 "TMS_1" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 82 "VCC" +St ~ +$EndEQUIPOT +$EQUIPOT +Na 83 "XIN/CLK_1" +St ~ +$EndEQUIPOT +$NCLASS +Name "Default" +Desc "Ceci est la Netclass par défaut" +Clearance 100 +TrackWidth 170 +ViaDia 350 +ViaDrill 250 +uViaDia 200 +uViaDrill 50 +AddNet "" +AddNet "+12V" +AddNet "-12V" +AddNet "CSMEM_1" +AddNet "DAT0_1" +AddNet "DAT1_1" +AddNet "DAT2_1" +AddNet "DAT3_1" +AddNet "DAT4_1" +AddNet "DAT5_1" +AddNet "DAT6_1" +AddNet "DAT7_1" +AddNet "DCLK_1" +AddNet "GND" +AddNet "LED1_1" +AddNet "LED2_1" +AddNet "MA0_1" +AddNet "MA1_1" +AddNet "MA2_1" +AddNet "MA3_1" +AddNet "MA4_1" +AddNet "MA5_1" +AddNet "MA6_1" +AddNet "MA7_1" +AddNet "MD0_1" +AddNet "MD10_1" +AddNet "MD11_1" +AddNet "MD12_1" +AddNet "MD13_1" +AddNet "MD14_1" +AddNet "MD1_1" +AddNet "MD2_1" +AddNet "MD3_1" +AddNet "MD4_1" +AddNet "MD5_1" +AddNet "MD6_1" +AddNet "MD7_1" +AddNet "MD8_1" +AddNet "MD9_1" +AddNet "N-000001" +AddNet "N-000003" +AddNet "N-000009" +AddNet "N-000010" +AddNet "N-000011" +AddNet "N-000012" +AddNet "N-000013" +AddNet "N-000014" +AddNet "N-000015" +AddNet "N-000040" +AddNet "N-000041" +AddNet "N-000078" +AddNet "N-000084" +AddNet "N-000085" +AddNet "N-000090" +AddNet "N-000091" +AddNet "OEMEM_1" +AddNet "PARBUS0_1" +AddNet "PARBUS1_1" +AddNet "PARBUS2_1" +AddNet "PARBUS3_1" +AddNet "PARBUS4_1" +AddNet "PARBUS5_1" +AddNet "PARBUS6_1" +AddNet "PARBUS7_1" +AddNet "PAR_AUX0_X00001" +AddNet "PAR_AUX1_X00004" +AddNet "PAR_AUX2_X00003" +AddNet "PAR_AUX3_X00002" +AddNet "PAR_AUX4/PE_1" +AddNet "PAR_AUX5/BUSY*_1" +AddNet "PAR_AUX6/ACK_1" +AddNet "PAR_AUX7/INIT_1" +AddNet "PAR_AUX8_X00005" +AddNet "PIN_TEST0_1" +AddNet "PIN_TEST1_1" +AddNet "R/W-A14_1" +AddNet "SW0_1" +AddNet "SW1_1" +AddNet "TCK_1" +AddNet "TDI_1" +AddNet "TDO_1" +AddNet "TMS_1" +AddNet "VCC" +AddNet "XIN/CLK_1" +$EndNCLASS +$MODULE 28DIP-ELL300-600 +Po 69250 35250 2700 15 3ED1C7FD 3EC4C463 ~~ +Li 28DIP-ELL300-600 +Cd Module Dil 28 pins, pads elliptiques, e=600 mils +Kw DIL +Sc 3EC4C463 +AR +Op 0 0 0 +T0 -5000 -1500 700 450 2700 113 N V 21 N "U5" +T1 -50 1650 700 700 2700 120 N V 21 N "RAM_32KO" +DS -7500 1000 -7000 1000 120 21 +DS -7000 1000 -7000 2000 120 21 +DS -7000 2000 -7500 2000 120 21 +DS -7500 500 7500 500 120 21 +DS -7500 -500 -7500 -500 120 21 +DS -7500 -500 -7000 -500 120 21 +DS -7000 -500 -7000 500 120 21 +DS -7000 500 -7500 500 120 21 +DS -7500 -2500 7500 -2500 120 21 +DS 7500 -2500 7500 2500 120 21 +DS 7500 2500 -7500 2500 120 21 +DS -7500 2500 -7500 -2500 120 21 +$PAD +Sh "1" R 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 50 "N-000078" +Po -6500 3000 +$EndPAD +$PAD +Sh "2" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 27 "MD12_1" +Po -5500 3000 +$EndPAD +$PAD +Sh "3" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 36 "MD7_1" +Po -4500 3000 +$EndPAD +$PAD +Sh "4" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 35 "MD6_1" +Po -3500 3000 +$EndPAD +$PAD +Sh "5" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 34 "MD5_1" +Po -2500 3000 +$EndPAD +$PAD +Sh "6" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 33 "MD4_1" +Po -1500 3000 +$EndPAD +$PAD +Sh "7" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 32 "MD3_1" +Po -500 3000 +$EndPAD +$PAD +Sh "8" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 31 "MD2_1" +Po 500 3000 +$EndPAD +$PAD +Sh "9" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 30 "MD1_1" +Po 1500 3000 +$EndPAD +$PAD +Sh "10" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 24 "MD0_1" +Po 2500 3000 +$EndPAD +$PAD +Sh "11" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 16 "MA0_1" +Po 3500 3000 +$EndPAD +$PAD +Sh "12" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 17 "MA1_1" +Po 4500 3000 +$EndPAD +$PAD +Sh "13" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 18 "MA2_1" +Po 5500 3000 +$EndPAD +$PAD +Sh "14" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 6500 3000 +$EndPAD +$PAD +Sh "15" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 19 "MA3_1" +Po 6500 -3000 +$EndPAD +$PAD +Sh "16" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 20 "MA4_1" +Po 5500 -3000 +$EndPAD +$PAD +Sh "17" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 21 "MA5_1" +Po 4500 -3000 +$EndPAD +$PAD +Sh "18" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 22 "MA6_1" +Po 3500 -3000 +$EndPAD +$PAD +Sh "19" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 23 "MA7_1" +Po 2500 -3000 +$EndPAD +$PAD +Sh "20" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 3 "CSMEM_1" +Po 1500 -3000 +$EndPAD +$PAD +Sh "21" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 25 "MD10_1" +Po 500 -3000 +$EndPAD +$PAD +Sh "22" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 55 "OEMEM_1" +Po -500 -3000 +$EndPAD +$PAD +Sh "23" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 26 "MD11_1" +Po -1500 -3000 +$EndPAD +$PAD +Sh "24" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 38 "MD9_1" +Po -2500 -3000 +$EndPAD +$PAD +Sh "25" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 37 "MD8_1" +Po -3500 -3000 +$EndPAD +$PAD +Sh "26" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 28 "MD13_1" +Po -4500 -3000 +$EndPAD +$PAD +Sh "27" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 75 "R/W-A14_1" +Po -5500 -3000 +$EndPAD +$PAD +Sh "28" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -6500 -3000 +$EndPAD +$PAD +Sh "15" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 19 "MA3_1" +Po 6500 0 +$EndPAD +$PAD +Sh "16" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 20 "MA4_1" +Po 5500 0 +$EndPAD +$PAD +Sh "17" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 21 "MA5_1" +Po 4500 0 +$EndPAD +$PAD +Sh "18" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 22 "MA6_1" +Po 3500 0 +$EndPAD +$PAD +Sh "19" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 23 "MA7_1" +Po 2500 0 +$EndPAD +$PAD +Sh "20" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 3 "CSMEM_1" +Po 1500 0 +$EndPAD +$PAD +Sh "21" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 25 "MD10_1" +Po 500 0 +$EndPAD +$PAD +Sh "22" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 55 "OEMEM_1" +Po -500 0 +$EndPAD +$PAD +Sh "23" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 26 "MD11_1" +Po -1500 0 +$EndPAD +$PAD +Sh "24" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 38 "MD9_1" +Po -2500 0 +$EndPAD +$PAD +Sh "25" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 37 "MD8_1" +Po -3500 0 +$EndPAD +$PAD +Sh "26" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 28 "MD13_1" +Po -4500 0 +$EndPAD +$PAD +Sh "27" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 75 "R/W-A14_1" +Po -5500 0 +$EndPAD +$PAD +Sh "28" O 620 900 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -6500 0 +$EndPAD +$SHAPE3D +Na "dil/dil_28-w600.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE 28DIP-ELL300-600 +$MODULE DB9F_CI_INVERT +Po 60150 53500 1800 15 3F98DDC2 3ECDEBEA ~~ +Li DB9F_CI_INVERT +Cd Connecteur DB9 male encarte +Kw CONN DB9 +Sc 3ECDEBEA +AR +Op 0 0 0 +T0 0 0 600 600 1800 120 N V 21 N "J2" +T1 0 2350 600 600 1800 120 N V 21 N "DB9FEM" +DS -3350 -4750 3400 -4750 120 21 +DS 3650 -500 -3600 -500 120 21 +DS 3900 -500 3650 -500 120 21 +DS 3900 -1750 -3850 -1750 120 21 +DS 6150 -1750 3900 -1750 120 21 +DS -6100 -2250 6150 -2250 120 21 +DS 3400 -2250 3400 -4750 120 21 +DS 6150 -1750 6150 -2250 120 21 +DS 3900 -500 3900 -1750 120 21 +DS 2900 0 3650 0 120 21 +DS 3650 0 3650 -500 120 21 +DS -3350 -2250 -3350 -4750 120 21 +DS -3850 -1750 -6100 -1750 120 21 +DS -6100 -1750 -6100 -2250 120 21 +DS -3600 -500 -3850 -500 120 21 +DS -3850 -500 -3850 -1750 120 21 +DS -2850 0 -3600 0 120 21 +DS -3600 0 -3600 -500 120 21 +$PAD +Sh "2" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00400001 +Ne 80 "TDO_1" +Po 1100 1000 +$EndPAD +$PAD +Sh "3" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00400001 +Ne 79 "TDI_1" +Po 0 1000 +$EndPAD +$PAD +Sh "4" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00400001 +Ne 78 "TCK_1" +Po -1100 1000 +$EndPAD +$PAD +Sh "5" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00400001 +Ne 81 "TMS_1" +Po -2200 1000 +$EndPAD +$PAD +Sh "1" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00400001 +Ne 82 "VCC" +Po 2200 1000 +$EndPAD +$PAD +Sh "9" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00808000 +Ne 13 "GND" +Po -1650 1000 +$EndPAD +$PAD +Sh "8" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00808000 +Ne 13 "GND" +Po -550 1000 +$EndPAD +$PAD +Sh "7" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00808000 +Ne 13 "GND" +Po 550 1000 +$EndPAD +$PAD +Sh "6" R 700 2000 0 0 1800 +Dr 0 0 0 +At CONN N 00808000 +Ne 13 "GND" +Po 1650 1000 +$EndPAD +$SHAPE3D +Na "conn_DBxx/db9_female.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 -0.006000 +Ro 90.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE DB9F_CI_INVERT +$MODULE bornier3 +Po 73750 49250 2700 15 3EC0ECFA 3EC243AC ~~ +Li bornier3 +Cd Bornier d'alimentation 3 pins +Kw DEV +Sc 3EC243AC +AR +Op 0 0 0 +T0 0 -2000 600 600 2700 120 N V 21 N "P2" +T1 0 2000 600 600 2700 120 N V 21 N "CONN_3" +DS -3000 1500 -3000 -1500 120 21 +DS 3000 1500 3000 -1500 120 21 +DS -3000 1000 3000 1000 120 21 +DS -3000 -1500 3000 -1500 120 21 +DS -3000 1500 3000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 40 "N-000003" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 0 0 +$EndPAD +$PAD +Sh "3" C 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 39 "N-000001" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_3.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier3 +$MODULE R4 +Po 46250 17500 2700 15 00200000 3ECDDB57 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3ECDDB57 +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R6" +T1 0 0 550 500 2700 80 N I 21 N "1,1k" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 41 "N-000009" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 55000 16500 0 15 00200000 3ECDDB60 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3ECDDB60 +AR +Op 0 A 0 +T0 0 0 550 500 0 80 N V 21 N "R7" +T1 0 0 550 500 0 80 N I 21 N "1,1K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 42 "N-000010" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 43 "N-000011" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 73750 18500 900 15 00200000 3ECDDB6D ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3ECDDB6D +AR +Op 0 A 0 +T0 0 0 550 500 900 80 N V 21 N "R10" +T1 0 0 550 500 900 80 N I 21 N "75" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 45 "N-000013" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 42 "N-000010" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 55000 18500 0 15 00200000 3ECDDB4B ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3ECDDB4B +AR +Op 0 A 0 +T0 0 0 550 500 0 80 N V 21 N "R9" +T1 0 0 550 500 0 80 N I 21 N "2,2K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 41 "N-000009" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 46 "N-000014" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 55000 17500 0 15 00200000 3ECDDB43 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3ECDDB43 +AR +Op 0 A 0 +T0 0 0 550 500 0 80 N V 21 N "R8" +T1 0 0 550 500 0 80 N I 21 N "2,2K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 43 "N-000011" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 44 "N-000012" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE D5 +Po 76500 39750 2700 15 00200000 3ECDDCDD ~~ +Li D5 +Cd Diode 5 pas +Kw DIODE DEV +Sc 3ECDDCDD +AR +Op 0 0 0 +T0 0 0 600 400 2700 100 N V 21 N "D4" +T1 -100 0 600 400 2700 100 N I 21 N "1N4004" +DS 2500 0 2000 0 120 21 +DS 2000 0 2000 -500 120 21 +DS 2000 -500 -2000 -500 120 21 +DS -2000 -500 -2000 0 120 21 +DS -2000 0 -2500 0 120 21 +DS -2000 0 -2000 500 120 21 +DS -2000 500 2000 500 120 21 +DS 2000 500 2000 0 120 21 +DS 1500 -500 1500 500 120 21 +DS 1600 -500 1600 500 120 21 +$PAD +Sh "1" C 700 700 0 0 2700 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 2 "-12V" +Po -2500 0 +$EndPAD +$PAD +Sh "2" R 700 700 0 0 2700 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 39 "N-000001" +Po 2500 0 +$EndPAD +$SHAPE3D +Na "discret/diode.wrl" +Sc 0.500000 0.500000 0.500000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE D5 +$MODULE CP6 +Po 62750 17250 1800 15 00200000 3ECDDCAD ~~ +Li CP6 +Cd Condensateur polarise +Kw CP +Sc 3ECDDCAD +AR +Op 0 0 0 +T0 0 0 600 600 1800 120 N V 21 N "C13" +T1 250 0 600 600 1800 120 N I 21 N "10uF" +DS -3000 0 -2600 0 120 21 +DS -2400 200 -2600 200 120 21 +DS -2600 200 -2600 -200 120 21 +DS -2600 -200 -2400 -200 120 21 +DS 3000 0 2600 0 120 21 +DS 2600 0 2600 -600 120 21 +DS 2600 -600 -2400 -600 120 21 +DS -2400 -600 -2400 600 120 21 +DS -2400 600 2600 600 120 21 +DS 2600 600 2600 0 120 21 +$PAD +Sh "1" R 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -3000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 2 "-12V" +Po 3000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.600000 0.600000 0.600000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP6 +$MODULE CP6 +Po 54000 19750 0 15 00200000 3ECDDACB ~~ +Li CP6 +Cd Condensateur polarise +Kw CP +Sc 3ECDDACB +AR +Op 0 0 0 +T0 0 0 600 600 0 120 N V 21 N "C14" +T1 250 0 600 600 0 120 N I 21 N "10uF" +DS -3000 0 -2600 0 120 21 +DS -2400 200 -2600 200 120 21 +DS -2600 200 -2600 -200 120 21 +DS -2600 -200 -2400 -200 120 21 +DS 3000 0 2600 0 120 21 +DS 2600 0 2600 -600 120 21 +DS 2600 -600 -2400 -600 120 21 +DS -2400 -600 -2400 600 120 21 +DS -2400 600 2600 600 120 21 +DS 2600 600 2600 0 120 21 +$PAD +Sh "1" R 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 47 "N-000015" +Po -3000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 44 "N-000012" +Po 3000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.600000 0.600000 0.600000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP6 +$MODULE 8DIP-ELL300 +Po 49500 17000 0 15 00200000 3ECDDB8B ~~ +Li 8DIP-ELL300 +Cd Module Dil 8 pins, pads elliptiques +Kw DIL +Sc 3ECDDB8B +AR +Op 0 0 0 +T0 -2500 0 700 450 900 113 N V 21 N "U6" +T1 0 0 700 400 0 100 N V 21 N "LM318N" +DS -2000 -500 -1500 -500 150 21 +DS -1500 -500 -1500 500 150 21 +DS -1500 500 -2000 500 150 21 +DS -2000 -1000 2000 -1000 150 21 +DS 2000 -1000 2000 1000 150 21 +DS 2000 1000 -2000 1000 150 21 +DS -2000 1000 -2000 -1000 150 21 +$PAD +Sh "1" R 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -1500 1500 +$EndPAD +$PAD +Sh "2" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 43 "N-000011" +Po -500 1500 +$EndPAD +$PAD +Sh "3" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 41 "N-000009" +Po 500 1500 +$EndPAD +$PAD +Sh "4" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 2 "-12V" +Po 1500 1500 +$EndPAD +$PAD +Sh "5" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 1500 -1500 +$EndPAD +$PAD +Sh "6" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 42 "N-000010" +Po 500 -1500 +$EndPAD +$PAD +Sh "7" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "+12V" +Po -500 -1500 +$EndPAD +$PAD +Sh "8" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -1500 -1500 +$EndPAD +$SHAPE3D +Na "dil/dil_8.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE 8DIP-ELL300 +$MODULE head_2x2 +Po 44250 34500 2700 15 00200000 3ECB3F5E ~~ +Li head_2x2 +Cd Double rangee de contacts 2 x 2 pins +Kw CONN +Sc 3ECB3F5E +AR +Op 0 0 0 +T0 160 -1620 700 600 2700 120 N V 21 N "P4" +T1 160 -1620 700 600 2700 120 N I 21 N "CONN_2X2" +DS -1000 -1000 1000 -1000 120 21 +DS 1000 -1000 1000 1000 120 21 +DS 1000 1000 -1000 1000 120 21 +DS -1000 1000 -1000 -1000 120 21 +$PAD +Sh "1" R 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -500 500 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 73 "PIN_TEST0_1" +Po -500 -500 +$EndPAD +$PAD +Sh "3" C 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 500 500 +$EndPAD +$PAD +Sh "4" C 600 600 0 0 2700 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 74 "PIN_TEST1_1" +Po 500 -500 +$EndPAD +$SHAPE3D +Na "pin_array/pins_array_2x2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE head_2x2 +$MODULE R4 +Po 59250 23250 900 15 00200000 3EC8B970 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3EC8B970 +AR +Op 0 A 0 +T0 0 0 550 500 900 80 N V 21 N "R4" +T1 0 0 550 500 900 80 N I 21 N "4,7K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 77 "SW1_1" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 58250 23250 900 15 00200000 3EC8B978 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3EC8B978 +AR +Op 0 A 0 +T0 0 0 550 500 900 80 N V 21 N "R5" +T1 0 0 550 500 900 80 N I 21 N "4,7K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 76 "SW0_1" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 45250 22750 2700 15 00200000 3EC4D082 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3EC4D082 +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R2" +T1 0 0 550 500 2700 80 N I 21 N "330" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 49 "N-000041" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 14 "LED1_1" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE R4 +Po 46250 22750 2700 15 00200000 3EC4D082 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3EC4D082 +AR +Op 0 A 0 +T0 0 0 550 500 2700 80 N V 21 N "R3" +T1 0 0 550 500 2700 80 N I 21 N "330" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 48 "N-000040" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 15 "LED2_1" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE LEDV +Po 43250 23750 1800 15 00200000 3EC4D08F ~~ +Li LEDV +Cd Led verticale diam 6mm +Kw LED DEV +Sc 3EC4D08F +AR +Op 0 0 0 +T0 0 -1500 600 600 1800 120 N V 21 N "D2" +T1 0 -1500 600 600 1800 120 N I 21 N "LED" +DC 0 0 -1000 0 120 21 +DS 1000 -250 750 -250 120 21 +DS 750 -250 750 250 120 21 +DS 750 250 1000 250 120 21 +$PAD +Sh "1" R 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 49 "N-000041" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 500 0 +$EndPAD +$SHAPE3D +Na "discret/led5_vertical.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE LEDV +$MODULE LEDV +Po 43250 20750 1800 15 00200000 3EC4D08F ~~ +Li LEDV +Cd Led verticale diam 6mm +Kw LED DEV +Sc 3EC4D08F +AR +Op 0 0 0 +T0 0 -1500 600 600 1800 120 N V 21 N "D3" +T1 0 -1500 600 600 1800 120 N I 21 N "LED" +DC 0 0 -1000 0 120 21 +DS 1000 -250 750 -250 120 21 +DS 750 -250 750 250 120 21 +DS 750 250 1000 250 120 21 +$PAD +Sh "1" R 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 48 "N-000040" +Po -500 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 500 0 +$EndPAD +$SHAPE3D +Na "discret/led5_vertical.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE LEDV +$MODULE bornier2 +Po 73750 24250 2700 15 3EC0ED69 3EC2446D ~~ +Li bornier2 +Cd Bornier d'alimentation 2 pins +Kw DEV +Sc 3EC2446D +AR +Op 0 0 0 +T0 0 -2000 600 600 2700 120 N V 21 N "P3" +T1 0 2000 600 600 2700 120 N V 21 N "CONN_2" +DS 2000 1000 -2000 1000 120 21 +DS 2000 1500 2000 -1500 120 21 +DS 2000 -1500 -2000 -1500 120 21 +DS -2000 -1500 -2000 1500 120 21 +DS -2000 1500 2000 1500 120 21 +$PAD +Sh "1" R 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 45 "N-000013" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 2700 +Dr 600 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "device/bornier_2.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE bornier2 +$MODULE SM1206 +Po 51250 47750 0 0 3E15900A 3EC242AD ~~ +Li SM1206 +Sc 3EC242AD +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 2700 50 M V 20 N "C5" +T1 0 0 300 200 2700 50 M I 20 N "22pF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 52 "N-000085" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 54250 31250 0 0 3E15900A 3EC4C7DB ~~ +Li SM1206 +Sc 3EC4C7DB +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 2700 50 M V 20 N "C8" +T1 0 0 300 200 2700 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 82 "VCC" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 55750 36250 900 0 3E15900A 3EC4C7DB ~~ +Li SM1206 +Sc 3EC4C7DB +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 3600 50 M V 20 N "C10" +T1 0 0 300 200 3600 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 900 +Dr 0 0 0 +At SMD N 00440001 +Ne 82 "VCC" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 900 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 50250 33750 2700 0 3E15900A 3EC4C7DB ~~ +Li SM1206 +Sc 3EC4C7DB +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 5400 50 M V 20 N "C11" +T1 0 0 300 200 5400 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 2700 +Dr 0 0 0 +At SMD N 00440001 +Ne 82 "VCC" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 2700 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 69500 27500 1800 0 3E15900A 3EC4C7DB ~~ +Li SM1206 +Sc 3EC4C7DB +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 4500 50 M V 20 N "C7" +T1 0 0 300 200 4500 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 1800 +Dr 0 0 0 +At SMD N 00440001 +Ne 82 "VCC" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 1800 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 46750 44750 2700 0 3E15900A 3EC4C7DB ~~ +Li SM1206 +Sc 3EC4C7DB +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 5400 50 M V 20 N "C12" +T1 0 0 300 200 5400 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 2700 +Dr 0 0 0 +At SMD N 00440001 +Ne 82 "VCC" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 2700 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 47750 24750 900 0 3E15900A 3EC23ABA ~~ +Li SM1206 +Sc 3EC23ABA +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 3600 50 M V 20 N "C1" +T1 0 0 300 200 3600 50 M I 20 N "100nF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 900 +Dr 0 0 0 +At SMD N 00440001 +Ne 54 "N-000091" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 900 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SM1206 +Po 51250 49750 0 0 3E15900A 3EC242AD ~~ +Li SM1206 +Sc 3EC242AD +AR +Op 0 0 0 +At SMD +T0 0 0 300 200 2700 50 M V 20 N "C4" +T1 0 0 300 200 2700 50 M I 20 N "22pF" +DS -1000 450 -1000 -450 50 20 +DS -1000 -450 -350 -450 50 20 +DS 350 450 1000 450 50 20 +DS 1000 450 1000 -450 50 20 +DS 1000 -450 350 -450 50 20 +DS -350 450 -1000 450 50 20 +$PAD +Sh "1" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 51 "N-000084" +Po -650 0 +$EndPAD +$PAD +Sh "2" R 600 800 0 0 0 +Dr 0 0 0 +At SMD N 00440001 +Ne 13 "GND" +Po 650 0 +$EndPAD +$SHAPE3D +Na "smd/chip_cms.wrl" +Sc 0.170000 0.160000 0.160000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SM1206 +$MODULE SIL-3 +Po 66250 26250 1800 15 00200000 3EC4C49F ~~ +Li SIL-3 +Cd Connecteur 3 pins +Kw CONN DEV +Sc 3EC4C49F +AR +Op 0 0 0 +T0 0 -1000 705 424 1800 106 N V 21 N "K1" +T1 0 -1000 600 400 1800 100 N I 21 N "CONN_3" +DS -1500 500 -1500 -500 120 21 +DS -1500 -500 1500 -500 120 21 +DS 1500 -500 1500 500 120 21 +DS 1500 500 -1500 500 120 21 +DS -500 -500 -500 500 120 21 +$PAD +Sh "1" R 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 50 "N-000078" +Po 0 0 +$EndPAD +$PAD +Sh "3" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 29 "MD14_1" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "pins_array_3x1.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SIL-3 +$MODULE R4 +Po 51250 49750 0 15 00200000 3EC242C1 ~~ +Li R4 +Cd Resitance 4 pas +Kw R +Sc 3EC242C1 +AR +Op 0 A 0 +T0 0 0 550 500 0 80 N V 21 N "R1" +T1 0 0 550 500 0 80 N I 21 N "100K" +DS -2000 0 -1600 0 120 21 +DS -1600 0 -1600 -400 120 21 +DS -1600 -400 1600 -400 120 21 +DS 1600 -400 1600 400 120 21 +DS 1600 400 -1600 400 120 21 +DS -1600 400 -1600 0 120 21 +DS -1600 -200 -1400 -400 120 21 +DS 2000 0 1600 0 120 21 +$PAD +Sh "1" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 51 "N-000084" +Po -2000 0 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 52 "N-000085" +Po 2000 0 +$EndPAD +$SHAPE3D +Na "discret/resistor.wrl" +Sc 0.400000 0.400000 0.400000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE R4 +$MODULE LM78XX +Po 61250 47250 0 15 00200000 3EC2436D ~~ +Li LM78XX +Cd Regulateur TO220 serie LM78xx +Kw TR TO220 +Sc 3EC2436D +AR +Op 0 0 0 +T0 3000 0 600 400 900 80 N V 21 N "U3" +T1 4200 50 600 400 900 80 N V 21 N "LM7805" +DS 0 -1000 2000 -1000 120 21 +DS 0 0 2000 0 120 21 +DS 0 1000 2000 1000 120 21 +DS 2000 -1500 2000 2000 120 21 +DS 2000 2000 8000 2000 120 21 +DS 8000 2000 8000 -2000 120 21 +DS 2000 -1500 2000 -2000 120 21 +DS 5000 1500 5000 -2000 120 21 +DS 5000 1500 5000 2000 120 21 +DS 2000 -2000 8000 -2000 120 21 +$PAD +Sh "4" R 3500 3500 0 0 0 +Dr 1200 0 0 +At STD N 00F0FFFF +Ne 0 "" +Po 6500 0 +$EndPAD +$PAD +Sh "VI" C 700 700 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 1 "+12V" +Po 0 -1000 +$EndPAD +$PAD +Sh "GND" R 700 700 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 0 0 +$EndPAD +$PAD +Sh "VO" C 700 700 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po 0 1000 +$EndPAD +$SHAPE3D +Na "discret/to220_horiz.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE LM78XX +$MODULE HC-18UH +Po 47750 48750 2700 15 00200000 3EC2428D ~~ +Li HC-18UH +Cd Quartz boitier HC-18 horizontal +Kw QUARTZ DEV +Sc 3EC2428D +AR +Op 0 0 0 +T0 0 2500 600 600 2700 120 N V 21 N "X1" +T1 0 4500 600 600 2700 120 N V 21 N "10MHz" +DS 2500 1100 -2500 1100 120 21 +DS 2300 1100 2300 6000 120 21 +DS -2500 1100 -2500 800 120 21 +DS 2500 1100 2500 800 120 21 +DS 2500 800 -2500 800 120 21 +DS -1000 0 -1000 800 120 21 +DS 1000 0 1000 800 120 21 +DS -2300 1100 -2300 6000 120 21 +DS 2300 6000 2100 6200 120 21 +DS 2100 6200 -2100 6200 120 21 +DS -2100 6200 -2300 6000 120 21 +$PAD +Sh "1" C 700 700 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 52 "N-000085" +Po -1000 0 +$EndPAD +$PAD +Sh "2" C 700 700 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 51 "N-000084" +Po 1000 0 +$EndPAD +$SHAPE3D +Na "discret/crystal_hc18u_horizontal.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE HC-18UH +$MODULE DB25FC +Po 39750 34750 900 15 00200000 3EC4C60F ~~ +Li DB25FC +Cd Connecteur DB25 femelle couche +Kw CONN DB25 +Sc 3EC4C60F +AR +Op 0 0 0 +T0 0 -6000 600 600 900 120 N V 21 N "J1" +T1 0 -2500 600 600 900 120 N V 21 N "DB25" +DS 10500 -4500 10500 1000 120 21 +DS 7500 -2500 7500 1000 120 21 +DS 8250 -4500 8250 -2500 120 21 +DS -8250 -4500 -8250 -2500 120 21 +DS -7500 -2500 -7500 1000 120 21 +DS -10500 1000 -10500 -4500 120 21 +DS 10500 -2500 7500 -2500 120 21 +DS -10500 -2500 -7500 -2500 120 21 +DS 8000 -3250 8000 -4500 120 21 +DS -8000 -3250 -8000 -4500 120 21 +DS 8000 -7250 8000 -5000 120 21 +DS -8000 -7250 -8000 -5000 120 21 +DS 10500 -4500 10500 -5000 120 21 +DS 10500 -5000 -10500 -5000 120 21 +DS -10500 -5000 -10500 -4500 120 21 +DS -10500 -4500 10500 -4500 120 21 +DS 7500 1000 10500 1000 120 21 +DS -8000 -3250 8000 -3250 120 21 +DS -8000 -7250 8000 -7250 120 21 +DS -10500 1000 -7500 1000 120 21 +$PAD +Sh "" C 1500 1500 0 0 900 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 9250 -500 +$EndPAD +$PAD +Sh "" C 1500 1500 0 0 900 +Dr 1200 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -9250 -500 +$EndPAD +$PAD +Sh "1" R 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 64 "PAR_AUX0_X00001" +Po -6500 500 +$EndPAD +$PAD +Sh "2" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 56 "PARBUS0_1" +Po -5400 500 +$EndPAD +$PAD +Sh "3" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 57 "PARBUS1_1" +Po -4350 500 +$EndPAD +$PAD +Sh "4" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 58 "PARBUS2_1" +Po -3250 500 +$EndPAD +$PAD +Sh "5" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 59 "PARBUS3_1" +Po -2150 500 +$EndPAD +$PAD +Sh "6" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 60 "PARBUS4_1" +Po -1050 500 +$EndPAD +$PAD +Sh "7" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 61 "PARBUS5_1" +Po 0 500 +$EndPAD +$PAD +Sh "8" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 62 "PARBUS6_1" +Po 1100 500 +$EndPAD +$PAD +Sh "9" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 63 "PARBUS7_1" +Po 2200 500 +$EndPAD +$PAD +Sh "10" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 70 "PAR_AUX6/ACK_1" +Po 3300 500 +$EndPAD +$PAD +Sh "11" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 69 "PAR_AUX5/BUSY*_1" +Po 4350 500 +$EndPAD +$PAD +Sh "12" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 68 "PAR_AUX4/PE_1" +Po 5450 500 +$EndPAD +$PAD +Sh "13" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 67 "PAR_AUX3_X00002" +Po 6550 500 +$EndPAD +$PAD +Sh "14" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 66 "PAR_AUX2_X00003" +Po -5880 -500 +$EndPAD +$PAD +Sh "15" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 65 "PAR_AUX1_X00004" +Po -4880 -500 +$EndPAD +$PAD +Sh "16" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 71 "PAR_AUX7/INIT_1" +Po -3780 -500 +$EndPAD +$PAD +Sh "17" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 72 "PAR_AUX8_X00005" +Po -2700 -500 +$EndPAD +$PAD +Sh "18" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -1620 -500 +$EndPAD +$PAD +Sh "19" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -520 -500 +$EndPAD +$PAD +Sh "20" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 560 -500 +$EndPAD +$PAD +Sh "21" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 1640 -500 +$EndPAD +$PAD +Sh "22" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2760 -500 +$EndPAD +$PAD +Sh "23" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 3820 -500 +$EndPAD +$PAD +Sh "24" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 4900 -500 +$EndPAD +$PAD +Sh "25" C 600 600 0 0 900 +Dr 400 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 6000 -500 +$EndPAD +$SHAPE3D +Na "conn_DBxx/db25_female_pin90deg.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE DB25FC +$MODULE D5 +Po 73250 44250 1800 15 00200000 3EC243C8 ~~ +Li D5 +Cd Diode 5 pas +Kw DIODE DEV +Sc 3EC243C8 +AR +Op 0 0 0 +T0 0 0 600 400 1800 100 N V 21 N "D1" +T1 -100 0 600 400 1800 100 N I 21 N "1N4004" +DS 2500 0 2000 0 120 21 +DS 2000 0 2000 -500 120 21 +DS 2000 -500 -2000 -500 120 21 +DS -2000 -500 -2000 0 120 21 +DS -2000 0 -2500 0 120 21 +DS -2000 0 -2000 500 120 21 +DS -2000 500 2000 500 120 21 +DS 2000 500 2000 0 120 21 +DS 1500 -500 1500 500 120 21 +DS 1600 -500 1600 500 120 21 +$PAD +Sh "1" C 700 700 0 0 1800 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 40 "N-000003" +Po -2500 0 +$EndPAD +$PAD +Sh "2" R 700 700 0 0 1800 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 1 "+12V" +Po 2500 0 +$EndPAD +$SHAPE3D +Na "discret/diode.wrl" +Sc 0.500000 0.500000 0.500000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE D5 +$MODULE CP6 +Po 54000 21250 0 15 00200000 3EC23B98 ~~ +Li CP6 +Cd Condensateur polarise +Kw CP +Sc 3EC23B98 +AR +Op 0 0 0 +T0 0 0 600 600 0 120 N V 21 N "C2" +T1 250 0 600 600 0 120 N I 21 N "10uF" +DS -3000 0 -2600 0 120 21 +DS -2400 200 -2600 200 120 21 +DS -2600 200 -2600 -200 120 21 +DS -2600 -200 -2400 -200 120 21 +DS 3000 0 2600 0 120 21 +DS 2600 0 2600 -600 120 21 +DS 2600 -600 -2400 -600 120 21 +DS -2400 -600 -2400 600 120 21 +DS -2400 600 2600 600 120 21 +DS 2600 600 2600 0 120 21 +$PAD +Sh "1" R 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 53 "N-000090" +Po -3000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 46 "N-000014" +Po 3000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.600000 0.600000 0.600000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP6 +$MODULE CP6 +Po 61500 42000 1800 15 00200000 3EC243D6 ~~ +Li CP6 +Cd Condensateur polarise +Kw CP +Sc 3EC243D6 +AR +Op 0 0 0 +T0 0 0 600 600 1800 120 N V 21 N "C6" +T1 250 0 600 600 1800 120 N I 21 N "47uF" +DS -3000 0 -2600 0 120 21 +DS -2400 200 -2600 200 120 21 +DS -2600 200 -2600 -200 120 21 +DS -2600 -200 -2400 -200 120 21 +DS 3000 0 2600 0 120 21 +DS 2600 0 2600 -600 120 21 +DS 2600 -600 -2400 -600 120 21 +DS -2400 -600 -2400 600 120 21 +DS -2400 600 2600 600 120 21 +DS 2600 600 2600 0 120 21 +$PAD +Sh "1" R 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 1 "+12V" +Po -3000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 1800 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 3000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.600000 0.600000 0.600000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP6 +$MODULE CP6 +Po 74250 35000 2700 15 00200000 3EC23DCD ~~ +Li CP6 +Cd Condensateur polarise +Kw CP +Sc 3EC23DCD +AR +Op 0 0 0 +T0 0 0 600 600 2700 120 N V 21 N "C3" +T1 250 0 600 600 2700 120 N I 21 N "10uF" +DS -3000 0 -2600 0 120 21 +DS -2400 200 -2600 200 120 21 +DS -2600 200 -2600 -200 120 21 +DS -2600 -200 -2400 -200 120 21 +DS 3000 0 2600 0 120 21 +DS 2600 0 2600 -600 120 21 +DS 2600 -600 -2400 -600 120 21 +DS -2400 -600 -2400 600 120 21 +DS -2400 600 2600 600 120 21 +DS 2600 600 2600 0 120 21 +$PAD +Sh "1" R 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -3000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 2700 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 3000 0 +$EndPAD +$SHAPE3D +Na "discret/c_pol.wrl" +Sc 0.600000 0.600000 0.600000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE CP6 +$MODULE 16DIP-ELL300 +Po 52250 24250 0 15 00200000 3EC238E5 ~~ +Li 16DIP-ELL300 +Cd Module Dil 16 pins, pads elliptiques +Kw DIL +Sc 3EC238E5 +AR +Op 0 0 0 +T0 -2500 -500 600 450 0 113 N V 21 N "U1" +T1 500 500 600 450 0 113 N V 21 N "TDA8702" +DS -4500 -500 -4500 -500 150 21 +DS -4500 -500 -4000 -500 150 21 +DS -4000 -500 -4000 500 150 21 +DS -4000 500 -4500 500 150 21 +DS -4500 -1000 4500 -1000 150 21 +DS 4500 -1000 4500 1000 150 21 +DS 4500 1000 -4500 1000 150 21 +DS -4500 1000 -4500 -1000 150 21 +$PAD +Sh "1" R 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 54 "N-000091" +Po -3500 1500 +$EndPAD +$PAD +Sh "2" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -2500 1500 +$EndPAD +$PAD +Sh "3" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 6 "DAT2_1" +Po -1500 1500 +$EndPAD +$PAD +Sh "4" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 7 "DAT3_1" +Po -500 1500 +$EndPAD +$PAD +Sh "5" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 12 "DCLK_1" +Po 500 1500 +$EndPAD +$PAD +Sh "6" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 1500 1500 +$EndPAD +$PAD +Sh "7" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 11 "DAT7_1" +Po 2500 1500 +$EndPAD +$PAD +Sh "8" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 10 "DAT6_1" +Po 3500 1500 +$EndPAD +$PAD +Sh "9" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "DAT5_1" +Po 3500 -1500 +$EndPAD +$PAD +Sh "10" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 8 "DAT4_1" +Po 2500 -1500 +$EndPAD +$PAD +Sh "11" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 5 "DAT1_1" +Po 1500 -1500 +$EndPAD +$PAD +Sh "12" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 4 "DAT0_1" +Po 500 -1500 +$EndPAD +$PAD +Sh "13" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -500 -1500 +$EndPAD +$PAD +Sh "14" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 53 "N-000090" +Po -1500 -1500 +$EndPAD +$PAD +Sh "15" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 47 "N-000015" +Po -2500 -1500 +$EndPAD +$PAD +Sh "16" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -3500 -1500 +$EndPAD +$SHAPE3D +Na "dil/dil_16.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE 16DIP-ELL300 +$MODULE 14DIP-ELL300 +Po 51750 44750 0 15 00200000 3EC4C318 ~~ +Li 14DIP-ELL300 +Cd Module Dil 14 pins, pads elliptiques +Kw DIL +Sc 3EC4C318 +AR +Op 0 0 0 +T0 -2000 -500 600 450 0 113 N V 21 N "U4" +T1 500 500 600 450 0 113 N V 21 N "74HC04" +DS -4000 -1000 4000 -1000 150 21 +DS 4000 1000 -4000 1000 150 21 +DS -4000 1000 -4000 -1000 150 21 +DS -4000 -500 -3500 -500 150 21 +DS -3500 -500 -3500 500 150 21 +DS -3500 500 -4000 500 150 21 +DS 4000 -1000 4000 1000 150 21 +$PAD +Sh "1" R 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 52 "N-000085" +Po -3000 1500 +$EndPAD +$PAD +Sh "2" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 51 "N-000084" +Po -2000 1500 +$EndPAD +$PAD +Sh "3" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 51 "N-000084" +Po -1000 1500 +$EndPAD +$PAD +Sh "4" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 83 "XIN/CLK_1" +Po 0 1500 +$EndPAD +$PAD +Sh "5" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 1000 1500 +$EndPAD +$PAD +Sh "6" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 2000 1500 +$EndPAD +$PAD +Sh "7" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 3000 1500 +$EndPAD +$PAD +Sh "8" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 3000 -1500 +$EndPAD +$PAD +Sh "9" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 -1500 +$EndPAD +$PAD +Sh "10" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 1000 -1500 +$EndPAD +$PAD +Sh "11" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 0 -1500 +$EndPAD +$PAD +Sh "12" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -1000 -1500 +$EndPAD +$PAD +Sh "13" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -2000 -1500 +$EndPAD +$PAD +Sh "14" O 620 900 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -3000 -1500 +$EndPAD +$SHAPE3D +Na "dil/dil_14.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE 14DIP-ELL300 +$MODULE PLCC84 +Po 53250 34250 0 15 00200000 3EC230AD ~~ +Li PLCC84 +Cd Support Plcc 84 pins, pads ronds +Kw PLCC +Sc 3EC230AD +AR +Op 0 0 0 +T0 0 -1000 1314 767 0 120 N V 21 N "U2" +T1 0 1500 1144 668 0 120 N V 21 N "XC95108PC84" +DS -4000 2500 -3000 4000 150 21 +DS -3000 4000 4000 4000 150 21 +DS 4000 4000 4000 -4000 150 21 +DS 4000 -4000 -4000 -4000 150 21 +DS -6500 -6500 -6500 6500 150 21 +DS -6500 6500 6500 6500 150 21 +DS 6500 6500 6500 -6500 150 21 +DS 6500 -6500 -6500 -6500 150 21 +DS -4000 -4000 -4000 2500 150 21 +$PAD +Sh "1" R 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 73 "PIN_TEST0_1" +Po -6000 0 +$EndPAD +$PAD +Sh "2" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 74 "PIN_TEST1_1" +Po -5000 0 +$EndPAD +$PAD +Sh "3" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 59 "PARBUS3_1" +Po -6000 1000 +$EndPAD +$PAD +Sh "4" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 72 "PAR_AUX8_X00005" +Po -5000 1000 +$EndPAD +$PAD +Sh "5" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 58 "PARBUS2_1" +Po -6000 2000 +$EndPAD +$PAD +Sh "6" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 71 "PAR_AUX7/INIT_1" +Po -5000 2000 +$EndPAD +$PAD +Sh "7" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 57 "PARBUS1_1" +Po -6000 3000 +$EndPAD +$PAD +Sh "8" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -5000 3000 +$EndPAD +$PAD +Sh "9" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 65 "PAR_AUX1_X00004" +Po -6000 4000 +$EndPAD +$PAD +Sh "10" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 56 "PARBUS0_1" +Po -5000 4000 +$EndPAD +$PAD +Sh "11" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 66 "PAR_AUX2_X00003" +Po -6000 5000 +$EndPAD +$PAD +Sh "12" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 83 "XIN/CLK_1" +Po -5000 6000 +$EndPAD +$PAD +Sh "13" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 64 "PAR_AUX0_X00001" +Po -5000 5000 +$EndPAD +$PAD +Sh "14" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -4000 6000 +$EndPAD +$PAD +Sh "15" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -4000 5000 +$EndPAD +$PAD +Sh "16" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po -3000 6000 +$EndPAD +$PAD +Sh "17" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -3000 5000 +$EndPAD +$PAD +Sh "18" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -2000 6000 +$EndPAD +$PAD +Sh "19" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -2000 5000 +$EndPAD +$PAD +Sh "20" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -1000 6000 +$EndPAD +$PAD +Sh "21" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -1000 5000 +$EndPAD +$PAD +Sh "22" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po 0 6000 +$EndPAD +$PAD +Sh "23" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 5000 +$EndPAD +$PAD +Sh "24" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 20 "MA4_1" +Po 1000 6000 +$EndPAD +$PAD +Sh "25" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 19 "MA3_1" +Po 1000 5000 +$EndPAD +$PAD +Sh "26" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 18 "MA2_1" +Po 2000 6000 +$EndPAD +$PAD +Sh "27" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 5000 +$EndPAD +$PAD +Sh "28" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 79 "TDI_1" +Po 3000 6000 +$EndPAD +$PAD +Sh "29" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 81 "TMS_1" +Po 3000 5000 +$EndPAD +$PAD +Sh "30" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 78 "TCK_1" +Po 4000 6000 +$EndPAD +$PAD +Sh "31" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 21 "MA5_1" +Po 4000 5000 +$EndPAD +$PAD +Sh "32" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 17 "MA1_1" +Po 5000 6000 +$EndPAD +$PAD +Sh "33" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 16 "MA0_1" +Po 6000 5000 +$EndPAD +$PAD +Sh "34" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 22 "MA6_1" +Po 5000 5000 +$EndPAD +$PAD +Sh "35" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 24 "MD0_1" +Po 6000 4000 +$EndPAD +$PAD +Sh "36" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 23 "MA7_1" +Po 5000 4000 +$EndPAD +$PAD +Sh "37" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 30 "MD1_1" +Po 6000 3000 +$EndPAD +$PAD +Sh "38" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po 5000 3000 +$EndPAD +$PAD +Sh "39" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 3 "CSMEM_1" +Po 6000 2000 +$EndPAD +$PAD +Sh "40" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 31 "MD2_1" +Po 5000 2000 +$EndPAD +$PAD +Sh "41" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 25 "MD10_1" +Po 6000 1000 +$EndPAD +$PAD +Sh "42" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 5000 1000 +$EndPAD +$PAD +Sh "43" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 55 "OEMEM_1" +Po 6000 0 +$EndPAD +$PAD +Sh "44" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 32 "MD3_1" +Po 5000 0 +$EndPAD +$PAD +Sh "45" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 26 "MD11_1" +Po 6000 -1000 +$EndPAD +$PAD +Sh "46" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 33 "MD4_1" +Po 5000 -1000 +$EndPAD +$PAD +Sh "47" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 38 "MD9_1" +Po 6000 -2000 +$EndPAD +$PAD +Sh "48" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 34 "MD5_1" +Po 5000 -2000 +$EndPAD +$PAD +Sh "49" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 6000 -3000 +$EndPAD +$PAD +Sh "50" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 35 "MD6_1" +Po 5000 -3000 +$EndPAD +$PAD +Sh "51" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 37 "MD8_1" +Po 6000 -4000 +$EndPAD +$PAD +Sh "52" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 36 "MD7_1" +Po 5000 -4000 +$EndPAD +$PAD +Sh "53" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 28 "MD13_1" +Po 6000 -5000 +$EndPAD +$PAD +Sh "54" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 75 "R/W-A14_1" +Po 5000 -6000 +$EndPAD +$PAD +Sh "55" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 27 "MD12_1" +Po 5000 -5000 +$EndPAD +$PAD +Sh "56" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 29 "MD14_1" +Po 4000 -6000 +$EndPAD +$PAD +Sh "57" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 4000 -5000 +$EndPAD +$PAD +Sh "58" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 10 "DAT6_1" +Po 3000 -6000 +$EndPAD +$PAD +Sh "59" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 80 "TDO_1" +Po 3000 -5000 +$EndPAD +$PAD +Sh "60" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 -6000 +$EndPAD +$PAD +Sh "61" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 9 "DAT5_1" +Po 2000 -5000 +$EndPAD +$PAD +Sh "62" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 11 "DAT7_1" +Po 1000 -6000 +$EndPAD +$PAD +Sh "63" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 8 "DAT4_1" +Po 1000 -5000 +$EndPAD +$PAD +Sh "64" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po 0 -6000 +$EndPAD +$PAD +Sh "65" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 -5000 +$EndPAD +$PAD +Sh "66" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 5 "DAT1_1" +Po -1000 -6000 +$EndPAD +$PAD +Sh "67" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 12 "DCLK_1" +Po -1000 -5000 +$EndPAD +$PAD +Sh "68" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 7 "DAT3_1" +Po -2000 -6000 +$EndPAD +$PAD +Sh "69" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 4 "DAT0_1" +Po -2000 -5000 +$EndPAD +$PAD +Sh "70" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 6 "DAT2_1" +Po -3000 -6000 +$EndPAD +$PAD +Sh "71" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 77 "SW1_1" +Po -3000 -5000 +$EndPAD +$PAD +Sh "72" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 76 "SW0_1" +Po -4000 -6000 +$EndPAD +$PAD +Sh "73" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -4000 -5000 +$EndPAD +$PAD +Sh "74" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 15 "LED2_1" +Po -5000 -6000 +$EndPAD +$PAD +Sh "75" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 67 "PAR_AUX3_X00002" +Po -6000 -5000 +$EndPAD +$PAD +Sh "76" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 14 "LED1_1" +Po -5000 -5000 +$EndPAD +$PAD +Sh "77" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 68 "PAR_AUX4/PE_1" +Po -6000 -4000 +$EndPAD +$PAD +Sh "78" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 82 "VCC" +Po -5000 -4000 +$EndPAD +$PAD +Sh "79" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 70 "PAR_AUX6/ACK_1" +Po -6000 -3000 +$EndPAD +$PAD +Sh "80" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 69 "PAR_AUX5/BUSY*_1" +Po -5000 -3000 +$EndPAD +$PAD +Sh "81" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 62 "PARBUS6_1" +Po -6000 -2000 +$EndPAD +$PAD +Sh "82" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 63 "PARBUS7_1" +Po -5000 -2000 +$EndPAD +$PAD +Sh "83" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 61 "PARBUS5_1" +Po -6000 -1000 +$EndPAD +$PAD +Sh "84" C 550 550 0 0 0 +Dr 320 0 0 +At STD N 00E0FFFF +Ne 60 "PARBUS4_1" +Po -5000 -1000 +$EndPAD +$SHAPE3D +Na "support/supp_plcc84.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE PLCC84 +$MODULE SW_PUSH +Po 68250 21250 0 15 3F9504DA 3EC8B882 ~~ +Li SW_PUSH +Cd Bouton poussoir +Kw SWITCH DEV +Sc 3EC8B882 +AR +Op 0 A 0 +T0 500 -2000 500 500 0 100 N V 21 N "SW2" +T1 0 0 500 500 0 100 N V 21 N "SW_PUSH" +DS 2500 -2250 2500 2250 80 21 +DS 2500 2250 2250 2500 80 21 +DS 2250 2500 -2250 2500 80 21 +DS -2250 2500 -2500 2250 80 21 +DS -2500 2250 -2500 -2250 80 21 +DS -2250 -2500 2250 -2500 80 21 +DS 2250 -2500 2500 -2250 80 21 +DS -2500 -2250 -2250 -2500 80 21 +$PAD +Sh "1" C 1000 1000 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 77 "SW1_1" +Po -2000 -1000 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 1000 +$EndPAD +$SHAPE3D +Na "device/switch_push.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SW_PUSH +$MODULE SW_PUSH +Po 62750 21250 0 15 3F9504DA 3EC8B876 ~~ +Li SW_PUSH +Cd Bouton poussoir +Kw SWITCH DEV +Sc 3EC8B876 +AR +Op 0 A 0 +T0 500 -2000 500 500 0 100 N V 21 N "SW1" +T1 0 0 500 500 0 100 N V 21 N "SW_PUSH" +DS 2500 -2250 2500 2250 80 21 +DS 2500 2250 2250 2500 80 21 +DS 2250 2500 -2250 2500 80 21 +DS -2250 2500 -2500 2250 80 21 +DS -2500 2250 -2500 -2250 80 21 +DS -2250 -2500 2250 -2500 80 21 +DS 2250 -2500 2500 -2250 80 21 +DS -2500 -2250 -2250 -2500 80 21 +$PAD +Sh "1" C 1000 1000 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 76 "SW0_1" +Po -2000 -1000 +$EndPAD +$PAD +Sh "2" C 1000 1000 0 0 0 +Dr 450 0 0 +At STD N 00E0FFFF +Ne 13 "GND" +Po 2000 1000 +$EndPAD +$SHAPE3D +Na "device/switch_push.wrl" +Sc 1.000000 1.000000 1.000000 +Of 0.000000 0.000000 0.000000 +Ro 0.000000 0.000000 0.000000 +$EndSHAPE3D +$EndMODULE SW_PUSH +$TEXTPCB +Te "ROM" +Po 69500 26500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "XILINX XC95108PC84" +Po 44750 52750 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "CARTE TEST" +Po 42250 51750 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$DRAWSEGMENT +Po 0 63250 53500 75750 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 37250 53500 57000 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 37250 14250 37250 18250 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 77250 14250 37250 14250 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 77250 14750 77250 14250 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 77250 53500 76750 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 77250 14750 77250 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 75750 53500 76750 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 37250 52750 37250 53500 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$TEXTPCB +Te "XILINX XC95108" +Po 42750 52750 600 600 120 0 +De 0 0 0 Normal C +$EndTEXTPCB +$DRAWSEGMENT +Po 0 37250 52250 37250 52750 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$TEXTPCB +Te "PIN2" +Po 44500 36500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "PIN1" +Po 44500 32500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "TMS" +Po 63250 51500 600 600 120 900 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "TCK" +Po 61500 50000 600 600 120 900 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "TDI" +Po 60250 50000 600 500 120 900 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "TDO" +Po 59000 49250 600 600 120 900 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "GND" +Po 56250 51750 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "VCC" +Po 57000 50750 600 600 120 900 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "CARTE TEST" +Po 41250 51750 600 600 120 0 +De 0 0 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "VOUT" +Po 73750 21500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "GND" +Po 73750 27000 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "+12V" +Po 71000 46750 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "GND" +Po 70750 49500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$TEXTPCB +Te "RAM" +Po 63500 26500 600 600 120 0 +De 15 1 0 Normal C +$EndTEXTPCB +$DRAWSEGMENT +Po 0 37250 18250 37250 21250 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$DRAWSEGMENT +Po 0 37250 21250 37250 52250 120 +De 28 0 900 0 0 +$EndDRAWSEGMENT +$TRACK +Po 0 51750 16500 49250 16500 400 -1 +De 15 0 1 0 0 +Po 0 63000 23250 62750 23000 400 -1 +De 15 0 1 0 0 +Po 0 61250 44750 61250 46250 400 -1 +De 0 0 1 0 400 +Po 0 62500 15750 52500 15750 400 -1 +De 15 0 1 0 0 +Po 0 62750 23000 62750 16000 400 -1 +De 15 0 1 0 0 +Po 0 62750 16000 62500 15750 400 -1 +De 15 0 1 0 0 +Po 0 66750 44250 64500 44250 400 -1 +De 0 0 1 0 0 +Po 0 68500 23250 63000 23250 400 -1 +De 15 0 1 0 0 +Po 0 52500 15750 51750 16500 400 -1 +De 15 0 1 0 0 +Po 0 64500 42000 64500 44250 400 -1 +De 0 0 1 0 800 +Po 0 70750 44250 70750 43500 400 -1 +De 15 0 1 0 800 +Po 0 49250 16500 49000 16250 400 -1 +De 15 0 1 0 0 +Po 0 49000 16250 49000 15500 400 -1 +De 15 0 1 0 400 +Po 0 73500 42250 73500 28250 400 -1 +De 15 0 1 0 0 +Po 0 73500 28250 73000 27750 400 -1 +De 15 0 1 0 0 +Po 0 64500 44250 61750 44250 400 -1 +De 0 0 1 0 0 +Po 0 73000 42750 73500 42250 400 -1 +De 15 0 1 0 0 +Po 0 66750 44250 70750 44250 400 -1 +De 0 0 1 0 400 +Po 0 70750 43500 72250 43500 400 -1 +De 15 0 1 0 0 +Po 0 72250 43500 73000 42750 400 -1 +De 15 0 1 0 0 +Po 0 61750 44250 61250 44750 400 -1 +De 0 0 1 0 0 +Po 0 73000 27750 68500 23250 400 -1 +De 15 0 1 0 0 +Po 0 76500 37250 76500 19500 400 -1 +De 0 0 2 0 800 +Po 0 51000 18500 51750 18500 400 -1 +De 0 0 2 0 800 +Po 0 68750 18250 75250 18250 400 -1 +De 0 0 2 0 0 +Po 0 63000 17250 64000 16250 400 -1 +De 0 0 2 0 0 +Po 0 66750 16250 68750 18250 400 -1 +De 0 0 2 0 0 +Po 0 58750 17250 59750 17250 400 -1 +De 0 0 2 0 400 +Po 0 59750 17250 63000 17250 400 -1 +De 0 0 2 0 800 +Po 0 54500 19250 55750 18000 400 -1 +De 0 0 2 0 0 +Po 0 76500 19500 75500 18500 400 -1 +De 0 0 2 0 0 +Po 0 52500 19250 54500 19250 400 -1 +De 0 0 2 0 0 +Po 0 55750 18000 55750 17250 400 -1 +De 0 0 2 0 0 +Po 0 56000 17000 58500 17000 170 -1 +De 0 0 2 0 0 +Po 0 58500 17000 58750 17250 400 -1 +De 0 0 2 0 0 +Po 0 55750 17250 56000 17000 400 -1 +De 0 0 2 0 0 +Po 0 75250 18250 75500 18500 400 -1 +De 0 0 2 0 0 +Po 0 51750 18500 52500 19250 400 -1 +De 0 0 2 0 0 +Po 0 64000 16250 66750 16250 400 -1 +De 0 0 2 0 0 +Po 0 71250 36750 69250 36750 170 -1 +De 0 0 3 0 400 +Po 0 59250 36250 67750 36250 170 -1 +De 0 0 3 0 800 +Po 0 69250 36750 68250 36750 170 -1 +De 0 0 3 0 800 +Po 0 71250 36750 72250 36750 170 -1 +De 0 0 3 0 400 +Po 0 68250 36750 67750 36250 170 -1 +De 0 0 3 0 0 +Po 0 51250 24750 51750 24250 170 -1 +De 0 0 4 0 0 +Po 0 50750 27250 51250 26750 170 -1 +De 0 0 4 0 0 +Po 0 51750 24250 52500 24250 170 -1 +De 0 0 4 0 0 +Po 0 50750 28750 50750 27250 170 -1 +De 0 0 4 0 0 +Po 0 52500 24250 52750 24000 170 -1 +De 0 0 4 0 0 +Po 0 52750 24000 52750 22750 170 -1 +De 0 0 4 0 400 +Po 0 51250 29250 50750 28750 170 -1 +De 0 0 4 0 800 +Po 0 51250 26750 51250 24750 170 -1 +De 0 0 4 0 0 +Po 0 53250 24250 53250 26250 170 -1 +De 0 0 5 0 0 +Po 0 52250 27250 52250 28250 170 -1 +De 0 0 5 0 400 +Po 0 52250 27250 53250 26250 170 -1 +De 0 0 5 0 0 +Po 0 53750 22750 53750 23750 170 -1 +De 0 0 5 0 800 +Po 0 53250 24250 53750 23750 170 -1 +De 0 0 5 0 0 +Po 0 50250 27250 50250 28250 170 -1 +De 0 0 6 0 400 +Po 0 50750 26750 50250 27250 170 -1 +De 0 0 6 0 0 +Po 0 50750 25750 50750 26750 170 -1 +De 0 0 6 0 800 +Po 0 51250 27250 51750 26750 170 -1 +De 0 0 7 0 0 +Po 0 51750 26750 51750 25750 170 -1 +De 0 0 7 0 400 +Po 0 51250 28250 51250 27250 170 -1 +De 0 0 7 0 800 +Po 0 54750 22750 54750 23750 170 -1 +De 0 0 8 0 800 +Po 0 53750 28000 54250 27500 170 -1 +De 0 0 8 0 0 +Po 0 53750 28000 53750 28750 170 -1 +De 0 0 8 0 0 +Po 0 54250 27500 54250 24250 170 -1 +De 0 0 8 0 0 +Po 0 54750 23750 54250 24250 170 -1 +De 0 0 8 0 0 +Po 0 53750 28750 54250 29250 170 -1 +De 0 0 8 0 400 +Po 0 55250 24250 55250 26250 170 -1 +De 0 0 9 0 0 +Po 0 55750 23750 55250 24250 170 -1 +De 0 0 9 0 0 +Po 0 55750 26750 55250 26250 170 -1 +De 0 0 9 0 0 +Po 0 55750 28750 55750 26750 170 -1 +De 0 0 9 0 0 +Po 0 55250 29250 55750 28750 170 -1 +De 0 0 9 0 800 +Po 0 55750 22750 55750 23750 170 -1 +De 0 0 9 0 800 +Po 0 56250 28250 56250 26000 170 -1 +De 0 0 10 0 800 +Po 0 56250 26000 56000 25750 170 -1 +De 0 0 10 0 0 +Po 0 56000 25750 55750 25750 170 -1 +De 0 0 10 0 400 +Po 0 54750 27750 54250 28250 170 -1 +De 0 0 11 0 400 +Po 0 54750 25750 54750 27750 170 -1 +De 0 0 11 0 800 +Po 0 52750 26250 52750 25750 170 -1 +De 0 0 12 0 400 +Po 0 51750 27250 52750 26250 170 -1 +De 0 0 12 0 0 +Po 0 51750 28750 51750 27250 170 -1 +De 0 0 12 0 0 +Po 0 52250 29250 51750 28750 170 -1 +De 0 0 12 0 800 +Po 0 50000 37250 49750 37250 400 -1 +De 0 0 13 0 0 +Po 0 49750 37250 48250 37250 400 -1 +De 0 0 13 0 400 +Po 0 39250 34190 38500 34190 400 -1 +De 0 0 13 0 800 +Po 0 38500 28750 39250 28750 400 -1 +De 0 0 13 0 400 +Po 0 38250 29000 38500 28750 400 -1 +De 0 0 13 0 0 +Po 0 38250 33940 38250 34000 400 -1 +De 0 0 13 0 0 +Po 0 38250 34000 38250 33000 400 -1 +De 0 0 13 0 0 +Po 0 38250 33000 38250 32000 400 -1 +De 0 0 13 0 0 +Po 0 58000 23250 64500 23250 400 -1 +De 0 0 13 0 0 +Po 0 64500 23250 64750 23000 400 -1 +De 0 0 13 0 0 +Po 0 64750 23000 64750 22250 400 -1 +De 0 0 13 0 400 +Po 0 53750 25750 53750 24250 250 -1 +De 0 0 13 0 800 +Po 0 49750 26750 52250 26750 400 -1 +De 15 0 13 0 0 +Po 0 55750 35600 55750 35250 400 -1 +De 0 0 13 0 800 +Po 0 52500 27000 53500 27000 400 -1 +De 15 0 13 0 0 +Po 3 53500 27000 53500 27000 650 -1 +De 15 1 13 0 0 +Po 0 53500 27000 53750 26750 400 -1 +De 0 0 13 0 0 +Po 0 52250 26750 52500 27000 400 -1 +De 15 0 13 0 0 +Po 0 53750 43250 54750 42250 250 -1 +De 0 0 13 0 800 +Po 0 47750 24100 48750 24100 400 -1 +De 0 0 13 0 800 +Po 0 49750 25100 49750 25750 400 -1 +De 0 0 13 0 400 +Po 0 48750 24100 49750 25100 400 -1 +De 0 0 13 0 0 +Po 0 64750 22250 67500 22250 400 -1 +De 0 0 13 0 800 +Po 0 53750 44000 53750 43250 400 -1 +De 0 0 13 0 400 +Po 0 53500 44250 53750 44000 400 -1 +De 0 0 13 0 0 +Po 0 52250 44250 53250 44250 400 -1 +De 0 0 13 0 0 +Po 0 53250 44250 53500 44250 400 -1 +De 0 0 13 0 0 +Po 0 53250 44250 53250 45250 400 -1 +De 0 0 13 0 0 +Po 0 49750 44650 49750 44250 400 -1 +De 0 0 13 0 0 +Po 0 52000 44250 52250 44250 400 -1 +De 0 0 13 0 0 +Po 0 51750 44000 52000 44250 400 -1 +De 0 0 13 0 0 +Po 0 51750 43250 51750 44000 400 -1 +De 0 0 13 0 800 +Po 0 49750 44250 49750 43250 400 -1 +De 0 0 13 0 400 +Po 0 54750 39750 54750 42250 170 -1 +De 0 0 13 0 0 +Po 0 55250 39250 54750 39750 400 -1 +De 0 0 13 0 800 +Po 0 51900 49750 51900 47750 400 -1 +De 0 0 13 0 C00 +Po 0 52500 47750 52750 47500 400 -1 +De 0 0 13 0 0 +Po 0 52750 47500 52750 46250 400 -1 +De 0 0 13 0 400 +Po 0 51900 47750 52500 47750 400 -1 +De 0 0 13 0 800 +Po 0 47250 44900 49500 44900 250 -1 +De 0 0 13 0 0 +Po 0 49500 44900 49750 44650 250 -1 +De 0 0 13 0 0 +Po 0 50250 34400 50250 37000 400 -1 +De 0 0 13 0 800 +Po 0 50250 37000 50000 37250 400 -1 +De 0 0 13 0 0 +Po 0 69250 25750 70250 25750 400 -1 +De 0 0 13 0 0 +Po 0 61000 24750 61500 24750 400 -1 +De 15 0 13 0 0 +Po 0 59750 26000 61000 24750 400 -1 +De 15 0 13 0 0 +Po 0 56000 27000 57000 26000 400 -1 +De 15 0 13 0 0 +Po 0 57000 26000 59750 26000 400 -1 +De 15 0 13 0 0 +Po 0 53500 27000 56000 27000 400 -1 +De 15 0 13 0 0 +Po 3 49750 26750 49750 26750 650 -1 +De 15 1 13 0 0 +Po 0 49750 26750 49750 25750 400 -1 +De 0 0 13 0 400 +Po 0 53750 24250 54250 23750 250 -1 +De 0 0 13 0 0 +Po 0 54250 23750 54250 22250 170 -1 +De 0 0 13 0 0 +Po 0 54250 22250 54500 22000 250 -1 +De 0 0 13 0 0 +Po 0 54500 22000 56750 22000 250 -1 +De 0 0 13 0 0 +Po 0 56750 22000 58000 23250 400 -1 +De 0 0 13 0 0 +Po 0 67500 22250 70250 22250 400 -1 +De 0 0 13 0 400 +Po 0 70250 22250 70250 25250 400 -1 +De 0 0 13 0 800 +Po 0 70250 25250 70250 25750 400 -1 +De 0 0 13 0 0 +Po 0 61750 52500 61800 52500 400 -1 +De 15 0 13 0 400 +Po 0 65750 17250 67500 19000 400 -1 +De 0 0 13 0 800 +Po 0 73750 25250 70250 25250 400 -1 +De 0 0 13 0 800 +Po 0 55750 30750 58750 30750 170 -1 +De 0 0 13 0 0 +Po 0 42750 20750 42750 19500 400 -1 +De 0 0 13 0 800 +Po 0 42750 19500 43000 19250 400 -1 +De 0 0 13 0 0 +Po 0 74750 28250 74750 25500 400 -1 +De 0 0 13 0 0 +Po 0 74750 25500 74500 25250 400 -1 +De 0 0 13 0 0 +Po 0 74500 25250 73750 25250 400 -1 +De 0 0 13 0 400 +Po 0 74750 28250 75250 28750 400 -1 +De 0 0 13 0 0 +Po 0 75250 28750 75250 37750 400 -1 +De 0 0 13 0 0 +Po 0 74750 38000 74250 38000 400 -1 +De 0 0 13 0 400 +Po 0 49750 39750 49750 37250 170 -1 +De 0 0 13 0 0 +Po 0 55750 35250 55750 30750 400 -1 +De 0 0 13 0 0 +Po 0 39250 27750 42750 24250 400 -1 +De 0 0 13 0 0 +Po 0 42750 24250 42750 23750 400 -1 +De 0 0 13 0 400 +Po 0 39250 28750 39250 27750 400 -1 +De 0 0 13 0 800 +Po 0 55400 30750 55750 30750 400 -1 +De 0 0 13 0 0 +Po 0 38250 29850 38250 30000 400 -1 +De 0 0 13 0 0 +Po 0 39250 29850 38250 29850 400 -1 +De 0 0 13 0 800 +Po 0 60750 31000 61500 31000 400 -1 +De 0 0 13 0 0 +Po 0 60500 31250 60750 31000 400 -1 +De 0 0 13 0 0 +Po 3 61500 31000 61500 31000 650 -1 +De 15 1 13 0 0 +Po 0 61500 31000 61500 24750 400 -1 +De 15 0 13 0 0 +Po 0 59250 31250 60500 31250 400 -1 +De 0 0 13 0 800 +Po 3 69250 25750 69250 25750 650 -1 +De 15 1 13 0 0 +Po 0 68250 24750 69250 25750 400 -1 +De 15 0 13 0 0 +Po 0 61500 24750 68250 24750 400 -1 +De 15 0 13 0 0 +Po 0 38250 35250 38250 36000 400 -1 +De 0 0 13 0 0 +Po 0 38250 34000 38250 35250 400 -1 +De 0 0 13 0 0 +Po 0 38250 33110 38250 33000 400 -1 +De 0 0 13 0 0 +Po 0 39250 33110 38250 33110 400 -1 +De 0 0 13 0 800 +Po 0 38250 31990 38250 32000 400 -1 +De 0 0 13 0 0 +Po 0 39250 31990 38250 31990 400 -1 +De 0 0 13 0 800 +Po 0 38250 30930 38250 31000 400 -1 +De 0 0 13 0 0 +Po 0 39250 30930 38250 30930 400 -1 +De 0 0 13 0 800 +Po 0 61250 47250 61750 47250 400 -1 +De 0 0 13 0 800 +Po 0 54900 31250 55400 30750 400 -1 +De 0 0 13 0 800 +Po 0 64250 49750 70250 49750 400 -1 +De 0 0 13 0 0 +Po 0 58250 35250 55750 35250 400 -1 +De 0 0 13 0 800 +Po 0 70250 49750 70750 49250 400 -1 +De 0 0 13 0 0 +Po 0 50250 40250 49750 39750 400 -1 +De 0 0 13 0 800 +Po 0 70750 49250 72250 49250 400 -1 +De 0 0 13 0 0 +Po 0 53750 26750 53750 25750 400 -1 +De 0 0 13 0 400 +Po 0 72250 45250 72250 49250 400 -1 +De 0 0 13 0 0 +Po 0 74750 42750 72250 45250 400 -1 +De 0 0 13 0 0 +Po 0 72250 45250 72250 49250 250 -1 +De 0 0 13 0 0 +Po 0 41250 36370 42620 35000 400 -1 +De 0 0 13 0 0 +Po 0 75250 37750 75000 38000 400 -1 +De 0 0 13 0 0 +Po 0 58750 30750 59250 31250 400 -1 +De 0 0 13 0 400 +Po 0 74750 42750 74750 38000 400 -1 +De 0 0 13 0 0 +Po 0 67500 19000 67500 22250 400 -1 +De 0 0 13 0 0 +Po 0 43000 19250 46000 19250 400 -1 +De 0 0 13 0 0 +Po 0 46000 19250 46250 19500 400 -1 +De 0 0 13 0 400 +Po 0 46250 19500 47750 21000 400 -1 +De 0 0 13 0 800 +Po 0 47750 21000 47750 24100 400 -1 +De 0 0 13 0 400 +Po 0 42750 23750 42750 20750 400 -1 +De 0 0 13 0 C00 +Po 0 75000 38000 74750 38000 400 -1 +De 0 0 13 0 0 +Po 0 57750 52500 55500 52500 400 -1 +De 15 0 13 0 0 +Po 0 58500 52500 57750 52500 400 -1 +De 15 0 13 0 800 +Po 3 55500 52500 55500 52500 650 -1 +De 15 1 13 0 0 +Po 0 55500 52500 55500 50000 400 -1 +De 0 0 13 0 0 +Po 0 55500 50000 54750 49250 400 -1 +De 0 0 13 0 0 +Po 0 42620 35000 43750 35000 400 -1 +De 0 0 13 0 400 +Po 0 39250 36370 41250 36370 250 -1 +De 0 0 13 0 800 +Po 0 43750 35000 43750 34000 400 -1 +De 0 0 13 0 C00 +Po 0 38250 35270 38250 35250 400 -1 +De 0 0 13 0 0 +Po 0 39250 35270 38250 35270 400 -1 +De 0 0 13 0 800 +Po 0 38250 36000 38500 36250 400 -1 +De 0 0 13 0 0 +Po 0 38500 36250 39250 36250 400 -1 +De 0 0 13 0 0 +Po 0 39250 36250 39250 36370 400 -1 +De 0 0 13 0 400 +Po 0 54250 45250 54750 45750 400 -1 +De 0 0 13 0 0 +Po 0 54750 45750 54750 46250 400 -1 +De 0 0 13 0 400 +Po 0 52750 45750 53250 45250 400 -1 +De 0 0 13 0 0 +Po 0 52750 46250 52750 45750 400 -1 +De 0 0 13 0 800 +Po 0 38250 32000 38250 31000 400 -1 +De 0 0 13 0 0 +Po 0 38250 31000 38250 30000 400 -1 +De 0 0 13 0 0 +Po 0 38250 30000 38250 29000 400 -1 +De 0 0 13 0 0 +Po 0 58500 42000 58500 44000 400 -1 +De 0 0 13 0 800 +Po 0 58500 44000 59500 45000 400 -1 +De 0 0 13 0 0 +Po 0 59500 45000 59750 45250 400 -1 +De 0 0 13 0 0 +Po 0 72250 49250 73750 49250 400 -1 +De 0 0 13 0 400 +Po 0 64250 49750 61750 47250 400 -1 +De 0 0 13 0 0 +Po 0 38500 34190 38250 33940 400 -1 +De 0 0 13 0 0 +Po 0 46750 45400 47250 44900 400 -1 +De 0 0 13 0 800 +Po 0 50250 40250 50250 41250 400 -1 +De 0 0 13 0 800 +Po 0 49750 41750 49750 43250 400 -1 +De 0 0 13 0 400 +Po 0 50250 41250 49750 41750 400 -1 +De 0 0 13 0 0 +Po 0 49750 44250 52250 44250 400 -1 +De 0 0 13 0 0 +Po 0 54900 31250 54900 30250 400 -1 +De 0 0 13 0 800 +Po 0 54750 28750 55250 28250 400 -1 +De 0 0 13 0 400 +Po 0 54750 30250 54750 28750 170 -1 +De 0 0 13 0 0 +Po 0 54900 30250 54750 30250 400 -1 +De 0 0 13 0 0 +Po 0 60500 47250 59750 46500 400 -1 +De 0 0 13 0 0 +Po 0 59750 46500 59750 45250 400 -1 +De 0 0 13 0 0 +Po 0 61250 47250 60500 47250 400 -1 +De 0 0 13 0 800 +Po 0 61000 42000 62000 41000 400 -1 +De 0 0 13 0 0 +Po 0 62000 41000 64750 41000 400 -1 +De 0 0 13 0 0 +Po 0 64750 41000 65000 41000 400 -1 +De 0 0 13 0 0 +Po 0 65000 41000 65750 41750 400 -1 +De 0 0 13 0 0 +Po 0 65750 41750 66250 41750 400 -1 +De 0 0 13 0 400 +Po 0 58500 42000 61000 42000 400 -1 +De 0 0 13 0 800 +Po 0 68850 26250 69250 25850 400 -1 +De 0 0 13 0 0 +Po 0 69250 25850 69250 25750 400 -1 +De 0 0 13 0 0 +Po 0 68850 27500 68850 26250 400 -1 +De 0 0 13 0 800 +Po 0 60700 52500 61750 52500 400 -1 +De 15 0 13 0 800 +Po 0 60750 52500 60700 52500 400 -1 +De 15 0 13 0 400 +Po 0 59600 52500 60750 52500 400 -1 +De 15 0 13 0 800 +Po 0 59500 52500 59600 52500 400 -1 +De 15 0 13 0 400 +Po 0 58500 52500 59500 52500 400 -1 +De 15 0 13 0 800 +Po 0 58000 46250 59000 47250 400 -1 +De 15 0 13 0 0 +Po 0 59000 47250 61250 47250 400 -1 +De 15 0 13 0 400 +Po 0 54750 46250 58000 46250 400 -1 +De 15 0 13 0 800 +Po 0 54750 49250 54750 46250 400 -1 +De 0 0 13 0 400 +Po 0 53250 45250 54250 45250 400 -1 +De 0 0 13 0 0 +Po 0 45250 24750 45250 28250 170 -1 +De 0 0 14 0 800 +Po 0 45750 28750 45250 28250 170 -1 +De 0 0 14 0 0 +Po 0 45750 28750 47750 28750 170 -1 +De 0 0 14 0 0 +Po 0 47750 28750 48250 29250 170 -1 +De 0 0 14 0 400 +Po 0 46250 24750 46250 28000 170 -1 +De 0 0 15 0 800 +Po 0 46500 28250 48250 28250 170 -1 +De 0 0 15 0 400 +Po 0 46250 28000 46500 28250 170 -1 +De 0 0 15 0 0 +Po 0 59250 39250 63750 39250 170 -1 +De 0 0 16 0 800 +Po 0 63750 39250 64250 38750 170 -1 +De 0 0 16 0 0 +Po 0 64250 38750 66250 38750 170 -1 +De 0 0 16 0 400 +Po 0 58250 40250 63750 40250 170 -1 +De 0 0 17 0 800 +Po 0 63750 40250 64250 39750 170 -1 +De 0 0 17 0 0 +Po 0 64250 39750 66250 39750 170 -1 +De 0 0 17 0 400 +Po 0 64500 40750 66250 40750 170 -1 +De 15 0 18 0 400 +Po 0 55500 41500 59500 41500 170 -1 +De 15 0 18 0 0 +Po 3 55500 41500 55500 41500 650 -1 +De 15 1 18 0 0 +Po 0 63750 41500 64500 40750 170 -1 +De 15 0 18 0 0 +Po 0 59500 41500 63750 41500 170 -1 +De 15 0 18 0 0 +Po 0 55250 40250 55250 41000 170 -1 +De 0 0 18 0 800 +Po 0 55250 41000 55500 41250 170 -1 +De 0 0 18 0 0 +Po 0 55500 41250 55500 41500 170 -1 +De 0 0 18 0 0 +Po 0 53250 42250 53250 41250 170 -1 +De 0 0 19 0 0 +Po 0 54000 42500 53750 42250 170 -1 +De 15 0 19 0 0 +Po 0 53750 39750 54250 39250 170 -1 +De 0 0 19 0 400 +Po 0 53750 42250 53250 42250 170 -1 +De 15 0 19 0 0 +Po 0 69250 41750 72250 41750 170 -1 +De 0 0 19 0 C00 +Po 0 55250 42500 54000 42500 170 -1 +De 15 0 19 0 0 +Po 0 53250 41250 53750 40750 170 -1 +De 0 0 19 0 0 +Po 0 53750 40750 53750 39750 170 -1 +De 0 0 19 0 0 +Po 0 72250 42750 72250 41750 170 -1 +De 15 0 19 0 400 +Po 0 55250 42500 55750 43000 170 -1 +De 15 0 19 0 0 +Po 0 55750 43000 72000 43000 170 -1 +De 15 0 19 0 0 +Po 3 53250 42250 53250 42250 650 -1 +De 15 1 19 0 0 +Po 0 72000 43000 72250 42750 170 -1 +De 15 0 19 0 0 +Po 0 72250 40750 69250 40750 170 -1 +De 0 0 20 0 C00 +Po 0 54000 41750 54500 41750 170 -1 +De 15 0 20 0 0 +Po 0 56500 42250 55500 42250 170 -1 +De 15 0 20 0 0 +Po 0 54250 41000 54250 40250 170 -1 +De 0 0 20 0 400 +Po 0 69750 42500 56750 42500 170 -1 +De 15 0 20 0 0 +Po 0 54500 41750 54750 42000 170 -1 +De 15 0 20 0 0 +Po 0 56750 42500 56500 42250 170 -1 +De 15 0 20 0 0 +Po 0 71500 40750 69750 42500 170 -1 +De 15 0 20 0 0 +Po 0 54000 41250 54000 41750 170 -1 +De 0 0 20 0 0 +Po 0 72250 40750 71500 40750 170 -1 +De 15 0 20 0 800 +Po 3 54000 41750 54000 41750 650 -1 +De 15 1 20 0 0 +Po 0 55250 42000 55500 42250 170 -1 +De 15 0 20 0 0 +Po 0 54250 41000 54000 41250 170 -1 +De 0 0 20 0 0 +Po 0 54750 42000 55250 42000 170 -1 +De 15 0 20 0 0 +Po 0 71250 39750 72250 39750 170 -1 +De 0 0 21 0 400 +Po 0 71250 39750 69250 39750 170 -1 +De 0 0 21 0 400 +Po 0 57250 39250 57750 39750 170 -1 +De 0 0 21 0 800 +Po 0 68500 39750 68000 39250 170 -1 +De 0 0 21 0 0 +Po 0 57750 39750 63750 39750 170 -1 +De 0 0 21 0 0 +Po 0 63750 39750 64250 39250 170 -1 +De 0 0 21 0 0 +Po 0 69250 39750 68500 39750 170 -1 +De 0 0 21 0 800 +Po 0 64250 39250 68000 39250 170 -1 +De 0 0 21 0 0 +Po 0 69250 38750 68250 38750 170 -1 +De 0 0 22 0 800 +Po 0 71250 38750 69250 38750 170 -1 +De 0 0 22 0 400 +Po 0 71250 38750 72250 38750 170 -1 +De 0 0 22 0 400 +Po 0 63750 38750 64250 38250 170 -1 +De 0 0 22 0 0 +Po 0 64250 38250 67750 38250 170 -1 +De 0 0 22 0 0 +Po 0 58750 38750 63750 38750 170 -1 +De 0 0 22 0 0 +Po 0 68250 38750 67750 38250 170 -1 +De 0 0 22 0 0 +Po 0 58250 39250 58750 38750 170 -1 +De 0 0 22 0 800 +Po 0 68000 37250 67750 37250 170 -1 +De 0 0 23 0 0 +Po 0 69250 37750 68500 37750 170 -1 +De 0 0 23 0 800 +Po 0 68500 37750 68000 37250 170 -1 +De 0 0 23 0 0 +Po 0 58250 38250 58750 37750 170 -1 +De 0 0 23 0 800 +Po 0 62750 37250 67750 37250 170 -1 +De 0 0 23 0 0 +Po 0 58750 37750 62250 37750 170 -1 +De 0 0 23 0 0 +Po 0 62250 37750 62750 37250 170 -1 +De 0 0 23 0 0 +Po 0 71250 37750 69250 37750 170 -1 +De 0 0 23 0 400 +Po 0 71250 37750 72250 37750 170 -1 +De 0 0 23 0 400 +Po 0 62750 38250 63250 37750 170 -1 +De 0 0 24 0 0 +Po 0 63250 37750 66250 37750 170 -1 +De 0 0 24 0 400 +Po 0 59250 38250 62750 38250 170 -1 +De 0 0 24 0 800 +Po 0 68500 35750 68000 35250 170 -1 +De 0 0 25 0 0 +Po 0 69250 35750 68500 35750 170 -1 +De 0 0 25 0 800 +Po 0 71250 35750 69250 35750 170 -1 +De 0 0 25 0 400 +Po 0 71250 35750 72250 35750 170 -1 +De 0 0 25 0 400 +Po 0 59250 35250 68000 35250 170 -1 +De 0 0 25 0 800 +Po 0 69250 33750 68500 33750 170 -1 +De 0 0 26 0 800 +Po 0 59250 33250 68000 33250 170 -1 +De 0 0 26 0 800 +Po 0 69250 33750 71250 33750 170 -1 +De 0 0 26 0 800 +Po 0 71250 33750 72250 33750 170 -1 +De 0 0 26 0 400 +Po 0 68500 33750 68000 33250 170 -1 +De 0 0 26 0 0 +Po 0 58250 29250 58750 28750 170 -1 +De 0 0 27 0 800 +Po 0 63250 29750 66250 29750 170 -1 +De 0 0 27 0 400 +Po 0 58750 28750 62250 28750 170 -1 +De 0 0 27 0 0 +Po 0 62250 28750 63250 29750 170 -1 +De 0 0 27 0 0 +Po 0 69250 30750 67750 30750 170 -1 +De 0 0 28 0 800 +Po 0 69250 30750 72250 30750 170 -1 +De 0 0 28 0 C00 +Po 0 62250 29250 63250 30250 170 -1 +De 0 0 28 0 0 +Po 0 67250 30250 67750 30750 170 -1 +De 0 0 28 0 0 +Po 0 62250 29250 59250 29250 170 -1 +De 0 0 28 0 400 +Po 0 63250 30250 67250 30250 170 -1 +De 0 0 28 0 0 +Po 0 57500 26750 62750 26750 170 -1 +De 0 0 29 0 0 +Po 0 62750 26750 63250 26250 170 -1 +De 0 0 29 0 0 +Po 0 57250 27000 57500 26750 170 -1 +De 0 0 29 0 0 +Po 0 63250 26250 65250 26250 170 -1 +De 0 0 29 0 400 +Po 0 57250 28250 57250 27000 170 -1 +De 0 0 29 0 800 +Po 0 59750 36750 66250 36750 170 -1 +De 0 0 30 0 400 +Po 0 59250 37250 59750 36750 170 -1 +De 0 0 30 0 800 +Po 0 58250 36250 58750 35750 170 -1 +De 0 0 31 0 800 +Po 0 58750 35750 66250 35750 170 -1 +De 0 0 31 0 400 +Po 0 58750 34750 66250 34750 170 -1 +De 0 0 32 0 400 +Po 0 58250 34250 58750 34750 170 -1 +De 0 0 32 0 800 +Po 0 58750 33750 58250 33250 170 -1 +De 0 0 33 0 400 +Po 0 66250 33750 58750 33750 170 -1 +De 0 0 33 0 800 +Po 0 58750 32750 58250 32250 170 -1 +De 0 0 34 0 400 +Po 0 66250 32750 58750 32750 170 -1 +De 0 0 34 0 800 +Po 0 58250 31250 58750 31750 170 -1 +De 0 0 35 0 800 +Po 0 58750 31750 66250 31750 170 -1 +De 0 0 35 0 400 +Po 0 58750 29750 58250 30250 170 -1 +De 0 0 36 0 400 +Po 0 61750 29750 58750 29750 170 -1 +De 0 0 36 0 0 +Po 0 62750 30750 61750 29750 170 -1 +De 0 0 36 0 0 +Po 0 66250 30750 62750 30750 170 -1 +De 0 0 36 0 800 +Po 0 62750 31250 68000 31250 170 -1 +De 0 0 37 0 0 +Po 0 68500 31750 68000 31250 170 -1 +De 0 0 37 0 0 +Po 0 61750 30250 62750 31250 170 -1 +De 0 0 37 0 0 +Po 0 69250 31750 68500 31750 170 -1 +De 0 0 37 0 800 +Po 0 71250 31750 72250 31750 170 -1 +De 0 0 37 0 400 +Po 0 69250 31750 71250 31750 170 -1 +De 0 0 37 0 800 +Po 0 59250 30250 61750 30250 170 -1 +De 0 0 37 0 800 +Po 0 68500 32750 68000 32250 170 -1 +De 0 0 38 0 0 +Po 0 59250 32250 68000 32250 170 -1 +De 0 0 38 0 800 +Po 0 69250 32750 68500 32750 170 -1 +De 0 0 38 0 800 +Po 0 69250 32750 71250 32750 170 -1 +De 0 0 38 0 800 +Po 0 71250 32750 72250 32750 170 -1 +De 0 0 38 0 400 +Po 0 76500 42250 76750 42500 400 -1 +De 0 0 39 0 800 +Po 0 76750 50750 76250 51250 400 -1 +De 0 0 39 0 0 +Po 0 76250 51250 73750 51250 400 -1 +De 0 0 39 0 400 +Po 0 76750 42500 76750 50750 400 -1 +De 0 0 39 0 0 +Po 0 75250 47250 75750 46750 400 -1 +De 0 0 40 0 0 +Po 0 75750 46750 75750 44250 400 -1 +De 0 0 40 0 400 +Po 0 73750 47250 75250 47250 400 -1 +De 0 0 40 0 800 +Po 0 50250 17750 51750 17750 170 -1 +De 0 0 41 0 0 +Po 0 47000 19250 47250 19500 170 -1 +De 0 0 41 0 0 +Po 0 49250 19500 49500 19250 170 -1 +De 0 0 41 0 0 +Po 0 51750 17750 52500 18500 170 -1 +De 0 0 41 0 0 +Po 0 50000 18000 50250 17750 170 -1 +De 0 0 41 0 0 +Po 0 46250 15500 46250 18000 170 -1 +De 0 0 41 0 800 +Po 0 50000 19000 50000 18500 170 -1 +De 0 0 41 0 400 +Po 0 52500 18500 53000 18500 170 -1 +De 0 0 41 0 400 +Po 0 50000 18500 50000 18000 170 -1 +De 0 0 41 0 800 +Po 0 47000 18750 47000 19250 170 -1 +De 0 0 41 0 0 +Po 0 46250 18000 47000 18750 170 -1 +De 0 0 41 0 0 +Po 0 49750 19250 50000 19000 170 -1 +De 0 0 41 0 0 +Po 0 49500 19250 49750 19250 170 -1 +De 0 0 41 0 0 +Po 0 47250 19500 49250 19500 170 -1 +De 0 0 41 0 0 +Po 0 50250 16500 53000 16500 170 -1 +De 0 0 42 0 400 +Po 0 73750 16500 68000 16500 170 -1 +De 0 0 42 0 800 +Po 0 50000 15500 50000 16250 170 -1 +De 0 0 42 0 800 +Po 0 55500 15750 67250 15750 170 -1 +De 0 0 42 0 0 +Po 0 55500 15750 54750 16500 170 -1 +De 0 0 42 0 0 +Po 0 54750 16500 53000 16500 170 -1 +De 0 0 42 0 400 +Po 0 50000 16250 50250 16500 170 -1 +De 0 0 42 0 0 +Po 0 67250 15750 68000 16500 170 -1 +De 0 0 42 0 0 +Po 0 55750 16500 57000 16500 170 -1 +De 0 0 43 0 400 +Po 0 54750 17500 55750 16500 170 -1 +De 0 0 43 0 0 +Po 0 49000 18500 49000 17500 170 -1 +De 0 0 43 0 800 +Po 0 53000 17500 54750 17500 170 -1 +De 0 0 43 0 800 +Po 0 49000 17500 49250 17250 170 -1 +De 0 0 43 0 0 +Po 0 49250 17250 52000 17250 170 -1 +De 0 0 43 0 0 +Po 0 52000 17250 52250 17500 170 -1 +De 0 0 43 0 0 +Po 0 52250 17500 53000 17500 170 -1 +De 0 0 43 0 400 +Po 0 57500 19750 57000 19750 170 -1 +De 0 0 44 0 400 +Po 0 57750 19500 57500 19750 170 -1 +De 0 0 44 0 0 +Po 0 57000 17500 57500 17500 170 -1 +De 0 0 44 0 800 +Po 0 57750 17750 57750 19500 170 -1 +De 0 0 44 0 0 +Po 0 57500 17500 57750 17750 170 -1 +De 0 0 44 0 0 +Po 0 73750 20500 73750 23250 170 -1 +De 0 0 45 0 C00 +Po 0 56250 21000 56500 21250 170 -1 +De 0 0 46 0 0 +Po 0 57000 18500 56500 18500 170 -1 +De 0 0 46 0 800 +Po 0 56500 18500 56250 18750 170 -1 +De 0 0 46 0 0 +Po 0 56500 21250 57000 21250 170 -1 +De 0 0 46 0 400 +Po 0 56250 18750 56250 21000 170 -1 +De 0 0 46 0 0 +Po 0 51000 19750 50000 19750 170 -1 +De 0 0 47 0 800 +Po 0 50000 19750 49750 20000 170 -1 +De 0 0 47 0 0 +Po 0 49750 20000 49750 22750 170 -1 +De 0 0 47 0 400 +Po 0 43750 20000 44000 19750 170 -1 +De 0 0 48 0 0 +Po 0 43750 20750 43750 20000 170 -1 +De 0 0 48 0 800 +Po 0 46250 20750 45250 19750 170 -1 +De 0 0 48 0 800 +Po 0 44000 19750 45250 19750 170 -1 +De 0 0 48 0 0 +Po 0 45250 21250 45250 20750 170 -1 +De 0 0 49 0 400 +Po 0 43750 23750 43750 22750 170 -1 +De 0 0 49 0 800 +Po 0 43750 22750 45250 21250 170 -1 +De 0 0 49 0 0 +Po 0 66250 26250 66250 28750 170 -1 +De 0 0 50 0 C00 +Po 0 49750 46250 50750 46250 170 -1 +De 0 0 51 0 C00 +Po 0 49250 49750 47750 49750 170 -1 +De 0 0 51 0 C00 +Po 0 50750 49750 50600 49750 170 -1 +De 0 0 51 0 400 +Po 0 50750 46250 51250 46750 170 -1 +De 0 0 51 0 800 +Po 0 50750 49250 50750 49750 170 -1 +De 0 0 51 0 0 +Po 0 51250 48750 50750 49250 170 -1 +De 0 0 51 0 0 +Po 0 50600 49750 49250 49750 170 -1 +De 0 0 51 0 C00 +Po 0 51250 46750 51250 48750 170 -1 +De 0 0 51 0 0 +Po 0 47000 47750 47750 47750 170 -1 +De 0 0 52 0 400 +Po 0 48750 46250 48750 47750 170 -1 +De 0 0 52 0 800 +Po 0 46750 50250 46750 48000 170 -1 +De 0 0 52 0 0 +Po 0 47250 50750 46750 50250 170 -1 +De 0 0 52 0 0 +Po 0 52250 50750 47250 50750 170 -1 +De 0 0 52 0 0 +Po 0 48750 47750 50600 47750 170 -1 +De 0 0 52 0 400 +Po 0 46750 48000 47000 47750 170 -1 +De 0 0 52 0 0 +Po 0 53250 49750 52250 50750 170 -1 +De 0 0 52 0 800 +Po 0 47750 47750 48750 47750 170 -1 +De 0 0 52 0 800 +Po 0 50750 21500 51000 21250 170 -1 +De 0 0 53 0 400 +Po 0 50750 22750 50750 21500 170 -1 +De 0 0 53 0 800 +Po 0 47750 25750 48750 25750 170 -1 +De 0 0 54 0 400 +Po 0 47750 25400 47750 25750 170 -1 +De 0 0 54 0 800 +Po 0 68500 34750 68000 34250 170 -1 +De 0 0 55 0 0 +Po 0 71250 34750 72250 34750 170 -1 +De 0 0 55 0 400 +Po 0 59250 34250 68000 34250 170 -1 +De 0 0 55 0 800 +Po 0 69250 34750 68500 34750 170 -1 +De 0 0 55 0 800 +Po 0 71250 34750 69250 34750 170 -1 +De 0 0 55 0 400 +Po 0 45650 38750 47750 38750 170 -1 +De 0 0 56 0 0 +Po 0 47750 38750 48250 38250 170 -1 +De 0 0 56 0 400 +Po 0 44250 40150 45650 38750 170 -1 +De 0 0 56 0 0 +Po 0 40250 40150 44250 40150 170 -1 +De 0 0 56 0 800 +Po 0 43000 39000 40250 39000 170 -1 +De 0 0 57 0 0 +Po 0 40250 39000 40250 39100 170 -1 +De 0 0 57 0 400 +Po 0 44250 37750 43000 39000 170 -1 +De 0 0 57 0 0 +Po 0 46750 37750 47250 37250 170 -1 +De 0 0 57 0 400 +Po 0 44250 37750 46750 37750 170 -1 +De 0 0 57 0 0 +Po 0 46250 36750 46750 36250 170 -1 +De 0 0 58 0 0 +Po 0 40250 38000 41250 38000 170 -1 +De 0 0 58 0 800 +Po 0 46750 36250 47250 36250 170 -1 +De 0 0 58 0 400 +Po 0 42750 37750 43750 36750 170 -1 +De 0 0 58 0 0 +Po 0 41500 37750 42750 37750 170 -1 +De 0 0 58 0 0 +Po 0 41250 38000 41500 37750 170 -1 +De 0 0 58 0 0 +Po 0 43750 36750 46250 36750 170 -1 +De 0 0 58 0 0 +Po 0 40250 36900 41500 36900 170 -1 +De 0 0 59 0 800 +Po 0 46500 35250 47250 35250 170 -1 +De 0 0 59 0 400 +Po 0 43000 35750 46000 35750 170 -1 +De 0 0 59 0 0 +Po 0 41500 36900 42150 36250 170 -1 +De 0 0 59 0 0 +Po 0 42500 36250 43000 35750 170 -1 +De 0 0 59 0 0 +Po 0 46000 35750 46500 35250 170 -1 +De 0 0 59 0 0 +Po 0 42150 36250 42500 36250 170 -1 +De 0 0 59 0 0 +Po 0 47750 33750 48250 33250 170 -1 +De 0 0 60 0 400 +Po 0 42000 35000 42000 34500 170 -1 +De 0 0 60 0 0 +Po 0 41250 35800 41250 35750 170 -1 +De 0 0 60 0 0 +Po 0 43250 33250 46000 33250 170 -1 +De 0 0 60 0 0 +Po 0 42000 34500 43250 33250 170 -1 +De 0 0 60 0 0 +Po 0 46500 33750 47750 33750 170 -1 +De 0 0 60 0 0 +Po 0 46000 33250 46500 33750 170 -1 +De 0 0 60 0 0 +Po 0 41250 35750 42000 35000 170 -1 +De 0 0 60 0 0 +Po 0 40250 35800 41250 35800 170 -1 +De 0 0 60 0 800 +Po 0 43000 32750 46250 32750 170 -1 +De 0 0 61 0 0 +Po 0 40250 34750 41000 34750 170 -1 +De 0 0 61 0 800 +Po 0 46750 33250 47250 33250 170 -1 +De 0 0 61 0 400 +Po 0 41000 34750 43000 32750 170 -1 +De 0 0 61 0 0 +Po 0 46250 32750 46750 33250 170 -1 +De 0 0 61 0 0 +Po 0 42250 32250 47250 32250 170 -1 +De 0 0 62 0 400 +Po 0 41000 33500 42250 32250 170 -1 +De 0 0 62 0 0 +Po 0 40250 33650 41000 33650 170 -1 +De 0 0 62 0 800 +Po 0 41000 33650 41000 33500 170 -1 +De 0 0 62 0 0 +Po 0 40750 32500 41500 31750 170 -1 +De 0 0 63 0 0 +Po 0 40250 32550 40750 32550 170 -1 +De 0 0 63 0 800 +Po 0 40750 32550 40750 32500 170 -1 +De 0 0 63 0 0 +Po 0 41500 31750 47750 31750 170 -1 +De 0 0 63 0 0 +Po 0 47750 31750 48250 32250 170 -1 +De 0 0 63 0 400 +Po 0 46250 41250 48250 39250 170 -1 +De 0 0 64 0 400 +Po 0 40250 41250 46250 41250 170 -1 +De 0 0 64 0 800 +Po 0 44630 38250 47250 38250 170 -1 +De 0 0 65 0 400 +Po 0 39250 39630 43250 39630 170 -1 +De 0 0 65 0 800 +Po 0 43250 39630 44630 38250 170 -1 +De 0 0 65 0 0 +Po 0 39750 40750 45750 40750 170 -1 +De 0 0 66 0 0 +Po 0 45750 40750 47250 39250 170 -1 +De 0 0 66 0 400 +Po 0 39750 40630 39750 40750 170 -1 +De 0 0 66 0 0 +Po 0 39250 40630 39750 40630 170 -1 +De 0 0 66 0 800 +Po 0 40250 28200 42750 28200 170 -1 +De 0 0 67 0 800 +Po 0 42750 28200 43750 29200 170 -1 +De 0 0 67 0 0 +Po 0 43750 29200 47250 29200 170 -1 +De 0 0 67 0 0 +Po 0 47250 29200 47250 29250 170 -1 +De 0 0 67 0 400 +Po 0 43250 29300 44200 30250 170 -1 +De 0 0 68 0 0 +Po 0 44200 30250 47250 30250 170 -1 +De 0 0 68 0 400 +Po 0 40250 29300 43250 29300 170 -1 +De 0 0 68 0 800 +Po 0 44100 30750 47750 30750 170 -1 +De 0 0 69 0 0 +Po 0 43750 30400 44100 30750 170 -1 +De 0 0 69 0 0 +Po 0 40250 30400 43750 30400 170 -1 +De 0 0 69 0 800 +Po 0 47750 30750 48250 31250 170 -1 +De 0 0 69 0 400 +Po 0 40750 31250 47250 31250 170 -1 +De 0 0 70 0 400 +Po 0 40250 31450 40750 31450 170 -1 +De 0 0 70 0 800 +Po 0 40750 31450 40750 31250 170 -1 +De 0 0 70 0 0 +Po 0 41200 38500 42750 38500 170 -1 +De 0 0 71 0 0 +Po 0 42750 38500 44000 37250 170 -1 +De 0 0 71 0 0 +Po 0 46750 36750 46250 37250 170 -1 +De 0 0 71 0 0 +Po 0 41100 38600 41200 38500 170 -1 +De 0 0 71 0 0 +Po 0 47750 36750 48250 36250 170 -1 +De 0 0 71 0 400 +Po 0 46750 36750 47750 36750 170 -1 +De 0 0 71 0 0 +Po 0 39320 38600 41100 38600 170 -1 +De 0 0 71 0 0 +Po 0 39250 38530 39320 38600 170 -1 +De 0 0 71 0 800 +Po 0 44000 37250 46250 37250 170 -1 +De 0 0 71 0 0 +Po 0 41450 37250 42750 37250 170 -1 +De 0 0 72 0 0 +Po 0 39250 37450 41250 37450 170 -1 +De 0 0 72 0 800 +Po 0 43750 36250 46250 36250 170 -1 +De 0 0 72 0 0 +Po 0 46250 36250 46750 35750 170 -1 +De 0 0 72 0 0 +Po 0 46750 35750 47750 35750 170 -1 +De 0 0 72 0 0 +Po 0 47750 35750 48250 35250 170 -1 +De 0 0 72 0 400 +Po 0 42750 37250 43750 36250 170 -1 +De 0 0 72 0 0 +Po 0 41250 37450 41450 37250 170 -1 +De 0 0 72 0 0 +Po 0 44750 34000 45750 34000 170 -1 +De 0 0 73 0 800 +Po 0 45750 34000 46000 34250 170 -1 +De 0 0 73 0 0 +Po 0 46000 34250 47250 34250 170 -1 +De 0 0 73 0 400 +Po 0 45750 35000 46000 34750 170 -1 +De 0 0 74 0 0 +Po 0 46000 34750 47750 34750 170 -1 +De 0 0 74 0 0 +Po 0 47750 34750 48250 34250 170 -1 +De 0 0 74 0 400 +Po 0 44750 35000 45750 35000 170 -1 +De 0 0 74 0 800 +Po 0 69250 29750 72250 29750 170 -1 +De 0 0 75 0 C00 +Po 0 63750 29250 62750 28250 170 -1 +De 0 0 75 0 0 +Po 0 67250 29250 67750 29750 170 -1 +De 0 0 75 0 0 +Po 0 62750 28250 58250 28250 170 -1 +De 0 0 75 0 400 +Po 0 67250 29250 63750 29250 170 -1 +De 0 0 75 0 0 +Po 0 69250 29750 67750 29750 170 -1 +De 0 0 75 0 800 +Po 0 54750 20500 57500 20500 170 -1 +De 15 0 76 0 0 +Po 0 48500 27500 49250 28250 170 -1 +De 0 0 76 0 400 +Po 3 47250 26750 47250 26750 650 -1 +De 15 1 76 0 0 +Po 0 58250 21250 57500 20500 170 -1 +De 15 0 76 0 800 +Po 0 53500 19250 54750 20500 170 -1 +De 15 0 76 0 0 +Po 0 47250 26750 47250 27250 170 -1 +De 0 0 76 0 0 +Po 0 47250 26750 47250 20000 170 -1 +De 15 0 76 0 0 +Po 0 47250 20000 48000 19250 170 -1 +De 15 0 76 0 0 +Po 0 47500 27500 48500 27500 170 -1 +De 0 0 76 0 0 +Po 0 58250 21250 59250 20250 170 -1 +De 0 0 76 0 800 +Po 0 59250 20250 60750 20250 170 -1 +De 0 0 76 0 400 +Po 0 48000 19250 53500 19250 170 -1 +De 15 0 76 0 0 +Po 0 47250 27250 47500 27500 170 -1 +De 0 0 76 0 0 +Po 0 62750 21250 63750 20250 170 -1 +De 0 0 77 0 0 +Po 0 54750 21750 56500 21750 170 -1 +De 15 0 77 0 0 +Po 0 59250 21250 62750 21250 170 -1 +De 0 0 77 0 800 +Po 0 59000 22000 59250 21750 170 -1 +De 15 0 77 0 0 +Po 0 48750 26750 48000 26750 170 -1 +De 0 0 77 0 0 +Po 0 56500 21750 56750 22000 170 -1 +De 15 0 77 0 0 +Po 0 49750 28750 49750 27750 170 -1 +De 0 0 77 0 0 +Po 0 50250 29250 49750 28750 170 -1 +De 0 0 77 0 800 +Po 0 53500 20500 48500 20500 170 -1 +De 15 0 77 0 0 +Po 0 56750 22000 59000 22000 170 -1 +De 15 0 77 0 0 +Po 0 63750 20250 66250 20250 170 -1 +De 0 0 77 0 400 +Po 0 59250 21750 59250 21250 170 -1 +De 15 0 77 0 400 +Po 0 53500 20500 54750 21750 170 -1 +De 15 0 77 0 0 +Po 0 49750 27750 48750 26750 170 -1 +De 0 0 77 0 0 +Po 0 48000 26750 48000 21000 170 -1 +De 15 0 77 0 0 +Po 0 48500 20500 48000 21000 170 -1 +De 15 0 77 0 0 +Po 3 48000 26750 48000 26750 650 -1 +De 15 1 77 0 0 +Po 0 60250 47750 57250 44750 170 -1 +De 0 0 78 0 0 +Po 0 61000 51000 61250 51250 170 -1 +De 0 0 78 0 0 +Po 0 61250 51250 61250 52500 170 -1 +De 0 0 78 0 400 +Po 0 60250 47750 60250 48250 170 -1 +De 0 0 78 0 0 +Po 0 57250 44750 57250 40250 170 -1 +De 0 0 78 0 400 +Po 0 60250 48500 60250 48750 170 -1 +De 0 0 78 0 0 +Po 0 60250 48250 60250 48500 170 -1 +De 0 0 78 0 0 +Po 0 60250 48750 61000 49500 170 -1 +De 0 0 78 0 0 +Po 0 61000 49500 61000 51000 170 -1 +De 0 0 78 0 0 +Po 0 60150 51250 60000 51250 170 -1 +De 0 0 79 0 0 +Po 0 59750 48250 59750 50750 170 -1 +De 0 0 79 0 0 +Po 0 56750 45250 59750 48250 170 -1 +De 0 0 79 0 0 +Po 0 56250 40250 56750 40750 170 -1 +De 0 0 79 0 800 +Po 0 56750 40750 56750 45250 170 -1 +De 0 0 79 0 0 +Po 0 60150 52500 60150 51250 170 -1 +De 0 0 79 0 800 +Po 0 59750 50750 60000 51000 170 -1 +De 0 0 79 0 0 +Po 0 60000 51000 60000 51250 170 -1 +De 0 0 79 0 0 +Po 0 60000 41000 56000 41000 170 -1 +De 15 0 80 0 0 +Po 0 56000 41000 55900 40900 170 -1 +De 15 0 80 0 0 +Po 0 55900 40900 55050 40900 170 -1 +De 15 0 80 0 0 +Po 0 56750 51000 57250 50500 170 -1 +De 15 0 80 0 0 +Po 0 55050 40900 54950 41000 170 -1 +De 15 0 80 0 0 +Po 0 54950 41000 47500 41000 170 -1 +De 15 0 80 0 0 +Po 0 47500 41000 45750 42750 170 -1 +De 15 0 80 0 0 +Po 0 56750 26500 56750 28750 170 -1 +De 0 0 80 0 0 +Po 0 45750 42750 45750 50250 170 -1 +De 15 0 80 0 0 +Po 0 45750 50250 46500 51000 170 -1 +De 15 0 80 0 0 +Po 0 46500 51000 56750 51000 170 -1 +De 15 0 80 0 0 +Po 0 57250 50500 59000 50500 170 -1 +De 15 0 80 0 0 +Po 0 59750 26250 60000 26000 170 -1 +De 0 0 80 0 0 +Po 3 60750 26000 60750 26000 650 -1 +De 15 1 80 0 0 +Po 0 60750 40250 60750 26000 170 -1 +De 15 0 80 0 0 +Po 0 59050 51250 59000 51250 170 -1 +De 0 0 80 0 0 +Po 0 60000 26000 60750 26000 170 -1 +De 0 0 80 0 0 +Po 0 56750 26500 57000 26250 170 -1 +De 0 0 80 0 0 +Po 0 57000 26250 59750 26250 170 -1 +De 0 0 80 0 0 +Po 0 56750 28750 56250 29250 170 -1 +De 0 0 80 0 400 +Po 0 60750 40250 60000 41000 170 -1 +De 15 0 80 0 0 +Po 0 59050 52500 59050 51250 170 -1 +De 0 0 80 0 800 +Po 0 59000 50500 59000 51250 170 -1 +De 0 0 80 0 0 +Po 3 59000 50500 59000 50500 650 -1 +De 15 1 80 0 0 +Po 0 56250 47000 58000 48750 170 -1 +De 0 0 81 0 0 +Po 0 56250 47000 56250 41250 170 -1 +De 0 0 81 0 0 +Po 0 58500 49750 62500 49750 170 -1 +De 15 0 81 0 0 +Po 0 62350 50750 62500 50600 170 -1 +De 0 0 81 0 0 +Po 0 55750 40750 55750 39750 170 -1 +De 0 0 81 0 0 +Po 0 62350 52500 62350 50750 170 -1 +De 0 0 81 0 800 +Po 0 62500 50600 62500 50500 170 -1 +De 0 0 81 0 0 +Po 0 55750 40750 56250 41250 170 -1 +De 0 0 81 0 0 +Po 3 62500 49750 62500 49750 650 -1 +De 15 1 81 0 0 +Po 0 62500 50500 62500 49750 170 -1 +De 0 0 81 0 0 +Po 0 56250 39250 55750 39750 170 -1 +De 0 0 81 0 800 +Po 0 58000 49250 58500 49750 170 -1 +De 15 0 81 0 0 +Po 0 58000 48750 58000 49250 170 -1 +De 0 0 81 0 0 +Po 3 58000 49250 58000 49250 650 -1 +De 15 1 81 0 0 +Po 0 75250 42000 71750 45500 400 -1 +De 15 0 82 0 0 +Po 0 53250 40250 52750 39750 400 -1 +De 0 0 82 0 800 +Po 0 53000 36750 54250 36750 400 -1 +De 0 0 82 0 0 +Po 0 52750 37000 53000 36750 400 -1 +De 0 0 82 0 0 +Po 0 75250 32500 74750 32000 400 -1 +De 15 0 82 0 0 +Po 0 58250 25250 59250 25250 400 -1 +De 0 0 82 0 C00 +Po 0 59250 25250 67000 25250 400 -1 +De 0 0 82 0 800 +Po 0 67250 25500 67250 26250 400 -1 +De 0 0 82 0 400 +Po 0 52750 31000 53000 31250 400 -1 +De 0 0 82 0 0 +Po 0 53000 31250 53600 31250 400 -1 +De 0 0 82 0 400 +Po 0 46750 42500 47000 42250 400 -1 +De 15 0 82 0 0 +Po 0 70500 49750 70500 46000 400 -1 +De 15 0 82 0 0 +Po 0 49250 29250 49250 30250 400 -1 +De 0 0 82 0 800 +Po 0 53250 40250 52250 41250 400 -1 +De 0 0 82 0 800 +Po 3 52250 41750 52250 41750 650 -1 +De 15 1 82 0 0 +Po 0 52250 41250 52250 41750 400 -1 +De 0 0 82 0 0 +Po 0 51750 42250 52250 41750 400 -1 +De 15 0 82 0 0 +Po 3 48750 42250 48750 42250 650 -1 +De 15 1 82 0 0 +Po 0 48750 43250 48750 42250 400 -1 +De 0 0 82 0 800 +Po 0 48250 30250 49250 30250 400 -1 +De 0 0 82 0 800 +Po 0 74250 29000 74250 32000 400 -1 +De 0 0 82 0 400 +Po 0 47000 48750 46750 48500 400 -1 +De 15 0 82 0 0 +Po 0 51500 23750 51750 23500 400 -1 +De 0 0 82 0 0 +Po 0 49000 23750 51500 23750 250 -1 +De 0 0 82 0 0 +Po 0 49250 30250 49250 31250 400 -1 +De 0 0 82 0 0 +Po 0 50250 32250 50250 33250 400 -1 +De 0 0 82 0 0 +Po 0 49250 31250 50250 32250 400 -1 +De 0 0 82 0 0 +Po 0 52750 33250 52750 35000 400 -1 +De 0 0 82 0 0 +Po 0 54250 35500 54250 36750 400 -1 +De 0 0 82 0 0 +Po 0 54000 35250 54250 35500 400 -1 +De 0 0 82 0 0 +Po 0 53000 35250 54000 35250 400 -1 +De 0 0 82 0 0 +Po 0 52750 35000 53000 35250 400 -1 +De 0 0 82 0 0 +Po 0 53250 28250 52750 28750 400 -1 +De 0 0 82 0 800 +Po 0 53350 33250 52750 33250 400 -1 +De 0 0 82 0 0 +Po 0 52750 33250 50250 33250 400 -1 +De 0 0 82 0 0 +Po 0 53600 33000 53350 33250 400 -1 +De 0 0 82 0 0 +Po 0 56500 24000 57750 25250 400 -1 +De 15 0 82 0 0 +Po 0 48750 23500 49000 23750 250 -1 +De 0 0 82 0 0 +Po 0 70250 50000 70500 49750 400 -1 +De 15 0 82 0 0 +Po 0 53600 31250 53600 33000 400 -1 +De 0 0 82 0 800 +Po 0 75250 41250 75250 42000 400 -1 +De 15 0 82 0 0 +Po 0 75250 41250 75250 32500 400 -1 +De 15 0 82 0 0 +Po 0 57750 25250 58250 25250 400 -1 +De 15 0 82 0 400 +Po 0 69250 28750 69100 28750 400 -1 +De 0 0 82 0 800 +Po 0 48750 42250 51750 42250 400 -1 +De 15 0 82 0 0 +Po 0 48750 23500 49250 24000 400 -1 +De 15 0 82 0 0 +Po 0 50250 33250 50250 33100 400 -1 +De 0 0 82 0 400 +Po 0 70150 28750 70250 28750 400 -1 +De 0 0 82 0 0 +Po 0 67250 26250 67250 27750 400 -1 +De 0 0 82 0 800 +Po 0 48750 22750 48750 23500 400 -1 +De 0 0 82 0 800 +Po 0 52750 28750 52750 31000 170 -1 +De 0 0 82 0 0 +Po 0 54250 36750 55750 36750 400 -1 +De 0 0 82 0 0 +Po 0 55750 36750 55750 36900 400 -1 +De 0 0 82 0 400 +Po 0 48500 44100 48750 43850 400 -1 +De 0 0 82 0 0 +Po 0 48750 43850 48750 43250 400 -1 +De 0 0 82 0 400 +Po 0 46750 44100 48500 44100 400 -1 +De 0 0 82 0 800 +Po 0 56100 37250 58250 37250 400 -1 +De 0 0 82 0 400 +Po 0 46750 48500 46750 42500 400 -1 +De 15 0 82 0 0 +Po 0 48250 48750 47000 48750 400 -1 +De 15 0 82 0 0 +Po 0 67000 25250 67250 25500 400 -1 +De 0 0 82 0 0 +Po 0 48750 48250 48250 48750 400 -1 +De 15 0 82 0 0 +Po 0 47000 42250 48750 42250 400 -1 +De 15 0 82 0 0 +Po 0 56000 48250 48750 48250 400 -1 +De 15 0 82 0 0 +Po 0 61250 48250 56000 48250 400 -1 +De 15 0 82 0 800 +Po 0 70500 46000 71000 45500 400 -1 +De 15 0 82 0 0 +Po 0 67250 27750 68250 28750 400 -1 +De 0 0 82 0 0 +Po 0 74750 32000 74250 32000 400 -1 +De 15 0 82 0 400 +Po 0 70150 27500 70150 28750 400 -1 +De 0 0 82 0 800 +Po 0 68250 28750 69250 28750 400 -1 +De 0 0 82 0 400 +Po 0 65500 50000 70250 50000 400 -1 +De 15 0 82 0 0 +Po 0 63750 48250 65500 50000 400 -1 +De 15 0 82 0 0 +Po 0 61250 48250 63750 48250 400 -1 +De 15 0 82 0 800 +Po 0 71750 45500 71000 45500 400 -1 +De 15 0 82 0 0 +Po 0 74000 28750 74250 29000 400 -1 +De 0 0 82 0 0 +Po 0 72250 28750 74000 28750 400 -1 +De 0 0 82 0 800 +Po 0 52750 39750 52750 37000 170 -1 +De 0 0 82 0 0 +Po 0 51750 23500 51750 22750 400 -1 +De 0 0 82 0 400 +Po 0 49250 24000 56500 24000 400 -1 +De 15 0 82 0 0 +Po 0 48750 22750 48750 23500 400 -1 +De 15 0 82 0 800 +Po 0 70250 28750 72250 28750 400 -1 +De 0 0 82 0 400 +Po 0 69250 28750 70250 28750 400 -1 +De 0 0 82 0 800 +Po 0 56000 48350 56000 48250 400 -1 +De 15 0 82 0 0 +Po 3 56000 48350 56000 48350 650 -1 +De 15 1 82 0 0 +Po 0 57900 50250 56000 48350 400 -1 +De 0 0 82 0 0 +Po 0 57950 52500 57950 51000 400 -1 +De 0 0 82 0 800 +Po 0 57950 51000 57900 51000 400 -1 +De 0 0 82 0 0 +Po 0 57900 51000 57900 50250 400 -1 +De 0 0 82 0 0 +Po 0 55750 36900 56100 37250 400 -1 +De 0 0 82 0 800 +Po 0 47500 46250 46000 46250 170 -1 +De 0 0 83 0 0 +Po 0 45750 46000 45750 42500 170 -1 +De 0 0 83 0 0 +Po 0 46000 42250 47750 42250 170 -1 +De 0 0 83 0 0 +Po 0 51500 45250 48250 45250 170 -1 +De 0 0 83 0 0 +Po 0 51750 46250 51750 45500 170 -1 +De 0 0 83 0 800 +Po 0 45750 42500 46000 42250 170 -1 +De 0 0 83 0 0 +Po 0 48250 41750 48250 40250 170 -1 +De 0 0 83 0 400 +Po 0 47750 42250 48250 41750 170 -1 +De 0 0 83 0 0 +Po 0 51750 45500 51500 45250 170 -1 +De 0 0 83 0 0 +Po 0 47750 45750 47750 46000 170 -1 +De 0 0 83 0 0 +Po 0 47750 46000 47500 46250 170 -1 +De 0 0 83 0 0 +Po 0 46000 46250 45750 46000 170 -1 +De 0 0 83 0 0 +Po 0 48250 45250 47750 45750 170 -1 +De 0 0 83 0 0 +$EndTRACK +$ZONE +$EndZONE +$CZONE_OUTLINE +ZInfo 47AB4739 13 "GND" +ZLayer 0 +ZAux 4 E +ZClearance 200 T +ZMinThickness 100 +ZOptions 0 32 F 200 200 +ZSmoothing 0 0 +ZCorner 77000 53000 0 +ZCorner 77000 14500 0 +ZCorner 37500 14500 0 +ZCorner 37500 53000 1 +$POLYSCORNERS +53800 36300 0 0 +53005 36300 0 0 +53000 36300 0 0 +52963 36303 0 0 +52917 36308 0 0 +52913 36308 0 0 +52913 36309 0 0 +52904 36311 0 0 +52832 36332 0 0 +52770 36365 0 0 +52751 36375 0 0 +52706 36412 0 0 +52686 36428 0 0 +52681 36432 0 0 +52432 36682 0 0 +52377 36750 0 0 +52335 36827 0 0 +52309 36911 0 0 +52300 36999 0 0 +52308 37086 0 0 +52334 37170 0 0 +52375 37248 0 0 +52415 37297 0 0 +52415 38750 0 0 +52406 38747 0 0 +52305 38726 0 0 +52203 38726 0 0 +52102 38745 0 0 +52006 38783 0 0 +51920 38839 0 0 +51847 38911 0 0 +51789 38996 0 0 +51749 39086 0 0 +51715 39003 0 0 +51658 38918 0 0 +51586 38845 0 0 +51501 38787 0 0 +51406 38747 0 0 +51305 38726 0 0 +51203 38726 0 0 +51102 38745 0 0 +51006 38783 0 0 +50920 38839 0 0 +50900 38858 0 0 +50900 34724 0 0 +50900 34512 0 0 +50900 34288 0 0 +50900 34076 0 0 +50891 34028 0 0 +50872 33983 0 0 +50845 33942 0 0 +50810 33907 0 0 +50770 33879 0 0 +50725 33860 0 0 +50677 33850 0 0 +50628 33850 0 0 +50362 33850 0 0 +50300 33912 0 0 +50300 34350 0 0 +50838 34350 0 0 +50900 34288 0 0 +50900 34512 0 0 +50838 34450 0 0 +50300 34450 0 0 +50300 34888 0 0 +50362 34950 0 0 +50628 34950 0 0 +50677 34950 0 0 +50725 34940 0 0 +50770 34921 0 0 +50810 34893 0 0 +50845 34858 0 0 +50872 34817 0 0 +50891 34772 0 0 +50900 34724 0 0 +50900 38858 0 0 +50847 38911 0 0 +50789 38996 0 0 +50749 39086 0 0 +50715 39003 0 0 +50658 38918 0 0 +50586 38845 0 0 +50501 38787 0 0 +50406 38747 0 0 +50305 38726 0 0 +50203 38726 0 0 +50200 38726 0 0 +50200 34888 0 0 +50200 34450 0 0 +50200 34350 0 0 +50200 33912 0 0 +50138 33850 0 0 +49872 33850 0 0 +49823 33850 0 0 +49775 33860 0 0 +49730 33879 0 0 +49690 33907 0 0 +49655 33942 0 0 +49628 33983 0 0 +49609 34028 0 0 +49600 34076 0 0 +49600 34288 0 0 +49662 34350 0 0 +50200 34350 0 0 +50200 34450 0 0 +49662 34450 0 0 +49600 34512 0 0 +49600 34724 0 0 +49609 34772 0 0 +49628 34817 0 0 +49655 34858 0 0 +49690 34893 0 0 +49730 34921 0 0 +49775 34940 0 0 +49823 34950 0 0 +49872 34950 0 0 +50138 34950 0 0 +50200 34888 0 0 +50200 38726 0 0 +50102 38745 0 0 +50006 38783 0 0 +49920 38839 0 0 +49847 38911 0 0 +49789 38996 0 0 +49749 39086 0 0 +49715 39003 0 0 +49658 38918 0 0 +49586 38845 0 0 +49501 38787 0 0 +49406 38747 0 0 +49305 38726 0 0 +49203 38726 0 0 +49102 38745 0 0 +49006 38783 0 0 +48920 38839 0 0 +48847 38911 0 0 +48789 38996 0 0 +48777 39023 0 0 +48777 37222 0 0 +48761 37121 0 0 +48727 37024 0 0 +48703 36982 0 0 +48612 36959 0 0 +48321 37250 0 0 +48612 37541 0 0 +48703 37518 0 0 +48747 37425 0 0 +48772 37325 0 0 +48777 37222 0 0 +48777 39023 0 0 +48749 39086 0 0 +48715 39003 0 0 +48658 38918 0 0 +48586 38845 0 0 +48501 38787 0 0 +48411 38749 0 0 +48487 38720 0 0 +48574 38665 0 0 +48648 38594 0 0 +48708 38510 0 0 +48749 38417 0 0 +48772 38316 0 0 +48774 38199 0 0 +48754 38098 0 0 +48715 38003 0 0 +48658 37918 0 0 +48586 37845 0 0 +48501 37787 0 0 +48411 37749 0 0 +48476 37727 0 0 +48518 37703 0 0 +48541 37612 0 0 +48250 37321 0 0 +47959 37612 0 0 +47982 37703 0 0 +48075 37747 0 0 +48088 37750 0 0 +48006 37783 0 0 +47920 37839 0 0 +47847 37911 0 0 +47789 37996 0 0 +47749 38086 0 0 +47715 38003 0 0 +47658 37918 0 0 +47586 37845 0 0 +47501 37787 0 0 +47411 37749 0 0 +47487 37720 0 0 +47574 37665 0 0 +47648 37594 0 0 +47708 37510 0 0 +47749 37417 0 0 +47750 37411 0 0 +47773 37476 0 0 +47797 37518 0 0 +47888 37541 0 0 +48144 37285 0 0 +48179 37250 0 0 +48250 37179 0 0 +48285 37144 0 0 +48541 36888 0 0 +48518 36797 0 0 +48425 36753 0 0 +48410 36749 0 0 +48487 36720 0 0 +48574 36665 0 0 +48648 36594 0 0 +48708 36510 0 0 +48749 36417 0 0 +48772 36316 0 0 +48774 36199 0 0 +48754 36098 0 0 +48715 36003 0 0 +48658 35918 0 0 +48586 35845 0 0 +48501 35787 0 0 +48411 35749 0 0 +48487 35720 0 0 +48574 35665 0 0 +48648 35594 0 0 +48708 35510 0 0 +48749 35417 0 0 +48772 35316 0 0 +48774 35199 0 0 +48754 35098 0 0 +48715 35003 0 0 +48658 34918 0 0 +48586 34845 0 0 +48501 34787 0 0 +48411 34749 0 0 +48487 34720 0 0 +48574 34665 0 0 +48648 34594 0 0 +48708 34510 0 0 +48749 34417 0 0 +48772 34316 0 0 +48774 34199 0 0 +48754 34098 0 0 +48715 34003 0 0 +48658 33918 0 0 +48586 33845 0 0 +48501 33787 0 0 +48411 33749 0 0 +48487 33720 0 0 +48574 33665 0 0 +48648 33594 0 0 +48708 33510 0 0 +48749 33417 0 0 +48772 33316 0 0 +48774 33199 0 0 +48754 33098 0 0 +48715 33003 0 0 +48658 32918 0 0 +48586 32845 0 0 +48501 32787 0 0 +48411 32749 0 0 +48487 32720 0 0 +48574 32665 0 0 +48648 32594 0 0 +48708 32510 0 0 +48749 32417 0 0 +48772 32316 0 0 +48774 32199 0 0 +48754 32098 0 0 +48715 32003 0 0 +48658 31918 0 0 +48586 31845 0 0 +48501 31787 0 0 +48411 31749 0 0 +48487 31720 0 0 +48574 31665 0 0 +48648 31594 0 0 +48708 31510 0 0 +48749 31417 0 0 +48772 31316 0 0 +48774 31199 0 0 +48754 31098 0 0 +48715 31003 0 0 +48658 30918 0 0 +48586 30845 0 0 +48501 30787 0 0 +48411 30749 0 0 +48487 30720 0 0 +48518 30700 0 0 +48800 30700 0 0 +48800 31245 0 0 +48800 31250 0 0 +48803 31286 0 0 +48808 31333 0 0 +48808 31336 0 0 +48809 31337 0 0 +48811 31345 0 0 +48832 31418 0 0 +48834 31421 0 0 +48872 31495 0 0 +48874 31498 0 0 +48875 31499 0 0 +48892 31519 0 0 +48928 31564 0 0 +48931 31567 0 0 +48932 31568 0 0 +49800 32436 0 0 +49800 32554 0 0 +49778 32559 0 0 +49733 32578 0 0 +49692 32605 0 0 +49657 32640 0 0 +49629 32680 0 0 +49610 32725 0 0 +49600 32773 0 0 +49600 32822 0 0 +49600 33424 0 0 +49609 33472 0 0 +49628 33517 0 0 +49655 33558 0 0 +49690 33593 0 0 +49730 33621 0 0 +49775 33640 0 0 +49823 33650 0 0 +49872 33650 0 0 +50047 33650 0 0 +50048 33650 0 0 +50073 33664 0 0 +50075 33664 0 0 +50076 33665 0 0 +50092 33670 0 0 +50156 33690 0 0 +50157 33690 0 0 +50160 33691 0 0 +50213 33696 0 0 +50244 33700 0 0 +50247 33700 0 0 +50250 33700 0 0 +52300 33700 0 0 +52300 34995 0 0 +52300 35000 0 0 +52303 35036 0 0 +52308 35083 0 0 +52308 35086 0 0 +52309 35087 0 0 +52311 35095 0 0 +52332 35168 0 0 +52334 35171 0 0 +52372 35245 0 0 +52374 35248 0 0 +52375 35249 0 0 +52392 35269 0 0 +52428 35314 0 0 +52431 35317 0 0 +52432 35318 0 0 +52677 35564 0 0 +52678 35565 0 0 +52681 35568 0 0 +52717 35597 0 0 +52746 35621 0 0 +52747 35621 0 0 +52749 35623 0 0 +52774 35636 0 0 +52823 35664 0 0 +52825 35664 0 0 +52826 35665 0 0 +52834 35667 0 0 +52906 35690 0 0 +52908 35690 0 0 +52911 35691 0 0 +52930 35692 0 0 +52994 35700 0 0 +53000 35700 0 0 +53800 35700 0 0 +53800 36300 1 0 +54415 23611 0 0 +54013 24013 0 0 +53971 24063 0 0 +53940 24121 0 0 +53932 24149 0 0 +53922 24180 0 0 +53915 24245 0 0 +53915 24249 0 0 +53915 24250 0 0 +53915 25076 0 0 +53887 25068 0 0 +53800 25115 0 0 +53800 25650 0 0 +53800 25700 0 0 +53800 25800 0 0 +53800 25850 0 0 +53800 26385 0 0 +53887 26432 0 0 +53915 26423 0 0 +53915 27361 0 0 +53513 27763 0 0 +53495 27784 0 0 +53494 27784 0 0 +53406 27747 0 0 +53305 27726 0 0 +53203 27726 0 0 +53102 27745 0 0 +53006 27783 0 0 +52920 27839 0 0 +52847 27911 0 0 +52789 27996 0 0 +52749 28086 0 0 +52715 28003 0 0 +52658 27918 0 0 +52586 27845 0 0 +52585 27844 0 0 +52585 27389 0 0 +53484 26489 0 0 +53487 26487 0 0 +53526 26439 0 0 +53528 26437 0 0 +53543 26408 0 0 +53552 26413 0 0 +53613 26432 0 0 +53700 26385 0 0 +53700 25850 0 0 +53700 25800 0 0 +53700 25700 0 0 +53700 25650 0 0 +53700 25115 0 0 +53613 25068 0 0 +53585 25076 0 0 +53585 24389 0 0 +53984 23989 0 0 +53987 23987 0 0 +54026 23939 0 0 +54029 23937 0 0 +54058 23882 0 0 +54060 23879 0 0 +54069 23847 0 0 +54078 23820 0 0 +54078 23817 0 0 +54085 23755 0 0 +54085 23751 0 0 +54085 23750 0 0 +54085 23339 0 0 +54101 23329 0 0 +54179 23252 0 0 +54241 23162 0 0 +54249 23141 0 0 +54256 23156 0 0 +54316 23247 0 0 +54394 23325 0 0 +54415 23339 0 0 +54415 23611 1 0 +55321 28250 0 0 +55250 28321 0 0 +55215 28356 0 0 +54959 28612 0 0 +54982 28703 0 0 +55075 28747 0 0 +55088 28750 0 0 +55006 28783 0 0 +54920 28839 0 0 +54847 28911 0 0 +54789 28996 0 0 +54749 29086 0 0 +54715 29003 0 0 +54658 28918 0 0 +54586 28845 0 0 +54501 28787 0 0 +54411 28749 0 0 +54487 28720 0 0 +54574 28665 0 0 +54648 28594 0 0 +54708 28510 0 0 +54749 28417 0 0 +54750 28411 0 0 +54773 28476 0 0 +54797 28518 0 0 +54888 28541 0 0 +55144 28285 0 0 +55179 28250 0 0 +55250 28179 0 0 +55321 28250 1 0 +58086 38750 0 0 +58006 38783 0 0 +57920 38839 0 0 +57847 38911 0 0 +57789 38996 0 0 +57749 39086 0 0 +57715 39003 0 0 +57658 38918 0 0 +57586 38845 0 0 +57501 38787 0 0 +57406 38747 0 0 +57305 38726 0 0 +57203 38726 0 0 +57102 38745 0 0 +57006 38783 0 0 +56920 38839 0 0 +56847 38911 0 0 +56789 38996 0 0 +56749 39086 0 0 +56715 39003 0 0 +56658 38918 0 0 +56586 38845 0 0 +56501 38787 0 0 +56406 38747 0 0 +56305 38726 0 0 +56203 38726 0 0 +56102 38745 0 0 +56006 38783 0 0 +55920 38839 0 0 +55847 38911 0 0 +55789 38996 0 0 +55749 39087 0 0 +55727 39024 0 0 +55703 38982 0 0 +55612 38959 0 0 +55541 39030 0 0 +55541 38888 0 0 +55518 38797 0 0 +55425 38753 0 0 +55325 38728 0 0 +55222 38723 0 0 +55121 38739 0 0 +55024 38773 0 0 +54982 38797 0 0 +54959 38888 0 0 +55250 39179 0 0 +55541 38888 0 0 +55541 39030 0 0 +55356 39215 0 0 +55321 39250 0 0 +55250 39321 0 0 +55215 39356 0 0 +54959 39612 0 0 +54982 39703 0 0 +55075 39747 0 0 +55088 39750 0 0 +55006 39783 0 0 +54920 39839 0 0 +54847 39911 0 0 +54789 39996 0 0 +54749 40086 0 0 +54715 40003 0 0 +54658 39918 0 0 +54586 39845 0 0 +54501 39787 0 0 +54411 39749 0 0 +54487 39720 0 0 +54574 39665 0 0 +54648 39594 0 0 +54708 39510 0 0 +54749 39417 0 0 +54750 39411 0 0 +54773 39476 0 0 +54797 39518 0 0 +54888 39541 0 0 +55179 39250 0 0 +54888 38959 0 0 +54797 38982 0 0 +54753 39075 0 0 +54749 39087 0 0 +54715 39003 0 0 +54658 38918 0 0 +54586 38845 0 0 +54501 38787 0 0 +54406 38747 0 0 +54305 38726 0 0 +54203 38726 0 0 +54102 38745 0 0 +54006 38783 0 0 +53920 38839 0 0 +53847 38911 0 0 +53789 38996 0 0 +53749 39086 0 0 +53715 39003 0 0 +53658 38918 0 0 +53586 38845 0 0 +53501 38787 0 0 +53406 38747 0 0 +53305 38726 0 0 +53203 38726 0 0 +53102 38745 0 0 +53085 38751 0 0 +53085 37301 0 0 +53186 37200 0 0 +54244 37200 0 0 +54247 37200 0 0 +54250 37200 0 0 +55100 37200 0 0 +55100 37224 0 0 +55109 37272 0 0 +55128 37317 0 0 +55155 37358 0 0 +55190 37393 0 0 +55230 37421 0 0 +55275 37440 0 0 +55323 37450 0 0 +55372 37450 0 0 +55663 37450 0 0 +55777 37564 0 0 +55778 37565 0 0 +55781 37568 0 0 +55817 37597 0 0 +55846 37621 0 0 +55847 37621 0 0 +55849 37623 0 0 +55861 37629 0 0 +55923 37664 0 0 +55926 37664 0 0 +56006 37690 0 0 +56007 37690 0 0 +56010 37691 0 0 +56034 37693 0 0 +56094 37700 0 0 +56100 37700 0 0 +57979 37700 0 0 +57993 37709 0 0 +58086 37750 0 0 +58006 37783 0 0 +57920 37839 0 0 +57847 37911 0 0 +57789 37996 0 0 +57748 38090 0 0 +57727 38191 0 0 +57725 38294 0 0 +57744 38395 0 0 +57782 38490 0 0 +57837 38577 0 0 +57908 38651 0 0 +57993 38709 0 0 +58086 38750 1 0 +58321 35250 0 0 +58250 35321 0 0 +58215 35356 0 0 +58179 35392 0 0 +58179 35250 0 0 +57888 34959 0 0 +57797 34982 0 0 +57753 35075 0 0 +57728 35175 0 0 +57723 35278 0 0 +57739 35379 0 0 +57773 35476 0 0 +57797 35518 0 0 +57888 35541 0 0 +58179 35250 0 0 +58179 35392 0 0 +57959 35612 0 0 +57982 35703 0 0 +58075 35747 0 0 +58088 35750 0 0 +58006 35783 0 0 +57920 35839 0 0 +57847 35911 0 0 +57789 35996 0 0 +57748 36090 0 0 +57727 36191 0 0 +57725 36294 0 0 +57744 36395 0 0 +57782 36490 0 0 +57837 36577 0 0 +57908 36651 0 0 +57993 36709 0 0 +58086 36750 0 0 +58006 36783 0 0 +57979 36800 0 0 +56400 36800 0 0 +56400 36576 0 0 +56400 35924 0 0 +56400 35712 0 0 +56400 35488 0 0 +56400 35276 0 0 +56391 35228 0 0 +56372 35183 0 0 +56345 35142 0 0 +56310 35107 0 0 +56270 35079 0 0 +56225 35060 0 0 +56177 35050 0 0 +56128 35050 0 0 +55862 35050 0 0 +55800 35112 0 0 +55800 35550 0 0 +56338 35550 0 0 +56400 35488 0 0 +56400 35712 0 0 +56338 35650 0 0 +55800 35650 0 0 +55800 36088 0 0 +55862 36150 0 0 +56128 36150 0 0 +56177 36150 0 0 +56225 36140 0 0 +56270 36121 0 0 +56310 36093 0 0 +56345 36058 0 0 +56372 36017 0 0 +56391 35972 0 0 +56400 35924 0 0 +56400 36576 0 0 +56391 36528 0 0 +56372 36483 0 0 +56345 36442 0 0 +56310 36407 0 0 +56270 36379 0 0 +56225 36360 0 0 +56177 36350 0 0 +56128 36350 0 0 +55952 36350 0 0 +55927 36336 0 0 +55924 36335 0 0 +55907 36330 0 0 +55844 36310 0 0 +55842 36309 0 0 +55840 36309 0 0 +55786 36303 0 0 +55756 36300 0 0 +55753 36300 0 0 +55750 36300 0 0 +55700 36300 0 0 +55700 36088 0 0 +55700 35650 0 0 +55700 35550 0 0 +55700 35112 0 0 +55638 35050 0 0 +55450 35050 0 0 +55450 31677 0 0 +55450 31628 0 0 +55450 31362 0 0 +55450 31138 0 0 +55450 30872 0 0 +55450 30823 0 0 +55440 30775 0 0 +55421 30730 0 0 +55393 30690 0 0 +55358 30655 0 0 +55317 30628 0 0 +55272 30609 0 0 +55224 30600 0 0 +55012 30600 0 0 +54950 30662 0 0 +54950 31200 0 0 +55388 31200 0 0 +55450 31138 0 0 +55450 31362 0 0 +55388 31300 0 0 +54950 31300 0 0 +54950 31838 0 0 +55012 31900 0 0 +55224 31900 0 0 +55272 31891 0 0 +55317 31872 0 0 +55358 31845 0 0 +55393 31810 0 0 +55421 31770 0 0 +55440 31725 0 0 +55450 31677 0 0 +55450 35050 0 0 +55372 35050 0 0 +55323 35050 0 0 +55275 35060 0 0 +55230 35079 0 0 +55190 35107 0 0 +55155 35142 0 0 +55128 35183 0 0 +55109 35228 0 0 +55100 35276 0 0 +55100 35488 0 0 +55162 35550 0 0 +55700 35550 0 0 +55700 35650 0 0 +55162 35650 0 0 +55100 35712 0 0 +55100 35924 0 0 +55109 35972 0 0 +55128 36017 0 0 +55155 36058 0 0 +55190 36093 0 0 +55230 36121 0 0 +55275 36140 0 0 +55323 36150 0 0 +55372 36150 0 0 +55638 36150 0 0 +55700 36088 0 0 +55700 36300 0 0 +54850 36300 0 0 +54850 31838 0 0 +54850 31300 0 0 +54850 31200 0 0 +54850 30662 0 0 +54788 30600 0 0 +54576 30600 0 0 +54528 30609 0 0 +54483 30628 0 0 +54442 30655 0 0 +54407 30690 0 0 +54379 30730 0 0 +54360 30775 0 0 +54350 30823 0 0 +54350 30872 0 0 +54350 31138 0 0 +54412 31200 0 0 +54850 31200 0 0 +54850 31300 0 0 +54412 31300 0 0 +54350 31362 0 0 +54350 31628 0 0 +54350 31677 0 0 +54360 31725 0 0 +54379 31770 0 0 +54407 31810 0 0 +54442 31845 0 0 +54483 31872 0 0 +54528 31891 0 0 +54576 31900 0 0 +54788 31900 0 0 +54850 31838 0 0 +54850 36300 0 0 +54700 36300 0 0 +54700 35505 0 0 +54700 35500 0 0 +54696 35463 0 0 +54692 35417 0 0 +54691 35413 0 0 +54688 35404 0 0 +54668 35332 0 0 +54666 35329 0 0 +54635 35270 0 0 +54627 35255 0 0 +54625 35251 0 0 +54587 35206 0 0 +54572 35186 0 0 +54569 35183 0 0 +54568 35181 0 0 +54325 34939 0 0 +54322 34935 0 0 +54318 34932 0 0 +54254 34879 0 0 +54250 34877 0 0 +54177 34836 0 0 +54173 34835 0 0 +54094 34810 0 0 +54091 34809 0 0 +54089 34809 0 0 +54051 34805 0 0 +54006 34800 0 0 +54001 34800 0 0 +54000 34800 0 0 +53200 34800 0 0 +53200 33700 0 0 +53345 33700 0 0 +53350 33700 0 0 +53386 33696 0 0 +53433 33692 0 0 +53436 33691 0 0 +53437 33691 0 0 +53445 33688 0 0 +53518 33668 0 0 +53521 33666 0 0 +53595 33628 0 0 +53598 33625 0 0 +53599 33625 0 0 +53619 33608 0 0 +53664 33572 0 0 +53667 33569 0 0 +53668 33568 0 0 +53914 33322 0 0 +53915 33322 0 0 +53915 33321 0 0 +53918 33319 0 0 +53947 33283 0 0 +53971 33254 0 0 +53971 33252 0 0 +53973 33251 0 0 +53986 33226 0 0 +54014 33177 0 0 +54014 33174 0 0 +54015 33174 0 0 +54017 33165 0 0 +54040 33094 0 0 +54040 33091 0 0 +54041 33089 0 0 +54042 33069 0 0 +54050 33006 0 0 +54050 33000 0 0 +54050 31850 0 0 +54058 31845 0 0 +54093 31810 0 0 +54121 31770 0 0 +54140 31725 0 0 +54150 31677 0 0 +54150 31628 0 0 +54150 30826 0 0 +54141 30778 0 0 +54122 30733 0 0 +54095 30692 0 0 +54060 30657 0 0 +54020 30629 0 0 +53975 30610 0 0 +53927 30600 0 0 +53878 30600 0 0 +53276 30600 0 0 +53228 30609 0 0 +53183 30628 0 0 +53142 30655 0 0 +53107 30690 0 0 +53094 30708 0 0 +53085 30698 0 0 +53085 29750 0 0 +53087 29751 0 0 +53187 29773 0 0 +53290 29775 0 0 +53391 29757 0 0 +53487 29720 0 0 +53574 29665 0 0 +53648 29594 0 0 +53708 29510 0 0 +53749 29417 0 0 +53750 29410 0 0 +53782 29490 0 0 +53837 29577 0 0 +53908 29651 0 0 +53993 29709 0 0 +54087 29751 0 0 +54187 29773 0 0 +54290 29775 0 0 +54391 29757 0 0 +54487 29720 0 0 +54574 29665 0 0 +54648 29594 0 0 +54708 29510 0 0 +54749 29417 0 0 +54750 29410 0 0 +54782 29490 0 0 +54837 29577 0 0 +54908 29651 0 0 +54993 29709 0 0 +55087 29751 0 0 +55187 29773 0 0 +55290 29775 0 0 +55391 29757 0 0 +55487 29720 0 0 +55574 29665 0 0 +55648 29594 0 0 +55708 29510 0 0 +55749 29417 0 0 +55750 29410 0 0 +55782 29490 0 0 +55837 29577 0 0 +55908 29651 0 0 +55993 29709 0 0 +56087 29751 0 0 +56187 29773 0 0 +56290 29775 0 0 +56391 29757 0 0 +56487 29720 0 0 +56574 29665 0 0 +56648 29594 0 0 +56708 29510 0 0 +56749 29417 0 0 +56750 29410 0 0 +56782 29490 0 0 +56837 29577 0 0 +56908 29651 0 0 +56993 29709 0 0 +57087 29751 0 0 +57187 29773 0 0 +57290 29775 0 0 +57391 29757 0 0 +57487 29720 0 0 +57574 29665 0 0 +57648 29594 0 0 +57708 29510 0 0 +57749 29417 0 0 +57750 29410 0 0 +57782 29490 0 0 +57837 29577 0 0 +57908 29651 0 0 +57993 29709 0 0 +58086 29750 0 0 +58006 29783 0 0 +57920 29839 0 0 +57847 29911 0 0 +57789 29996 0 0 +57748 30090 0 0 +57727 30191 0 0 +57725 30294 0 0 +57744 30395 0 0 +57782 30490 0 0 +57837 30577 0 0 +57908 30651 0 0 +57993 30709 0 0 +58086 30750 0 0 +58006 30783 0 0 +57920 30839 0 0 +57847 30911 0 0 +57789 30996 0 0 +57748 31090 0 0 +57727 31191 0 0 +57725 31294 0 0 +57744 31395 0 0 +57782 31490 0 0 +57837 31577 0 0 +57908 31651 0 0 +57993 31709 0 0 +58086 31750 0 0 +58006 31783 0 0 +57920 31839 0 0 +57847 31911 0 0 +57789 31996 0 0 +57748 32090 0 0 +57727 32191 0 0 +57725 32294 0 0 +57744 32395 0 0 +57782 32490 0 0 +57837 32577 0 0 +57908 32651 0 0 +57993 32709 0 0 +58086 32750 0 0 +58006 32783 0 0 +57920 32839 0 0 +57847 32911 0 0 +57789 32996 0 0 +57748 33090 0 0 +57727 33191 0 0 +57725 33294 0 0 +57744 33395 0 0 +57782 33490 0 0 +57837 33577 0 0 +57908 33651 0 0 +57993 33709 0 0 +58086 33750 0 0 +58006 33783 0 0 +57920 33839 0 0 +57847 33911 0 0 +57789 33996 0 0 +57748 34090 0 0 +57727 34191 0 0 +57725 34294 0 0 +57744 34395 0 0 +57782 34490 0 0 +57837 34577 0 0 +57908 34651 0 0 +57993 34709 0 0 +58086 34750 0 0 +58024 34773 0 0 +57982 34797 0 0 +57959 34888 0 0 +58215 35144 0 0 +58250 35179 0 0 +58321 35250 1 0 +62441 31415 0 0 +59749 31415 0 0 +59772 31325 0 0 +59777 31222 0 0 +59761 31121 0 0 +59727 31024 0 0 +59703 30982 0 0 +59612 30959 0 0 +59356 31215 0 0 +59321 31250 0 0 +59250 31321 0 0 +59179 31250 0 0 +59144 31215 0 0 +58888 30959 0 0 +58797 30982 0 0 +58753 31075 0 0 +58749 31087 0 0 +58715 31003 0 0 +58658 30918 0 0 +58586 30845 0 0 +58501 30787 0 0 +58411 30749 0 0 +58487 30720 0 0 +58574 30665 0 0 +58648 30594 0 0 +58708 30510 0 0 +58749 30417 0 0 +58750 30410 0 0 +58782 30490 0 0 +58837 30577 0 0 +58908 30651 0 0 +58993 30709 0 0 +59086 30750 0 0 +59024 30773 0 0 +58982 30797 0 0 +58959 30888 0 0 +59250 31179 0 0 +59541 30888 0 0 +59518 30797 0 0 +59425 30753 0 0 +59410 30749 0 0 +59487 30720 0 0 +59574 30665 0 0 +59648 30594 0 0 +59654 30585 0 0 +61611 30585 0 0 +62441 31415 1 0 +76940 19409 0 0 +76938 19404 0 0 +76918 19332 0 0 +76916 19329 0 0 +76885 19270 0 0 +76877 19255 0 0 +76875 19251 0 0 +76837 19206 0 0 +76822 19186 0 0 +76819 19183 0 0 +76818 19182 0 0 +75822 18186 0 0 +75818 18182 0 0 +75818 18181 0 0 +75575 17939 0 0 +75572 17935 0 0 +75568 17932 0 0 +75504 17879 0 0 +75500 17877 0 0 +75427 17836 0 0 +75423 17835 0 0 +75344 17810 0 0 +75341 17809 0 0 +75339 17809 0 0 +75301 17805 0 0 +75256 17800 0 0 +75251 17800 0 0 +75250 17800 0 0 +68936 17800 0 0 +67968 16832 0 0 +67995 16835 0 0 +67998 16835 0 0 +68000 16835 0 0 +73312 16835 0 0 +73318 16843 0 0 +73393 16920 0 0 +73481 16982 0 0 +73580 17025 0 0 +73685 17048 0 0 +73792 17050 0 0 +73899 17031 0 0 +73999 16992 0 0 +74090 16935 0 0 +74168 16860 0 0 +74230 16772 0 0 +74274 16674 0 0 +74297 16569 0 0 +74299 16446 0 0 +74278 16340 0 0 +74237 16241 0 0 +74177 16151 0 0 +74102 16075 0 0 +74012 16015 0 0 +73913 15973 0 0 +73807 15951 0 0 +73700 15951 0 0 +73594 15971 0 0 +73494 16011 0 0 +73404 16070 0 0 +73327 16146 0 0 +73314 16165 0 0 +68138 16165 0 0 +67489 15516 0 0 +67487 15513 0 0 +67437 15471 0 0 +67382 15442 0 0 +67379 15440 0 0 +67351 15432 0 0 +67320 15422 0 0 +67255 15415 0 0 +67251 15415 0 0 +67250 15415 0 0 +55500 15415 0 0 +55435 15421 0 0 +55378 15438 0 0 +55375 15439 0 0 +55374 15439 0 0 +55372 15440 0 0 +55351 15451 0 0 +55317 15469 0 0 +55266 15510 0 0 +55265 15510 0 0 +55264 15512 0 0 +55259 15517 0 0 +54611 16165 0 0 +53436 16165 0 0 +53427 16151 0 0 +53352 16075 0 0 +53262 16015 0 0 +53163 15973 0 0 +53057 15951 0 0 +52950 15951 0 0 +52844 15971 0 0 +52744 16011 0 0 +52654 16070 0 0 +52577 16146 0 0 +52564 16165 0 0 +51195 16165 0 0 +51260 16139 0 0 +51351 16079 0 0 +51429 16002 0 0 +51491 15912 0 0 +51534 15812 0 0 +51556 15705 0 0 +51558 15596 0 0 +51557 15302 0 0 +51536 15195 0 0 +51494 15094 0 0 +51434 15003 0 0 +51356 14925 0 0 +51266 14864 0 0 +51165 14822 0 0 +51058 14800 0 0 +50949 14800 0 0 +50842 14820 0 0 +50740 14861 0 0 +50649 14921 0 0 +50571 14998 0 0 +50509 15088 0 0 +50500 15108 0 0 +50494 15094 0 0 +50434 15003 0 0 +50356 14925 0 0 +50266 14864 0 0 +50165 14822 0 0 +50058 14800 0 0 +49949 14800 0 0 +49842 14820 0 0 +49740 14861 0 0 +49649 14921 0 0 +49571 14998 0 0 +49509 15088 0 0 +49500 15108 0 0 +49494 15094 0 0 +49434 15003 0 0 +49356 14925 0 0 +49266 14864 0 0 +49165 14822 0 0 +49058 14800 0 0 +48949 14800 0 0 +48842 14820 0 0 +48740 14861 0 0 +48649 14921 0 0 +48571 14998 0 0 +48509 15088 0 0 +48500 15108 0 0 +48494 15094 0 0 +48434 15003 0 0 +48356 14925 0 0 +48266 14864 0 0 +48165 14822 0 0 +48058 14800 0 0 +47949 14800 0 0 +47842 14820 0 0 +47740 14861 0 0 +47649 14921 0 0 +47571 14998 0 0 +47509 15088 0 0 +47466 15188 0 0 +47444 15295 0 0 +47442 15404 0 0 +47443 15698 0 0 +47464 15805 0 0 +47506 15906 0 0 +47566 15997 0 0 +47644 16075 0 0 +47734 16136 0 0 +47835 16178 0 0 +47942 16200 0 0 +48051 16200 0 0 +48158 16180 0 0 +48260 16139 0 0 +48351 16079 0 0 +48429 16002 0 0 +48491 15912 0 0 +48499 15891 0 0 +48506 15906 0 0 +48566 15997 0 0 +48644 16075 0 0 +48734 16136 0 0 +48835 16178 0 0 +48942 16200 0 0 +49051 16200 0 0 +49158 16180 0 0 +49260 16139 0 0 +49351 16079 0 0 +49429 16002 0 0 +49491 15912 0 0 +49499 15891 0 0 +49506 15906 0 0 +49566 15997 0 0 +49644 16075 0 0 +49665 16089 0 0 +49665 16250 0 0 +49671 16315 0 0 +49689 16374 0 0 +49690 16378 0 0 +49711 16418 0 0 +49719 16432 0 0 +49720 16433 0 0 +49721 16435 0 0 +49760 16483 0 0 +49762 16486 0 0 +49763 16487 0 0 +50011 16734 0 0 +50013 16736 0 0 +50061 16776 0 0 +50063 16778 0 0 +50095 16795 0 0 +50118 16808 0 0 +50120 16808 0 0 +50121 16809 0 0 +50123 16809 0 0 +50180 16828 0 0 +50183 16828 0 0 +50245 16835 0 0 +50248 16835 0 0 +50250 16835 0 0 +52562 16835 0 0 +52568 16843 0 0 +52643 16920 0 0 +52731 16982 0 0 +52771 16999 0 0 +52744 17011 0 0 +52654 17070 0 0 +52577 17146 0 0 +52564 17165 0 0 +52388 17165 0 0 +52239 17016 0 0 +52237 17013 0 0 +52187 16971 0 0 +52132 16942 0 0 +52129 16940 0 0 +52101 16932 0 0 +52070 16922 0 0 +52005 16915 0 0 +52001 16915 0 0 +52000 16915 0 0 +49250 16915 0 0 +49185 16921 0 0 +49128 16938 0 0 +49125 16939 0 0 +49124 16939 0 0 +49122 16940 0 0 +49101 16951 0 0 +49067 16969 0 0 +49016 17010 0 0 +49015 17010 0 0 +49014 17012 0 0 +49009 17017 0 0 +48763 17263 0 0 +48721 17313 0 0 +48690 17371 0 0 +48682 17399 0 0 +48672 17430 0 0 +48665 17495 0 0 +48665 17499 0 0 +48665 17500 0 0 +48665 17910 0 0 +48649 17921 0 0 +48571 17998 0 0 +48558 18016 0 0 +48551 17978 0 0 +48532 17933 0 0 +48505 17892 0 0 +48470 17857 0 0 +48430 17829 0 0 +48385 17810 0 0 +48337 17800 0 0 +48288 17800 0 0 +47666 17800 0 0 +47618 17809 0 0 +47573 17828 0 0 +47532 17855 0 0 +47497 17890 0 0 +47469 17930 0 0 +47450 17975 0 0 +47440 18023 0 0 +47440 18072 0 0 +47440 18974 0 0 +47449 19022 0 0 +47468 19067 0 0 +47495 19108 0 0 +47530 19143 0 0 +47561 19165 0 0 +47388 19165 0 0 +47335 19111 0 0 +47335 18750 0 0 +47329 18685 0 0 +47311 18628 0 0 +47311 18625 0 0 +47310 18624 0 0 +47310 18622 0 0 +47298 18601 0 0 +47281 18567 0 0 +47279 18565 0 0 +47240 18516 0 0 +47239 18515 0 0 +47238 18514 0 0 +47236 18513 0 0 +47232 18509 0 0 +46585 17861 0 0 +46585 15938 0 0 +46590 15935 0 0 +46668 15860 0 0 +46730 15772 0 0 +46774 15674 0 0 +46797 15569 0 0 +46799 15446 0 0 +46778 15340 0 0 +46737 15241 0 0 +46677 15151 0 0 +46602 15075 0 0 +46512 15015 0 0 +46413 14973 0 0 +46307 14951 0 0 +46200 14951 0 0 +46094 14971 0 0 +45994 15011 0 0 +45904 15070 0 0 +45827 15146 0 0 +45767 15234 0 0 +45724 15333 0 0 +45702 15439 0 0 +45700 15546 0 0 +45720 15652 0 0 +45759 15752 0 0 +45818 15843 0 0 +45893 15920 0 0 +45915 15935 0 0 +45915 18000 0 0 +45921 18065 0 0 +45939 18124 0 0 +45940 18128 0 0 +45961 18168 0 0 +45969 18182 0 0 +45970 18183 0 0 +45971 18185 0 0 +46010 18233 0 0 +46012 18236 0 0 +46013 18237 0 0 +46665 18888 0 0 +46665 19201 0 0 +46630 19191 0 0 +46559 19262 0 0 +46559 19120 0 0 +46532 19027 0 0 +46435 18981 0 0 +46331 18955 0 0 +46224 18949 0 0 +46118 18965 0 0 +46017 19001 0 0 +45968 19027 0 0 +45941 19120 0 0 +46250 19429 0 0 +46559 19120 0 0 +46559 19262 0 0 +46321 19500 0 0 +46630 19809 0 0 +46723 19782 0 0 +46769 19685 0 0 +46795 19581 0 0 +46798 19522 0 0 +47011 19734 0 0 +47013 19736 0 0 +47061 19776 0 0 +47063 19778 0 0 +47095 19795 0 0 +47118 19808 0 0 +47120 19808 0 0 +47121 19809 0 0 +47123 19809 0 0 +47180 19828 0 0 +47183 19828 0 0 +47245 19835 0 0 +47248 19835 0 0 +47250 19835 0 0 +49250 19835 0 0 +49312 19829 0 0 +49315 19829 0 0 +49374 19811 0 0 +49378 19810 0 0 +49418 19788 0 0 +49432 19781 0 0 +49433 19779 0 0 +49435 19779 0 0 +49483 19740 0 0 +49486 19738 0 0 +49486 19737 0 0 +49487 19737 0 0 +49638 19585 0 0 +49691 19585 0 0 +49513 19763 0 0 +49471 19813 0 0 +49440 19871 0 0 +49432 19899 0 0 +49422 19930 0 0 +49415 19995 0 0 +49415 19999 0 0 +49415 20000 0 0 +49415 22160 0 0 +49399 22171 0 0 +49321 22248 0 0 +49259 22338 0 0 +49250 22358 0 0 +49244 22344 0 0 +49184 22253 0 0 +49106 22175 0 0 +49016 22114 0 0 +48915 22072 0 0 +48808 22050 0 0 +48699 22050 0 0 +48592 22070 0 0 +48490 22111 0 0 +48399 22171 0 0 +48321 22248 0 0 +48259 22338 0 0 +48216 22438 0 0 +48194 22545 0 0 +48192 22654 0 0 +48193 22948 0 0 +48214 23055 0 0 +48256 23156 0 0 +48300 23222 0 0 +48300 23500 0 0 +48309 23587 0 0 +48317 23614 0 0 +48310 23607 0 0 +48270 23579 0 0 +48225 23560 0 0 +48177 23550 0 0 +48128 23550 0 0 +47862 23550 0 0 +47800 23612 0 0 +47800 24050 0 0 +48338 24050 0 0 +48400 23988 0 0 +48400 23779 0 0 +48431 23817 0 0 +48498 23873 0 0 +48576 23915 0 0 +48660 23941 0 0 +48732 24012 0 0 +48734 24015 0 0 +48774 24048 0 0 +48788 24059 0 0 +48789 24059 0 0 +48791 24061 0 0 +48811 24071 0 0 +48852 24095 0 0 +48854 24095 0 0 +48855 24096 0 0 +48858 24096 0 0 +48922 24117 0 0 +48926 24117 0 0 +48995 24125 0 0 +49000 24125 0 0 +51252 24125 0 0 +51325 24164 0 0 +51352 24173 0 0 +51013 24513 0 0 +50971 24563 0 0 +50940 24621 0 0 +50932 24649 0 0 +50922 24680 0 0 +50915 24745 0 0 +50915 24749 0 0 +50915 24750 0 0 +50915 25072 0 0 +50808 25050 0 0 +50699 25050 0 0 +50592 25070 0 0 +50490 25111 0 0 +50399 25171 0 0 +50321 25248 0 0 +50259 25338 0 0 +50249 25360 0 0 +50205 25284 0 0 +50133 25202 0 0 +50046 25135 0 0 +49948 25087 0 0 +49887 25068 0 0 +49800 25115 0 0 +49800 25650 0 0 +49800 25700 0 0 +49800 25800 0 0 +49800 25850 0 0 +49800 26385 0 0 +49887 26432 0 0 +49948 26413 0 0 +50046 26365 0 0 +50133 26298 0 0 +50205 26216 0 0 +50249 26139 0 0 +50256 26156 0 0 +50316 26247 0 0 +50394 26325 0 0 +50415 26339 0 0 +50415 26611 0 0 +50013 27013 0 0 +49971 27063 0 0 +49940 27121 0 0 +49932 27149 0 0 +49922 27180 0 0 +49915 27245 0 0 +49915 27249 0 0 +49915 27250 0 0 +49915 27441 0 0 +48987 26513 0 0 +48937 26471 0 0 +48897 26450 0 0 +49084 26450 0 0 +49132 26441 0 0 +49177 26422 0 0 +49218 26395 0 0 +49253 26360 0 0 +49281 26320 0 0 +49300 26275 0 0 +49308 26231 0 0 +49367 26298 0 0 +49454 26365 0 0 +49552 26413 0 0 +49613 26432 0 0 +49700 26385 0 0 +49700 25850 0 0 +49700 25800 0 0 +49700 25700 0 0 +49700 25650 0 0 +49700 25115 0 0 +49613 25068 0 0 +49552 25087 0 0 +49454 25135 0 0 +49367 25202 0 0 +49308 25268 0 0 +49301 25228 0 0 +49282 25183 0 0 +49255 25142 0 0 +49220 25107 0 0 +49180 25079 0 0 +49135 25060 0 0 +49087 25050 0 0 +49038 25050 0 0 +48416 25050 0 0 +48400 25052 0 0 +48400 24424 0 0 +48400 24212 0 0 +48338 24150 0 0 +47800 24150 0 0 +47800 24588 0 0 +47862 24650 0 0 +48128 24650 0 0 +48177 24650 0 0 +48225 24640 0 0 +48270 24621 0 0 +48310 24593 0 0 +48345 24558 0 0 +48372 24517 0 0 +48391 24472 0 0 +48400 24424 0 0 +48400 25052 0 0 +48395 25053 0 0 +48391 25028 0 0 +48372 24983 0 0 +48345 24942 0 0 +48310 24907 0 0 +48270 24879 0 0 +48225 24860 0 0 +48177 24850 0 0 +48128 24850 0 0 +47700 24850 0 0 +47700 24588 0 0 +47700 24150 0 0 +47700 24050 0 0 +47700 23612 0 0 +47638 23550 0 0 +47372 23550 0 0 +47323 23550 0 0 +47275 23560 0 0 +47230 23579 0 0 +47190 23607 0 0 +47155 23642 0 0 +47128 23683 0 0 +47109 23728 0 0 +47100 23776 0 0 +47100 23988 0 0 +47162 24050 0 0 +47700 24050 0 0 +47700 24150 0 0 +47162 24150 0 0 +47100 24212 0 0 +47100 24424 0 0 +47109 24472 0 0 +47128 24517 0 0 +47155 24558 0 0 +47190 24593 0 0 +47230 24621 0 0 +47275 24640 0 0 +47323 24650 0 0 +47372 24650 0 0 +47638 24650 0 0 +47700 24588 0 0 +47700 24850 0 0 +47326 24850 0 0 +47278 24859 0 0 +47233 24878 0 0 +47192 24905 0 0 +47157 24940 0 0 +47129 24980 0 0 +47110 25025 0 0 +47100 25073 0 0 +47100 25122 0 0 +47100 25724 0 0 +47109 25772 0 0 +47128 25817 0 0 +47155 25858 0 0 +47190 25893 0 0 +47230 25921 0 0 +47275 25940 0 0 +47323 25950 0 0 +47372 25950 0 0 +47483 25950 0 0 +47511 25984 0 0 +47512 25986 0 0 +47561 26026 0 0 +47563 26028 0 0 +47613 26055 0 0 +47618 26058 0 0 +47620 26059 0 0 +47636 26064 0 0 +47680 26078 0 0 +47683 26078 0 0 +47745 26085 0 0 +47748 26085 0 0 +47750 26085 0 0 +48190 26085 0 0 +48190 26207 0 0 +48171 26199 0 0 +48061 26176 0 0 +47948 26176 0 0 +47837 26197 0 0 +47733 26239 0 0 +47639 26300 0 0 +47625 26313 0 0 +47618 26306 0 0 +47525 26243 0 0 +47421 26199 0 0 +47311 26176 0 0 +47198 26176 0 0 +47087 26197 0 0 +46983 26239 0 0 +46889 26300 0 0 +46808 26379 0 0 +46745 26472 0 0 +46700 26575 0 0 +46677 26685 0 0 +46675 26798 0 0 +46696 26909 0 0 +46737 27013 0 0 +46798 27108 0 0 +46876 27189 0 0 +46915 27216 0 0 +46915 27250 0 0 +46921 27315 0 0 +46939 27374 0 0 +46940 27378 0 0 +46961 27418 0 0 +46969 27432 0 0 +46970 27433 0 0 +46971 27435 0 0 +47010 27483 0 0 +47012 27486 0 0 +47013 27487 0 0 +47261 27734 0 0 +47263 27736 0 0 +47311 27776 0 0 +47313 27778 0 0 +47345 27795 0 0 +47368 27808 0 0 +47370 27808 0 0 +47371 27809 0 0 +47373 27809 0 0 +47430 27828 0 0 +47433 27828 0 0 +47495 27835 0 0 +47498 27835 0 0 +47500 27835 0 0 +47926 27835 0 0 +47920 27839 0 0 +47847 27911 0 0 +47844 27915 0 0 +46638 27915 0 0 +46585 27861 0 0 +46585 25188 0 0 +46590 25185 0 0 +46668 25110 0 0 +46730 25022 0 0 +46774 24924 0 0 +46797 24819 0 0 +46799 24696 0 0 +46799 20696 0 0 +46778 20590 0 0 +46737 20491 0 0 +46677 20401 0 0 +46602 20325 0 0 +46559 20296 0 0 +46512 20265 0 0 +46413 20223 0 0 +46307 20201 0 0 +46200 20201 0 0 +46178 20204 0 0 +45932 19958 0 0 +45956 19934 0 0 +45968 19973 0 0 +46065 20019 0 0 +46169 20045 0 0 +46276 20051 0 0 +46382 20035 0 0 +46483 19999 0 0 +46532 19973 0 0 +46559 19880 0 0 +46285 19606 0 0 +46250 19571 0 0 +46179 19500 0 0 +46144 19465 0 0 +45870 19191 0 0 +45777 19218 0 0 +45731 19315 0 0 +45705 19419 0 0 +45699 19526 0 0 +45715 19632 0 0 +45751 19733 0 0 +45777 19782 0 0 +45815 19793 0 0 +45791 19817 0 0 +45487 19513 0 0 +45437 19471 0 0 +45382 19442 0 0 +45379 19440 0 0 +45351 19432 0 0 +45320 19422 0 0 +45255 19415 0 0 +45251 19415 0 0 +45250 19415 0 0 +44000 19415 0 0 +43935 19421 0 0 +43878 19438 0 0 +43875 19439 0 0 +43874 19439 0 0 +43872 19440 0 0 +43851 19451 0 0 +43817 19469 0 0 +43766 19510 0 0 +43765 19510 0 0 +43764 19512 0 0 +43759 19517 0 0 +43513 19763 0 0 +43471 19813 0 0 +43440 19871 0 0 +43432 19899 0 0 +43422 19930 0 0 +43415 19995 0 0 +43415 19999 0 0 +43415 20000 0 0 +43415 20231 0 0 +43403 20234 0 0 +43358 20253 0 0 +43317 20280 0 0 +43282 20315 0 0 +43254 20355 0 0 +43235 20400 0 0 +43225 20448 0 0 +43225 20497 0 0 +43225 20520 0 0 +43203 20482 0 0 +43112 20459 0 0 +43041 20530 0 0 +43041 20388 0 0 +43018 20297 0 0 +42925 20253 0 0 +42825 20228 0 0 +42722 20223 0 0 +42621 20239 0 0 +42524 20273 0 0 +42482 20297 0 0 +42459 20388 0 0 +42750 20679 0 0 +43041 20388 0 0 +43041 20530 0 0 +42821 20750 0 0 +43112 21041 0 0 +43203 21018 0 0 +43225 20971 0 0 +43225 21049 0 0 +43234 21097 0 0 +43253 21142 0 0 +43280 21183 0 0 +43315 21218 0 0 +43355 21246 0 0 +43400 21265 0 0 +43448 21275 0 0 +43497 21275 0 0 +44049 21275 0 0 +44097 21266 0 0 +44142 21247 0 0 +44183 21220 0 0 +44218 21185 0 0 +44246 21145 0 0 +44265 21100 0 0 +44275 21052 0 0 +44275 21003 0 0 +44275 20451 0 0 +44266 20403 0 0 +44247 20358 0 0 +44220 20317 0 0 +44185 20282 0 0 +44145 20254 0 0 +44100 20235 0 0 +44085 20231 0 0 +44085 20138 0 0 +44138 20085 0 0 +45111 20085 0 0 +45227 20201 0 0 +45200 20201 0 0 +45094 20221 0 0 +44994 20261 0 0 +44904 20320 0 0 +44827 20396 0 0 +44767 20484 0 0 +44724 20583 0 0 +44702 20689 0 0 +44700 20796 0 0 +44720 20902 0 0 +44759 21002 0 0 +44818 21093 0 0 +44874 21151 0 0 +43513 22513 0 0 +43471 22563 0 0 +43440 22621 0 0 +43432 22649 0 0 +43422 22680 0 0 +43415 22745 0 0 +43415 22749 0 0 +43415 22750 0 0 +43415 23231 0 0 +43403 23234 0 0 +43358 23253 0 0 +43317 23280 0 0 +43282 23315 0 0 +43254 23355 0 0 +43235 23400 0 0 +43225 23448 0 0 +43225 23497 0 0 +43225 23520 0 0 +43203 23482 0 0 +43112 23459 0 0 +43041 23530 0 0 +43041 23388 0 0 +43041 21112 0 0 +42750 20821 0 0 +42679 20892 0 0 +42679 20750 0 0 +42388 20459 0 0 +42297 20482 0 0 +42253 20575 0 0 +42228 20675 0 0 +42223 20778 0 0 +42239 20879 0 0 +42273 20976 0 0 +42297 21018 0 0 +42388 21041 0 0 +42679 20750 0 0 +42679 20892 0 0 +42459 21112 0 0 +42482 21203 0 0 +42575 21247 0 0 +42675 21272 0 0 +42778 21277 0 0 +42879 21261 0 0 +42976 21227 0 0 +43018 21203 0 0 +43041 21112 0 0 +43041 23388 0 0 +43018 23297 0 0 +42925 23253 0 0 +42825 23228 0 0 +42722 23223 0 0 +42621 23239 0 0 +42524 23273 0 0 +42482 23297 0 0 +42459 23388 0 0 +42750 23679 0 0 +43041 23388 0 0 +43041 23530 0 0 +42821 23750 0 0 +43112 24041 0 0 +43203 24018 0 0 +43225 23971 0 0 +43225 24049 0 0 +43234 24097 0 0 +43253 24142 0 0 +43280 24183 0 0 +43315 24218 0 0 +43355 24246 0 0 +43400 24265 0 0 +43448 24275 0 0 +43497 24275 0 0 +44049 24275 0 0 +44097 24266 0 0 +44142 24247 0 0 +44183 24220 0 0 +44218 24185 0 0 +44246 24145 0 0 +44265 24100 0 0 +44275 24052 0 0 +44275 24003 0 0 +44275 23451 0 0 +44266 23403 0 0 +44247 23358 0 0 +44220 23317 0 0 +44185 23282 0 0 +44145 23254 0 0 +44100 23235 0 0 +44085 23231 0 0 +44085 22889 0 0 +45484 21489 0 0 +45487 21487 0 0 +45526 21439 0 0 +45528 21437 0 0 +45545 21404 0 0 +45558 21382 0 0 +45558 21379 0 0 +45559 21379 0 0 +45559 21377 0 0 +45578 21320 0 0 +45578 21317 0 0 +45585 21255 0 0 +45585 21252 0 0 +45585 21250 0 0 +45585 21188 0 0 +45590 21185 0 0 +45668 21110 0 0 +45730 21022 0 0 +45749 20978 0 0 +45759 21002 0 0 +45818 21093 0 0 +45893 21170 0 0 +45981 21232 0 0 +46080 21275 0 0 +46185 21298 0 0 +46292 21300 0 0 +46399 21281 0 0 +46499 21242 0 0 +46590 21185 0 0 +46668 21110 0 0 +46730 21022 0 0 +46774 20924 0 0 +46797 20819 0 0 +46799 20696 0 0 +46799 24696 0 0 +46778 24590 0 0 +46737 24491 0 0 +46677 24401 0 0 +46602 24325 0 0 +46512 24265 0 0 +46413 24223 0 0 +46307 24201 0 0 +46200 24201 0 0 +46094 24221 0 0 +45994 24261 0 0 +45904 24320 0 0 +45827 24396 0 0 +45767 24484 0 0 +45750 24522 0 0 +45737 24491 0 0 +45677 24401 0 0 +45602 24325 0 0 +45512 24265 0 0 +45413 24223 0 0 +45307 24201 0 0 +45200 24201 0 0 +45094 24221 0 0 +44994 24261 0 0 +44904 24320 0 0 +44827 24396 0 0 +44767 24484 0 0 +44724 24583 0 0 +44702 24689 0 0 +44700 24796 0 0 +44720 24902 0 0 +44759 25002 0 0 +44818 25093 0 0 +44893 25170 0 0 +44915 25185 0 0 +44915 28250 0 0 +44921 28315 0 0 +44939 28374 0 0 +44940 28378 0 0 +44961 28418 0 0 +44969 28432 0 0 +44970 28433 0 0 +44971 28435 0 0 +45010 28483 0 0 +45012 28486 0 0 +45013 28487 0 0 +45391 28865 0 0 +43889 28865 0 0 +43041 28017 0 0 +43041 24112 0 0 +42750 23821 0 0 +42679 23892 0 0 +42679 23750 0 0 +42388 23459 0 0 +42297 23482 0 0 +42253 23575 0 0 +42228 23675 0 0 +42223 23778 0 0 +42239 23879 0 0 +42273 23976 0 0 +42297 24018 0 0 +42388 24041 0 0 +42679 23750 0 0 +42679 23892 0 0 +42459 24112 0 0 +42482 24203 0 0 +42575 24247 0 0 +42675 24272 0 0 +42778 24277 0 0 +42879 24261 0 0 +42976 24227 0 0 +43018 24203 0 0 +43041 24112 0 0 +43041 28017 0 0 +42987 27963 0 0 +42937 27921 0 0 +42882 27892 0 0 +42879 27890 0 0 +42851 27882 0 0 +42820 27872 0 0 +42755 27865 0 0 +42751 27865 0 0 +42750 27865 0 0 +40686 27865 0 0 +40677 27851 0 0 +40602 27775 0 0 +40512 27715 0 0 +40413 27673 0 0 +40307 27651 0 0 +40249 27651 0 0 +40249 25402 0 0 +40211 25210 0 0 +40136 25029 0 0 +40028 24866 0 0 +39890 24727 0 0 +39727 24617 0 0 +39547 24541 0 0 +39355 24502 0 0 +39159 24500 0 0 +38967 24537 0 0 +38785 24610 0 0 +38621 24718 0 0 +38481 24855 0 0 +38370 25016 0 0 +38293 25197 0 0 +38252 25388 0 0 +38250 25584 0 0 +38285 25777 0 0 +38357 25959 0 0 +38463 26124 0 0 +38599 26264 0 0 +38760 26376 0 0 +38940 26455 0 0 +39131 26497 0 0 +39327 26501 0 0 +39520 26467 0 0 +39703 26396 0 0 +39868 26291 0 0 +40010 26156 0 0 +40123 25996 0 0 +40202 25817 0 0 +40246 25626 0 0 +40249 25402 0 0 +40249 27651 0 0 +40200 27651 0 0 +40094 27671 0 0 +39994 27711 0 0 +39904 27770 0 0 +39827 27846 0 0 +39767 27934 0 0 +39724 28033 0 0 +39702 28139 0 0 +39700 28246 0 0 +39720 28352 0 0 +39759 28452 0 0 +39818 28543 0 0 +39893 28620 0 0 +39981 28682 0 0 +40080 28725 0 0 +40185 28748 0 0 +40292 28750 0 0 +40399 28731 0 0 +40499 28692 0 0 +40590 28635 0 0 +40668 28560 0 0 +40685 28535 0 0 +42611 28535 0 0 +43041 28965 0 0 +40686 28965 0 0 +40677 28951 0 0 +40602 28875 0 0 +40512 28815 0 0 +40413 28773 0 0 +40307 28751 0 0 +40200 28751 0 0 +40094 28771 0 0 +39994 28811 0 0 +39904 28870 0 0 +39827 28946 0 0 +39801 28984 0 0 +39801 28724 0 0 +39785 28618 0 0 +39749 28517 0 0 +39723 28468 0 0 +39630 28441 0 0 +39559 28512 0 0 +39559 28370 0 0 +39532 28277 0 0 +39435 28231 0 0 +39331 28205 0 0 +39224 28199 0 0 +39118 28215 0 0 +39017 28251 0 0 +38968 28277 0 0 +38941 28370 0 0 +39250 28679 0 0 +39559 28370 0 0 +39559 28512 0 0 +39321 28750 0 0 +39630 29059 0 0 +39723 29032 0 0 +39769 28935 0 0 +39795 28831 0 0 +39801 28724 0 0 +39801 28984 0 0 +39767 29034 0 0 +39724 29133 0 0 +39702 29239 0 0 +39700 29346 0 0 +39720 29452 0 0 +39759 29552 0 0 +39818 29643 0 0 +39893 29720 0 0 +39981 29782 0 0 +40080 29825 0 0 +40185 29848 0 0 +40292 29850 0 0 +40399 29831 0 0 +40499 29792 0 0 +40590 29735 0 0 +40668 29660 0 0 +40685 29635 0 0 +43111 29635 0 0 +43541 30065 0 0 +40686 30065 0 0 +40677 30051 0 0 +40602 29975 0 0 +40512 29915 0 0 +40413 29873 0 0 +40307 29851 0 0 +40200 29851 0 0 +40094 29871 0 0 +39994 29911 0 0 +39904 29970 0 0 +39827 30046 0 0 +39801 30084 0 0 +39801 29824 0 0 +39785 29718 0 0 +39749 29617 0 0 +39723 29568 0 0 +39630 29541 0 0 +39559 29612 0 0 +39559 29470 0 0 +39532 29377 0 0 +39435 29331 0 0 +39331 29305 0 0 +39276 29301 0 0 +39382 29285 0 0 +39483 29249 0 0 +39532 29223 0 0 +39559 29130 0 0 +39250 28821 0 0 +39179 28892 0 0 +39179 28750 0 0 +38870 28441 0 0 +38777 28468 0 0 +38731 28565 0 0 +38705 28669 0 0 +38699 28776 0 0 +38715 28882 0 0 +38751 28983 0 0 +38777 29032 0 0 +38870 29059 0 0 +39179 28750 0 0 +39179 28892 0 0 +38941 29130 0 0 +38968 29223 0 0 +39065 29269 0 0 +39169 29295 0 0 +39276 29301 0 0 +39224 29299 0 0 +39118 29315 0 0 +39017 29351 0 0 +38968 29377 0 0 +38941 29470 0 0 +39250 29779 0 0 +39559 29470 0 0 +39559 29612 0 0 +39321 29850 0 0 +39630 30159 0 0 +39723 30132 0 0 +39769 30035 0 0 +39795 29931 0 0 +39801 29824 0 0 +39801 30084 0 0 +39767 30134 0 0 +39724 30233 0 0 +39702 30339 0 0 +39700 30446 0 0 +39720 30552 0 0 +39759 30652 0 0 +39818 30743 0 0 +39893 30820 0 0 +39981 30882 0 0 +40080 30925 0 0 +39994 30961 0 0 +39904 31020 0 0 +39827 31096 0 0 +39801 31134 0 0 +39801 30904 0 0 +39785 30798 0 0 +39749 30697 0 0 +39723 30648 0 0 +39630 30621 0 0 +39559 30692 0 0 +39559 30550 0 0 +39532 30457 0 0 +39435 30411 0 0 +39350 30389 0 0 +39382 30385 0 0 +39483 30349 0 0 +39532 30323 0 0 +39559 30230 0 0 +39250 29921 0 0 +39179 29992 0 0 +39179 29850 0 0 +38870 29541 0 0 +38777 29568 0 0 +38731 29665 0 0 +38705 29769 0 0 +38699 29876 0 0 +38715 29982 0 0 +38751 30083 0 0 +38777 30132 0 0 +38870 30159 0 0 +39179 29850 0 0 +39179 29992 0 0 +38941 30230 0 0 +38968 30323 0 0 +39065 30369 0 0 +39149 30390 0 0 +39118 30395 0 0 +39017 30431 0 0 +38968 30457 0 0 +38941 30550 0 0 +39250 30859 0 0 +39559 30550 0 0 +39559 30692 0 0 +39321 30930 0 0 +39630 31239 0 0 +39723 31212 0 0 +39769 31115 0 0 +39795 31011 0 0 +39801 30904 0 0 +39801 31134 0 0 +39767 31184 0 0 +39724 31283 0 0 +39702 31389 0 0 +39700 31496 0 0 +39720 31602 0 0 +39759 31702 0 0 +39818 31793 0 0 +39893 31870 0 0 +39981 31932 0 0 +40080 31975 0 0 +40185 31998 0 0 +40292 32000 0 0 +40399 31981 0 0 +40499 31942 0 0 +40590 31885 0 0 +40668 31810 0 0 +40685 31785 0 0 +40748 31785 0 0 +40750 31785 0 0 +40813 31779 0 0 +40815 31779 0 0 +40866 31763 0 0 +40875 31761 0 0 +40875 31760 0 0 +40878 31760 0 0 +40933 31730 0 0 +40935 31729 0 0 +40984 31689 0 0 +40986 31688 0 0 +41026 31639 0 0 +41028 31637 0 0 +41055 31587 0 0 +41056 31585 0 0 +41191 31585 0 0 +40626 32149 0 0 +40602 32125 0 0 +40512 32065 0 0 +40413 32023 0 0 +40307 32001 0 0 +40200 32001 0 0 +40094 32021 0 0 +39994 32061 0 0 +39904 32120 0 0 +39827 32196 0 0 +39801 32234 0 0 +39801 31964 0 0 +39785 31858 0 0 +39749 31757 0 0 +39723 31708 0 0 +39630 31681 0 0 +39559 31752 0 0 +39559 31610 0 0 +39532 31517 0 0 +39435 31471 0 0 +39393 31460 0 0 +39483 31429 0 0 +39532 31403 0 0 +39559 31310 0 0 +39250 31001 0 0 +39179 31072 0 0 +39179 30930 0 0 +38870 30621 0 0 +38777 30648 0 0 +38731 30745 0 0 +38705 30849 0 0 +38699 30956 0 0 +38715 31062 0 0 +38751 31163 0 0 +38777 31212 0 0 +38870 31239 0 0 +39179 30930 0 0 +39179 31072 0 0 +38941 31310 0 0 +38968 31403 0 0 +39065 31449 0 0 +39106 31459 0 0 +39017 31491 0 0 +38968 31517 0 0 +38941 31610 0 0 +39250 31919 0 0 +39559 31610 0 0 +39559 31752 0 0 +39321 31990 0 0 +39630 32299 0 0 +39723 32272 0 0 +39769 32175 0 0 +39795 32071 0 0 +39801 31964 0 0 +39801 32234 0 0 +39767 32284 0 0 +39724 32383 0 0 +39702 32489 0 0 +39700 32596 0 0 +39720 32702 0 0 +39759 32802 0 0 +39818 32893 0 0 +39893 32970 0 0 +39981 33032 0 0 +40080 33075 0 0 +40185 33098 0 0 +40292 33100 0 0 +40399 33081 0 0 +40499 33042 0 0 +40590 32985 0 0 +40668 32910 0 0 +40685 32885 0 0 +40748 32885 0 0 +40750 32885 0 0 +40813 32879 0 0 +40815 32879 0 0 +40866 32863 0 0 +40875 32861 0 0 +40875 32860 0 0 +40878 32860 0 0 +40933 32830 0 0 +40935 32829 0 0 +40984 32789 0 0 +40986 32788 0 0 +41026 32739 0 0 +41028 32737 0 0 +41055 32687 0 0 +41058 32682 0 0 +41058 32681 0 0 +41059 32680 0 0 +41064 32663 0 0 +41065 32658 0 0 +41638 32085 0 0 +41941 32085 0 0 +40763 33263 0 0 +40721 33313 0 0 +40719 33315 0 0 +40686 33315 0 0 +40677 33301 0 0 +40602 33225 0 0 +40512 33165 0 0 +40413 33123 0 0 +40307 33101 0 0 +40200 33101 0 0 +40094 33121 0 0 +39994 33161 0 0 +39904 33220 0 0 +39827 33296 0 0 +39801 33334 0 0 +39801 33084 0 0 +39785 32978 0 0 +39749 32877 0 0 +39723 32828 0 0 +39630 32801 0 0 +39559 32872 0 0 +39559 32730 0 0 +39559 32370 0 0 +39250 32061 0 0 +39179 32132 0 0 +39179 31990 0 0 +38870 31681 0 0 +38777 31708 0 0 +38731 31805 0 0 +38705 31909 0 0 +38699 32016 0 0 +38715 32122 0 0 +38751 32223 0 0 +38777 32272 0 0 +38870 32299 0 0 +39179 31990 0 0 +39179 32132 0 0 +38941 32370 0 0 +38968 32463 0 0 +39065 32509 0 0 +39169 32535 0 0 +39276 32541 0 0 +39382 32525 0 0 +39483 32489 0 0 +39532 32463 0 0 +39559 32370 0 0 +39559 32730 0 0 +39532 32637 0 0 +39435 32591 0 0 +39331 32565 0 0 +39224 32559 0 0 +39118 32575 0 0 +39017 32611 0 0 +38968 32637 0 0 +38941 32730 0 0 +39250 33039 0 0 +39559 32730 0 0 +39559 32872 0 0 +39321 33110 0 0 +39630 33419 0 0 +39723 33392 0 0 +39769 33295 0 0 +39795 33191 0 0 +39801 33084 0 0 +39801 33334 0 0 +39767 33384 0 0 +39724 33483 0 0 +39702 33589 0 0 +39700 33696 0 0 +39720 33802 0 0 +39759 33902 0 0 +39818 33993 0 0 +39893 34070 0 0 +39981 34132 0 0 +40080 34175 0 0 +40185 34198 0 0 +40292 34200 0 0 +40399 34181 0 0 +40499 34142 0 0 +40590 34085 0 0 +40668 34010 0 0 +40685 33985 0 0 +40998 33985 0 0 +41000 33985 0 0 +41063 33979 0 0 +41065 33979 0 0 +41116 33963 0 0 +41125 33961 0 0 +41125 33960 0 0 +41128 33960 0 0 +41183 33930 0 0 +41185 33929 0 0 +41234 33889 0 0 +41236 33888 0 0 +41276 33839 0 0 +41278 33837 0 0 +41305 33787 0 0 +41308 33782 0 0 +41308 33781 0 0 +41309 33780 0 0 +41314 33763 0 0 +41328 33720 0 0 +41328 33717 0 0 +41335 33655 0 0 +41335 33652 0 0 +41335 33650 0 0 +41335 33638 0 0 +42388 32585 0 0 +42691 32585 0 0 +40861 34415 0 0 +40686 34415 0 0 +40677 34401 0 0 +40602 34325 0 0 +40512 34265 0 0 +40413 34223 0 0 +40307 34201 0 0 +40200 34201 0 0 +40094 34221 0 0 +39994 34261 0 0 +39904 34320 0 0 +39827 34396 0 0 +39801 34434 0 0 +39801 34164 0 0 +39785 34058 0 0 +39749 33957 0 0 +39723 33908 0 0 +39630 33881 0 0 +39559 33952 0 0 +39559 33810 0 0 +39532 33717 0 0 +39435 33671 0 0 +39350 33649 0 0 +39382 33645 0 0 +39483 33609 0 0 +39532 33583 0 0 +39559 33490 0 0 +39250 33181 0 0 +39179 33252 0 0 +39179 33110 0 0 +38870 32801 0 0 +38777 32828 0 0 +38731 32925 0 0 +38705 33029 0 0 +38699 33136 0 0 +38715 33242 0 0 +38751 33343 0 0 +38777 33392 0 0 +38870 33419 0 0 +39179 33110 0 0 +39179 33252 0 0 +38941 33490 0 0 +38968 33583 0 0 +39065 33629 0 0 +39149 33650 0 0 +39118 33655 0 0 +39017 33691 0 0 +38968 33717 0 0 +38941 33810 0 0 +39250 34119 0 0 +39559 33810 0 0 +39559 33952 0 0 +39321 34190 0 0 +39630 34499 0 0 +39723 34472 0 0 +39769 34375 0 0 +39795 34271 0 0 +39801 34164 0 0 +39801 34434 0 0 +39767 34484 0 0 +39724 34583 0 0 +39702 34689 0 0 +39700 34796 0 0 +39720 34902 0 0 +39759 35002 0 0 +39818 35093 0 0 +39893 35170 0 0 +39981 35232 0 0 +40080 35275 0 0 +39994 35311 0 0 +39904 35370 0 0 +39827 35446 0 0 +39801 35484 0 0 +39801 35244 0 0 +39785 35138 0 0 +39749 35037 0 0 +39723 34988 0 0 +39630 34961 0 0 +39559 35032 0 0 +39559 34890 0 0 +39532 34797 0 0 +39435 34751 0 0 +39350 34729 0 0 +39382 34725 0 0 +39483 34689 0 0 +39532 34663 0 0 +39559 34570 0 0 +39250 34261 0 0 +39179 34332 0 0 +39179 34190 0 0 +38870 33881 0 0 +38777 33908 0 0 +38731 34005 0 0 +38705 34109 0 0 +38699 34216 0 0 +38715 34322 0 0 +38751 34423 0 0 +38777 34472 0 0 +38870 34499 0 0 +39179 34190 0 0 +39179 34332 0 0 +38941 34570 0 0 +38968 34663 0 0 +39065 34709 0 0 +39149 34730 0 0 +39118 34735 0 0 +39017 34771 0 0 +38968 34797 0 0 +38941 34890 0 0 +39250 35199 0 0 +39559 34890 0 0 +39559 35032 0 0 +39321 35270 0 0 +39630 35579 0 0 +39723 35552 0 0 +39769 35455 0 0 +39795 35351 0 0 +39801 35244 0 0 +39801 35484 0 0 +39767 35534 0 0 +39724 35633 0 0 +39702 35739 0 0 +39700 35846 0 0 +39720 35952 0 0 +39759 36052 0 0 +39818 36143 0 0 +39893 36220 0 0 +39981 36282 0 0 +40080 36325 0 0 +40185 36348 0 0 +40292 36350 0 0 +40399 36331 0 0 +40499 36292 0 0 +40590 36235 0 0 +40668 36160 0 0 +40685 36135 0 0 +41248 36135 0 0 +41250 36135 0 0 +41313 36129 0 0 +41315 36129 0 0 +41366 36113 0 0 +41375 36111 0 0 +41375 36110 0 0 +41378 36110 0 0 +41433 36080 0 0 +41435 36079 0 0 +41484 36039 0 0 +41486 36038 0 0 +41526 35989 0 0 +41528 35987 0 0 +41555 35937 0 0 +41558 35932 0 0 +41558 35931 0 0 +41559 35930 0 0 +41564 35913 0 0 +41565 35908 0 0 +42234 35239 0 0 +42236 35237 0 0 +42276 35189 0 0 +42278 35187 0 0 +42295 35154 0 0 +42308 35132 0 0 +42308 35129 0 0 +42309 35129 0 0 +42309 35127 0 0 +42328 35070 0 0 +42328 35067 0 0 +42335 35005 0 0 +42335 35002 0 0 +42335 35000 0 0 +42335 34638 0 0 +43200 33773 0 0 +43200 33888 0 0 +43262 33950 0 0 +43650 33950 0 0 +43700 33950 0 0 +43800 33950 0 0 +43800 34050 0 0 +43700 34050 0 0 +43650 34050 0 0 +43262 34050 0 0 +43200 34112 0 0 +43200 34324 0 0 +43209 34372 0 0 +43228 34417 0 0 +43255 34458 0 0 +43290 34493 0 0 +43330 34521 0 0 +43375 34540 0 0 +43423 34550 0 0 +43461 34550 0 0 +43441 34620 0 0 +43750 34929 0 0 +44059 34620 0 0 +44038 34550 0 0 +44077 34550 0 0 +44125 34540 0 0 +44170 34521 0 0 +44210 34493 0 0 +44245 34458 0 0 +44272 34417 0 0 +44291 34372 0 0 +44300 34324 0 0 +44300 34315 0 0 +44318 34343 0 0 +44393 34420 0 0 +44481 34482 0 0 +44521 34499 0 0 +44494 34511 0 0 +44404 34570 0 0 +44327 34646 0 0 +44267 34734 0 0 +44250 34771 0 0 +44249 34767 0 0 +44223 34718 0 0 +44130 34691 0 0 +43821 35000 0 0 +44130 35309 0 0 +44223 35282 0 0 +44249 35226 0 0 +44259 35252 0 0 +44318 35343 0 0 +44388 35415 0 0 +44048 35415 0 0 +44059 35380 0 0 +43750 35071 0 0 +43679 35142 0 0 +43679 35000 0 0 +43370 34691 0 0 +43277 34718 0 0 +43231 34815 0 0 +43205 34919 0 0 +43199 35026 0 0 +43215 35132 0 0 +43251 35233 0 0 +43277 35282 0 0 +43370 35309 0 0 +43679 35000 0 0 +43679 35142 0 0 +43441 35380 0 0 +43451 35415 0 0 +43000 35415 0 0 +42935 35421 0 0 +42881 35437 0 0 +42875 35439 0 0 +42874 35439 0 0 +42872 35440 0 0 +42851 35451 0 0 +42817 35469 0 0 +42792 35489 0 0 +42764 35512 0 0 +42763 35512 0 0 +42763 35513 0 0 +42361 35915 0 0 +42150 35915 0 0 +42085 35921 0 0 +42031 35937 0 0 +42025 35939 0 0 +42024 35939 0 0 +42022 35940 0 0 +42001 35951 0 0 +41967 35969 0 0 +41916 36010 0 0 +41914 36012 0 0 +41913 36013 0 0 +41361 36565 0 0 +40686 36565 0 0 +40677 36551 0 0 +40602 36475 0 0 +40512 36415 0 0 +40413 36373 0 0 +40307 36351 0 0 +40200 36351 0 0 +40094 36371 0 0 +39994 36411 0 0 +39904 36470 0 0 +39827 36546 0 0 +39801 36584 0 0 +39801 36344 0 0 +39785 36238 0 0 +39749 36137 0 0 +39723 36088 0 0 +39630 36061 0 0 +39559 36132 0 0 +39559 35990 0 0 +39532 35897 0 0 +39435 35851 0 0 +39331 35825 0 0 +39276 35821 0 0 +39382 35805 0 0 +39483 35769 0 0 +39532 35743 0 0 +39559 35650 0 0 +39250 35341 0 0 +39179 35412 0 0 +39179 35270 0 0 +38870 34961 0 0 +38777 34988 0 0 +38731 35085 0 0 +38705 35189 0 0 +38699 35296 0 0 +38715 35402 0 0 +38751 35503 0 0 +38777 35552 0 0 +38870 35579 0 0 +39179 35270 0 0 +39179 35412 0 0 +38941 35650 0 0 +38968 35743 0 0 +39065 35789 0 0 +39169 35815 0 0 +39276 35821 0 0 +39224 35819 0 0 +39118 35835 0 0 +39017 35871 0 0 +38968 35897 0 0 +38941 35990 0 0 +39250 36299 0 0 +39559 35990 0 0 +39559 36132 0 0 +39321 36370 0 0 +39630 36679 0 0 +39723 36652 0 0 +39769 36555 0 0 +39795 36451 0 0 +39801 36344 0 0 +39801 36584 0 0 +39767 36634 0 0 +39724 36733 0 0 +39702 36839 0 0 +39700 36946 0 0 +39720 37052 0 0 +39744 37115 0 0 +39686 37115 0 0 +39677 37101 0 0 +39602 37025 0 0 +39512 36965 0 0 +39413 36923 0 0 +39349 36909 0 0 +39382 36905 0 0 +39483 36869 0 0 +39532 36843 0 0 +39559 36750 0 0 +39250 36441 0 0 +39179 36512 0 0 +39179 36370 0 0 +38870 36061 0 0 +38777 36088 0 0 +38731 36185 0 0 +38705 36289 0 0 +38699 36396 0 0 +38715 36502 0 0 +38751 36603 0 0 +38777 36652 0 0 +38870 36679 0 0 +39179 36370 0 0 +39179 36512 0 0 +38941 36750 0 0 +38968 36843 0 0 +39065 36889 0 0 +39150 36910 0 0 +39094 36921 0 0 +38994 36961 0 0 +38904 37020 0 0 +38827 37096 0 0 +38767 37184 0 0 +38724 37283 0 0 +38702 37389 0 0 +38700 37496 0 0 +38720 37602 0 0 +38759 37702 0 0 +38818 37793 0 0 +38893 37870 0 0 +38981 37932 0 0 +39080 37975 0 0 +39150 37990 0 0 +39094 38001 0 0 +38994 38041 0 0 +38904 38100 0 0 +38827 38176 0 0 +38767 38264 0 0 +38724 38363 0 0 +38702 38469 0 0 +38700 38576 0 0 +38720 38682 0 0 +38759 38782 0 0 +38818 38873 0 0 +38893 38950 0 0 +38981 39012 0 0 +39080 39055 0 0 +39185 39078 0 0 +39292 39080 0 0 +39399 39061 0 0 +39499 39022 0 0 +39590 38965 0 0 +39621 38935 0 0 +39723 38935 0 0 +39702 39039 0 0 +39700 39146 0 0 +39720 39252 0 0 +39736 39295 0 0 +39686 39295 0 0 +39677 39281 0 0 +39602 39205 0 0 +39512 39145 0 0 +39413 39103 0 0 +39307 39081 0 0 +39200 39081 0 0 +39094 39101 0 0 +38994 39141 0 0 +38904 39200 0 0 +38827 39276 0 0 +38767 39364 0 0 +38724 39463 0 0 +38702 39569 0 0 +38700 39676 0 0 +38720 39782 0 0 +38759 39882 0 0 +38818 39973 0 0 +38893 40050 0 0 +38981 40112 0 0 +39021 40129 0 0 +38994 40141 0 0 +38904 40200 0 0 +38827 40276 0 0 +38767 40364 0 0 +38724 40463 0 0 +38702 40569 0 0 +38700 40676 0 0 +38720 40782 0 0 +38759 40882 0 0 +38818 40973 0 0 +38893 41050 0 0 +38981 41112 0 0 +39080 41155 0 0 +39185 41178 0 0 +39292 41180 0 0 +39399 41161 0 0 +39499 41122 0 0 +39590 41065 0 0 +39604 41050 0 0 +39613 41055 0 0 +39618 41058 0 0 +39620 41059 0 0 +39636 41064 0 0 +39680 41078 0 0 +39683 41078 0 0 +39700 41080 0 0 +39700 41574 0 0 +39709 41622 0 0 +39728 41667 0 0 +39755 41708 0 0 +39790 41743 0 0 +39830 41771 0 0 +39875 41790 0 0 +39923 41800 0 0 +39972 41800 0 0 +40574 41800 0 0 +40622 41791 0 0 +40667 41772 0 0 +40708 41745 0 0 +40743 41710 0 0 +40771 41670 0 0 +40790 41625 0 0 +40798 41585 0 0 +46250 41585 0 0 +46312 41579 0 0 +46315 41579 0 0 +46374 41561 0 0 +46378 41560 0 0 +46418 41538 0 0 +46432 41531 0 0 +46433 41529 0 0 +46435 41529 0 0 +46483 41490 0 0 +46486 41488 0 0 +46486 41487 0 0 +46487 41487 0 0 +47725 40248 0 0 +47725 40294 0 0 +47744 40395 0 0 +47782 40490 0 0 +47837 40577 0 0 +47908 40651 0 0 +47915 40655 0 0 +47915 41611 0 0 +47611 41915 0 0 +46000 41915 0 0 +45935 41921 0 0 +45878 41938 0 0 +45875 41939 0 0 +45874 41939 0 0 +45872 41940 0 0 +45851 41951 0 0 +45817 41969 0 0 +45766 42010 0 0 +45765 42010 0 0 +45764 42012 0 0 +45759 42017 0 0 +45513 42263 0 0 +45471 42313 0 0 +45440 42371 0 0 +45432 42399 0 0 +45422 42430 0 0 +45415 42495 0 0 +45415 42499 0 0 +45415 42500 0 0 +45415 46000 0 0 +45421 46065 0 0 +45439 46124 0 0 +45440 46128 0 0 +45461 46168 0 0 +45469 46182 0 0 +45470 46183 0 0 +45471 46185 0 0 +45510 46233 0 0 +45512 46236 0 0 +45513 46237 0 0 +45761 46484 0 0 +45763 46486 0 0 +45811 46526 0 0 +45813 46528 0 0 +45845 46545 0 0 +45868 46558 0 0 +45870 46558 0 0 +45871 46559 0 0 +45873 46559 0 0 +45930 46578 0 0 +45933 46578 0 0 +45995 46585 0 0 +45998 46585 0 0 +46000 46585 0 0 +47500 46585 0 0 +47562 46579 0 0 +47565 46579 0 0 +47624 46561 0 0 +47628 46560 0 0 +47668 46538 0 0 +47682 46531 0 0 +47683 46529 0 0 +47685 46529 0 0 +47733 46490 0 0 +47736 46488 0 0 +47736 46487 0 0 +47737 46487 0 0 +47984 46239 0 0 +47986 46237 0 0 +48026 46189 0 0 +48028 46187 0 0 +48045 46154 0 0 +48058 46132 0 0 +48058 46129 0 0 +48059 46129 0 0 +48059 46127 0 0 +48078 46070 0 0 +48078 46067 0 0 +48085 46005 0 0 +48085 46002 0 0 +48085 46000 0 0 +48085 45889 0 0 +48190 45784 0 0 +48190 45822 0 0 +48190 46724 0 0 +48199 46772 0 0 +48218 46817 0 0 +48245 46858 0 0 +48280 46893 0 0 +48320 46921 0 0 +48365 46940 0 0 +48413 46950 0 0 +48415 46950 0 0 +48415 47415 0 0 +48246 47415 0 0 +48216 47369 0 0 +48133 47286 0 0 +48036 47220 0 0 +47928 47175 0 0 +47813 47151 0 0 +47695 47151 0 0 +47580 47173 0 0 +47471 47217 0 0 +47373 47281 0 0 +47289 47363 0 0 +47253 47415 0 0 +47000 47415 0 0 +46935 47421 0 0 +46878 47438 0 0 +46875 47439 0 0 +46874 47439 0 0 +46872 47440 0 0 +46851 47451 0 0 +46817 47469 0 0 +46766 47510 0 0 +46765 47510 0 0 +46764 47512 0 0 +46759 47517 0 0 +46513 47763 0 0 +46471 47813 0 0 +46440 47871 0 0 +46432 47899 0 0 +46422 47930 0 0 +46415 47995 0 0 +46415 47999 0 0 +46415 48000 0 0 +46415 50250 0 0 +46421 50315 0 0 +46439 50374 0 0 +46440 50378 0 0 +46461 50418 0 0 +46469 50432 0 0 +46470 50433 0 0 +46471 50435 0 0 +46510 50483 0 0 +46512 50486 0 0 +46513 50487 0 0 +47013 50987 0 0 +47063 51029 0 0 +47118 51058 0 0 +47121 51060 0 0 +47153 51069 0 0 +47180 51078 0 0 +47183 51078 0 0 +47245 51085 0 0 +47249 51085 0 0 +47250 51085 0 0 +52250 51085 0 0 +52312 51079 0 0 +52315 51079 0 0 +52374 51061 0 0 +52378 51060 0 0 +52418 51038 0 0 +52432 51031 0 0 +52433 51029 0 0 +52435 51029 0 0 +52483 50990 0 0 +52486 50988 0 0 +52486 50987 0 0 +52487 50987 0 0 +53177 50296 0 0 +53185 50298 0 0 +53292 50300 0 0 +53399 50281 0 0 +53499 50242 0 0 +53590 50185 0 0 +53668 50110 0 0 +53730 50022 0 0 +53774 49924 0 0 +53797 49819 0 0 +53799 49696 0 0 +53778 49590 0 0 +53737 49491 0 0 +53677 49401 0 0 +53602 49325 0 0 +53512 49265 0 0 +53413 49223 0 0 +53307 49201 0 0 +53200 49201 0 0 +53094 49221 0 0 +52994 49261 0 0 +52904 49320 0 0 +52827 49396 0 0 +52767 49484 0 0 +52724 49583 0 0 +52702 49689 0 0 +52700 49796 0 0 +52704 49821 0 0 +52450 50076 0 0 +52450 49862 0 0 +52450 49638 0 0 +52450 49372 0 0 +52450 49323 0 0 +52450 48177 0 0 +52450 48128 0 0 +52450 47862 0 0 +52450 47638 0 0 +52450 47372 0 0 +52450 47323 0 0 +52440 47275 0 0 +52421 47230 0 0 +52393 47190 0 0 +52358 47155 0 0 +52317 47128 0 0 +52272 47109 0 0 +52224 47100 0 0 +52012 47100 0 0 +51950 47162 0 0 +51950 47700 0 0 +52388 47700 0 0 +52450 47638 0 0 +52450 47862 0 0 +52388 47800 0 0 +51950 47800 0 0 +51950 48338 0 0 +52012 48400 0 0 +52224 48400 0 0 +52272 48391 0 0 +52317 48372 0 0 +52358 48345 0 0 +52393 48310 0 0 +52421 48270 0 0 +52440 48225 0 0 +52450 48177 0 0 +52450 49323 0 0 +52440 49275 0 0 +52421 49230 0 0 +52393 49190 0 0 +52358 49155 0 0 +52317 49128 0 0 +52272 49109 0 0 +52224 49100 0 0 +52012 49100 0 0 +51950 49162 0 0 +51950 49700 0 0 +52388 49700 0 0 +52450 49638 0 0 +52450 49862 0 0 +52388 49800 0 0 +51950 49800 0 0 +51950 50338 0 0 +52012 50400 0 0 +52126 50400 0 0 +52111 50415 0 0 +51850 50415 0 0 +51850 50338 0 0 +51850 49800 0 0 +51850 49700 0 0 +51850 49162 0 0 +51788 49100 0 0 +51576 49100 0 0 +51528 49109 0 0 +51483 49128 0 0 +51442 49155 0 0 +51407 49190 0 0 +51379 49230 0 0 +51360 49275 0 0 +51350 49323 0 0 +51350 49372 0 0 +51350 49638 0 0 +51412 49700 0 0 +51850 49700 0 0 +51850 49800 0 0 +51412 49800 0 0 +51350 49862 0 0 +51350 50128 0 0 +51350 50177 0 0 +51360 50225 0 0 +51379 50270 0 0 +51407 50310 0 0 +51442 50345 0 0 +51483 50372 0 0 +51528 50391 0 0 +51576 50400 0 0 +51788 50400 0 0 +51850 50338 0 0 +51850 50415 0 0 +47389 50415 0 0 +47085 50111 0 0 +47085 48138 0 0 +47138 48085 0 0 +47253 48085 0 0 +47278 48124 0 0 +47360 48209 0 0 +47457 48276 0 0 +47564 48323 0 0 +47679 48348 0 0 +47796 48350 0 0 +47912 48330 0 0 +48022 48287 0 0 +48121 48224 0 0 +48206 48143 0 0 +48246 48085 0 0 +48745 48085 0 0 +48748 48085 0 0 +48750 48085 0 0 +50050 48085 0 0 +50050 48174 0 0 +50059 48222 0 0 +50078 48267 0 0 +50105 48308 0 0 +50140 48343 0 0 +50180 48371 0 0 +50225 48390 0 0 +50273 48400 0 0 +50322 48400 0 0 +50915 48400 0 0 +50915 48611 0 0 +50513 49013 0 0 +50471 49063 0 0 +50451 49100 0 0 +50276 49100 0 0 +50228 49109 0 0 +50183 49128 0 0 +50142 49155 0 0 +50107 49190 0 0 +50079 49230 0 0 +50060 49275 0 0 +50050 49323 0 0 +50050 49372 0 0 +50050 49415 0 0 +49686 49415 0 0 +49677 49401 0 0 +49602 49325 0 0 +49512 49265 0 0 +49413 49223 0 0 +49307 49201 0 0 +49200 49201 0 0 +49094 49221 0 0 +48994 49261 0 0 +48904 49320 0 0 +48827 49396 0 0 +48814 49415 0 0 +48246 49415 0 0 +48216 49369 0 0 +48133 49286 0 0 +48036 49220 0 0 +47928 49175 0 0 +47813 49151 0 0 +47695 49151 0 0 +47580 49173 0 0 +47471 49217 0 0 +47373 49281 0 0 +47289 49363 0 0 +47222 49460 0 0 +47176 49568 0 0 +47152 49683 0 0 +47150 49801 0 0 +47171 49916 0 0 +47215 50025 0 0 +47278 50124 0 0 +47360 50209 0 0 +47457 50276 0 0 +47564 50323 0 0 +47679 50348 0 0 +47796 50350 0 0 +47912 50330 0 0 +48022 50287 0 0 +48121 50224 0 0 +48206 50143 0 0 +48246 50085 0 0 +48812 50085 0 0 +48818 50093 0 0 +48893 50170 0 0 +48981 50232 0 0 +49080 50275 0 0 +49185 50298 0 0 +49292 50300 0 0 +49399 50281 0 0 +49499 50242 0 0 +49590 50185 0 0 +49668 50110 0 0 +49685 50085 0 0 +50050 50085 0 0 +50050 50174 0 0 +50059 50222 0 0 +50078 50267 0 0 +50105 50308 0 0 +50140 50343 0 0 +50180 50371 0 0 +50225 50390 0 0 +50273 50400 0 0 +50322 50400 0 0 +50924 50400 0 0 +50972 50391 0 0 +51017 50372 0 0 +51058 50345 0 0 +51093 50310 0 0 +51121 50270 0 0 +51140 50225 0 0 +51150 50177 0 0 +51150 50128 0 0 +51150 49326 0 0 +51149 49324 0 0 +51484 48989 0 0 +51487 48987 0 0 +51526 48939 0 0 +51529 48937 0 0 +51558 48882 0 0 +51560 48879 0 0 +51569 48847 0 0 +51578 48820 0 0 +51578 48817 0 0 +51585 48755 0 0 +51585 48751 0 0 +51585 48750 0 0 +51585 48400 0 0 +51788 48400 0 0 +51850 48338 0 0 +51850 47850 0 0 +51850 47800 0 0 +51850 47700 0 0 +51850 47650 0 0 +51850 47162 0 0 +51788 47100 0 0 +51585 47100 0 0 +51585 46928 0 0 +51692 46950 0 0 +51801 46950 0 0 +51908 46930 0 0 +52010 46889 0 0 +52101 46829 0 0 +52179 46752 0 0 +52241 46662 0 0 +52250 46639 0 0 +52295 46716 0 0 +52367 46798 0 0 +52454 46865 0 0 +52552 46913 0 0 +52613 46932 0 0 +52700 46885 0 0 +52700 46350 0 0 +52700 46300 0 0 +52700 46200 0 0 +52700 46150 0 0 +52700 45615 0 0 +52613 45568 0 0 +52552 45587 0 0 +52454 45635 0 0 +52367 45702 0 0 +52295 45784 0 0 +52250 45860 0 0 +52244 45844 0 0 +52184 45753 0 0 +52106 45675 0 0 +52085 45660 0 0 +52085 45500 0 0 +52079 45435 0 0 +52061 45378 0 0 +52061 45375 0 0 +52060 45374 0 0 +52060 45372 0 0 +52048 45351 0 0 +52031 45317 0 0 +52029 45315 0 0 +51990 45266 0 0 +51989 45265 0 0 +51988 45264 0 0 +51986 45263 0 0 +51982 45259 0 0 +51739 45016 0 0 +51737 45013 0 0 +51700 44981 0 0 +51700 43885 0 0 +51700 43350 0 0 +51700 43300 0 0 +51700 43200 0 0 +51700 43150 0 0 +51700 42615 0 0 +51613 42568 0 0 +51552 42587 0 0 +51454 42635 0 0 +51367 42702 0 0 +51295 42784 0 0 +51250 42860 0 0 +51244 42844 0 0 +51184 42753 0 0 +51106 42675 0 0 +51016 42614 0 0 +50915 42572 0 0 +50808 42550 0 0 +50699 42550 0 0 +50592 42570 0 0 +50541 42590 0 0 +50541 40612 0 0 +50250 40321 0 0 +49959 40612 0 0 +49982 40703 0 0 +50075 40747 0 0 +50175 40772 0 0 +50278 40777 0 0 +50379 40761 0 0 +50476 40727 0 0 +50518 40703 0 0 +50541 40612 0 0 +50541 42590 0 0 +50490 42611 0 0 +50399 42671 0 0 +50321 42748 0 0 +50259 42838 0 0 +50249 42860 0 0 +50205 42784 0 0 +50133 42702 0 0 +50046 42635 0 0 +49948 42587 0 0 +49887 42568 0 0 +49800 42615 0 0 +49800 43150 0 0 +49800 43200 0 0 +49800 43300 0 0 +49800 43350 0 0 +49800 43885 0 0 +49887 43932 0 0 +49948 43913 0 0 +50046 43865 0 0 +50133 43798 0 0 +50205 43716 0 0 +50249 43639 0 0 +50256 43656 0 0 +50316 43747 0 0 +50394 43825 0 0 +50484 43886 0 0 +50585 43928 0 0 +50692 43950 0 0 +50801 43950 0 0 +50908 43930 0 0 +51010 43889 0 0 +51101 43829 0 0 +51179 43752 0 0 +51241 43662 0 0 +51250 43639 0 0 +51295 43716 0 0 +51367 43798 0 0 +51454 43865 0 0 +51552 43913 0 0 +51613 43932 0 0 +51700 43885 0 0 +51700 44981 0 0 +51687 44971 0 0 +51632 44942 0 0 +51629 44940 0 0 +51601 44932 0 0 +51570 44922 0 0 +51505 44915 0 0 +51501 44915 0 0 +51500 44915 0 0 +48250 44915 0 0 +48185 44921 0 0 +48131 44937 0 0 +48125 44939 0 0 +48124 44939 0 0 +48122 44940 0 0 +48101 44951 0 0 +48067 44969 0 0 +48042 44989 0 0 +48014 45012 0 0 +48013 45012 0 0 +48013 45013 0 0 +47513 45513 0 0 +47471 45563 0 0 +47440 45621 0 0 +47432 45649 0 0 +47422 45680 0 0 +47415 45745 0 0 +47415 45749 0 0 +47415 45750 0 0 +47415 45861 0 0 +47361 45915 0 0 +47278 45915 0 0 +47310 45893 0 0 +47345 45858 0 0 +47372 45817 0 0 +47391 45772 0 0 +47400 45724 0 0 +47400 45512 0 0 +47400 45288 0 0 +47400 45076 0 0 +47391 45028 0 0 +47372 44983 0 0 +47345 44942 0 0 +47310 44907 0 0 +47270 44879 0 0 +47225 44860 0 0 +47177 44850 0 0 +47128 44850 0 0 +46862 44850 0 0 +46800 44912 0 0 +46800 45350 0 0 +47338 45350 0 0 +47400 45288 0 0 +47400 45512 0 0 +47338 45450 0 0 +46850 45450 0 0 +46800 45450 0 0 +46700 45450 0 0 +46700 45350 0 0 +46700 44912 0 0 +46638 44850 0 0 +46372 44850 0 0 +46323 44850 0 0 +46275 44860 0 0 +46230 44879 0 0 +46190 44907 0 0 +46155 44942 0 0 +46128 44983 0 0 +46109 45028 0 0 +46100 45076 0 0 +46100 45288 0 0 +46162 45350 0 0 +46700 45350 0 0 +46700 45450 0 0 +46650 45450 0 0 +46162 45450 0 0 +46100 45512 0 0 +46100 45724 0 0 +46109 45772 0 0 +46128 45817 0 0 +46155 45858 0 0 +46190 45893 0 0 +46221 45915 0 0 +46138 45915 0 0 +46085 45861 0 0 +46085 42638 0 0 +46138 42585 0 0 +47750 42585 0 0 +47812 42579 0 0 +47815 42579 0 0 +47874 42561 0 0 +47878 42560 0 0 +47918 42538 0 0 +47932 42531 0 0 +47933 42529 0 0 +47935 42529 0 0 +47983 42490 0 0 +47986 42488 0 0 +47986 42487 0 0 +47987 42487 0 0 +48175 42298 0 0 +48196 42409 0 0 +48237 42513 0 0 +48298 42608 0 0 +48300 42610 0 0 +48300 42778 0 0 +48259 42838 0 0 +48216 42938 0 0 +48194 43045 0 0 +48192 43154 0 0 +48193 43448 0 0 +48214 43555 0 0 +48253 43650 0 0 +47350 43650 0 0 +47345 43642 0 0 +47310 43607 0 0 +47270 43579 0 0 +47225 43560 0 0 +47177 43550 0 0 +47128 43550 0 0 +46326 43550 0 0 +46278 43559 0 0 +46233 43578 0 0 +46192 43605 0 0 +46157 43640 0 0 +46129 43680 0 0 +46110 43725 0 0 +46100 43773 0 0 +46100 43822 0 0 +46100 44424 0 0 +46109 44472 0 0 +46128 44517 0 0 +46155 44558 0 0 +46190 44593 0 0 +46230 44621 0 0 +46275 44640 0 0 +46323 44650 0 0 +46372 44650 0 0 +47174 44650 0 0 +47222 44641 0 0 +47267 44622 0 0 +47308 44595 0 0 +47343 44560 0 0 +47350 44550 0 0 +48495 44550 0 0 +48500 44550 0 0 +48536 44546 0 0 +48583 44542 0 0 +48586 44541 0 0 +48587 44541 0 0 +48595 44538 0 0 +48668 44518 0 0 +48671 44516 0 0 +48745 44478 0 0 +48748 44475 0 0 +48749 44475 0 0 +48769 44458 0 0 +48814 44422 0 0 +48817 44419 0 0 +48818 44418 0 0 +49064 44172 0 0 +49065 44172 0 0 +49065 44171 0 0 +49068 44169 0 0 +49097 44133 0 0 +49121 44104 0 0 +49121 44102 0 0 +49123 44101 0 0 +49136 44076 0 0 +49164 44027 0 0 +49164 44024 0 0 +49165 44024 0 0 +49167 44015 0 0 +49190 43944 0 0 +49190 43941 0 0 +49191 43939 0 0 +49192 43919 0 0 +49200 43856 0 0 +49200 43850 0 0 +49200 43721 0 0 +49241 43662 0 0 +49250 43639 0 0 +49295 43716 0 0 +49367 43798 0 0 +49454 43865 0 0 +49552 43913 0 0 +49613 43932 0 0 +49700 43885 0 0 +49700 43350 0 0 +49700 43300 0 0 +49700 43200 0 0 +49700 43150 0 0 +49700 42615 0 0 +49613 42568 0 0 +49552 42587 0 0 +49454 42635 0 0 +49367 42702 0 0 +49295 42784 0 0 +49250 42860 0 0 +49244 42844 0 0 +49200 42777 0 0 +49200 42607 0 0 +49251 42535 0 0 +49297 42432 0 0 +49322 42323 0 0 +49324 42194 0 0 +49302 42084 0 0 +49259 41979 0 0 +49197 41886 0 0 +49118 41806 0 0 +49025 41743 0 0 +48921 41699 0 0 +48811 41676 0 0 +48698 41676 0 0 +48587 41697 0 0 +48585 41697 0 0 +48585 40654 0 0 +48648 40594 0 0 +48708 40510 0 0 +48749 40417 0 0 +48750 40410 0 0 +48782 40490 0 0 +48837 40577 0 0 +48908 40651 0 0 +48993 40709 0 0 +49087 40751 0 0 +49187 40773 0 0 +49290 40775 0 0 +49391 40757 0 0 +49487 40720 0 0 +49574 40665 0 0 +49648 40594 0 0 +49708 40510 0 0 +49749 40417 0 0 +49750 40411 0 0 +49773 40476 0 0 +49797 40518 0 0 +49888 40541 0 0 +50179 40250 0 0 +49888 39959 0 0 +49797 39982 0 0 +49753 40075 0 0 +49749 40087 0 0 +49715 40003 0 0 +49658 39918 0 0 +49586 39845 0 0 +49501 39787 0 0 +49411 39749 0 0 +49487 39720 0 0 +49574 39665 0 0 +49648 39594 0 0 +49708 39510 0 0 +49749 39417 0 0 +49750 39410 0 0 +49782 39490 0 0 +49837 39577 0 0 +49908 39651 0 0 +49993 39709 0 0 +50086 39750 0 0 +50024 39773 0 0 +49982 39797 0 0 +49959 39888 0 0 +50250 40179 0 0 +50541 39888 0 0 +50518 39797 0 0 +50425 39753 0 0 +50410 39749 0 0 +50487 39720 0 0 +50574 39665 0 0 +50648 39594 0 0 +50708 39510 0 0 +50749 39417 0 0 +50750 39410 0 0 +50782 39490 0 0 +50837 39577 0 0 +50908 39651 0 0 +50993 39709 0 0 +51086 39750 0 0 +51006 39783 0 0 +50920 39839 0 0 +50847 39911 0 0 +50789 39996 0 0 +50749 40087 0 0 +50727 40024 0 0 +50703 39982 0 0 +50612 39959 0 0 +50321 40250 0 0 +50612 40541 0 0 +50703 40518 0 0 +50747 40425 0 0 +50750 40411 0 0 +50782 40490 0 0 +50837 40577 0 0 +50908 40651 0 0 +50993 40709 0 0 +51087 40751 0 0 +51187 40773 0 0 +51290 40775 0 0 +51391 40757 0 0 +51487 40720 0 0 +51574 40665 0 0 +51648 40594 0 0 +51708 40510 0 0 +51749 40417 0 0 +51750 40410 0 0 +51782 40490 0 0 +51837 40577 0 0 +51908 40651 0 0 +51993 40709 0 0 +52087 40751 0 0 +52108 40755 0 0 +51939 40924 0 0 +51935 40928 0 0 +51879 40996 0 0 +51836 41073 0 0 +51810 41156 0 0 +51809 41158 0 0 +51809 41161 0 0 +51805 41199 0 0 +51800 41244 0 0 +51800 41249 0 0 +51800 41250 0 0 +51800 41390 0 0 +51745 41472 0 0 +51700 41575 0 0 +51677 41685 0 0 +51675 41798 0 0 +51696 41909 0 0 +51737 42013 0 0 +51798 42108 0 0 +51876 42189 0 0 +51968 42253 0 0 +52072 42298 0 0 +52181 42323 0 0 +52294 42325 0 0 +52405 42306 0 0 +52510 42265 0 0 +52605 42205 0 0 +52686 42127 0 0 +52690 42120 0 0 +52677 42185 0 0 +52675 42298 0 0 +52696 42409 0 0 +52737 42513 0 0 +52760 42550 0 0 +52699 42550 0 0 +52592 42570 0 0 +52490 42611 0 0 +52399 42671 0 0 +52321 42748 0 0 +52259 42838 0 0 +52249 42860 0 0 +52205 42784 0 0 +52133 42702 0 0 +52046 42635 0 0 +51948 42587 0 0 +51887 42568 0 0 +51800 42615 0 0 +51800 43150 0 0 +51800 43200 0 0 +51800 43300 0 0 +51800 43350 0 0 +51800 43885 0 0 +51887 43932 0 0 +51948 43913 0 0 +52046 43865 0 0 +52133 43798 0 0 +52205 43716 0 0 +52249 43639 0 0 +52256 43656 0 0 +52316 43747 0 0 +52394 43825 0 0 +52484 43886 0 0 +52585 43928 0 0 +52692 43950 0 0 +52801 43950 0 0 +52908 43930 0 0 +53010 43889 0 0 +53101 43829 0 0 +53179 43752 0 0 +53241 43662 0 0 +53250 43639 0 0 +53295 43716 0 0 +53367 43798 0 0 +53454 43865 0 0 +53552 43913 0 0 +53613 43932 0 0 +53700 43885 0 0 +53700 43350 0 0 +53700 43300 0 0 +53700 43200 0 0 +53700 43150 0 0 +53700 42615 0 0 +53696 42612 0 0 +53751 42535 0 0 +53797 42432 0 0 +53822 42323 0 0 +53822 42298 0 0 +53931 42323 0 0 +54044 42325 0 0 +54155 42306 0 0 +54260 42265 0 0 +54355 42205 0 0 +54436 42127 0 0 +54501 42035 0 0 +54547 41932 0 0 +54572 41823 0 0 +54574 41694 0 0 +54552 41584 0 0 +54509 41479 0 0 +54447 41386 0 0 +54392 41330 0 0 +54484 41239 0 0 +54486 41237 0 0 +54526 41189 0 0 +54528 41187 0 0 +54545 41154 0 0 +54558 41132 0 0 +54558 41129 0 0 +54559 41129 0 0 +54559 41127 0 0 +54578 41070 0 0 +54578 41067 0 0 +54585 41005 0 0 +54585 41002 0 0 +54585 41000 0 0 +54585 40654 0 0 +54648 40594 0 0 +54708 40510 0 0 +54749 40417 0 0 +54750 40410 0 0 +54782 40490 0 0 +54837 40577 0 0 +54908 40651 0 0 +54915 40655 0 0 +54915 41000 0 0 +54921 41065 0 0 +54939 41124 0 0 +54940 41128 0 0 +54961 41168 0 0 +54969 41182 0 0 +54970 41183 0 0 +54971 41185 0 0 +54997 41217 0 0 +54997 41218 0 0 +54995 41222 0 0 +54950 41325 0 0 +54927 41435 0 0 +54925 41548 0 0 +54946 41659 0 0 +54987 41763 0 0 +55048 41858 0 0 +55126 41939 0 0 +55218 42003 0 0 +55322 42048 0 0 +55431 42073 0 0 +55544 42075 0 0 +55655 42056 0 0 +55760 42015 0 0 +55855 41955 0 0 +55915 41897 0 0 +55915 47000 0 0 +55921 47065 0 0 +55939 47124 0 0 +55940 47128 0 0 +55961 47168 0 0 +55969 47182 0 0 +55970 47183 0 0 +55971 47185 0 0 +56010 47233 0 0 +56012 47236 0 0 +56013 47237 0 0 +57607 48830 0 0 +57558 48879 0 0 +57495 48972 0 0 +57450 49075 0 0 +57434 49148 0 0 +56572 48286 0 0 +56552 48184 0 0 +56509 48079 0 0 +56447 47986 0 0 +56368 47906 0 0 +56275 47843 0 0 +56171 47799 0 0 +56061 47776 0 0 +55948 47776 0 0 +55837 47797 0 0 +55733 47839 0 0 +55639 47900 0 0 +55558 47979 0 0 +55495 48072 0 0 +55450 48175 0 0 +55427 48285 0 0 +55425 48398 0 0 +55446 48509 0 0 +55487 48613 0 0 +55548 48708 0 0 +55626 48789 0 0 +55718 48853 0 0 +55822 48898 0 0 +55931 48923 0 0 +55937 48923 0 0 +56597 49583 0 0 +56150 49583 0 0 +56150 51917 0 0 +57350 51917 0 0 +57350 52950 0 0 +55310 52950 0 0 +55310 46410 0 0 +55310 46300 0 0 +55310 46200 0 0 +55310 46090 0 0 +55308 46075 0 0 +55308 43346 0 0 +55307 43052 0 0 +55286 42945 0 0 +55244 42844 0 0 +55184 42753 0 0 +55106 42675 0 0 +55016 42614 0 0 +54915 42572 0 0 +54808 42550 0 0 +54699 42550 0 0 +54592 42570 0 0 +54490 42611 0 0 +54399 42671 0 0 +54321 42748 0 0 +54259 42838 0 0 +54249 42860 0 0 +54205 42784 0 0 +54133 42702 0 0 +54046 42635 0 0 +53948 42587 0 0 +53887 42568 0 0 +53800 42615 0 0 +53800 43150 0 0 +53800 43200 0 0 +53800 43300 0 0 +53800 43350 0 0 +53800 43885 0 0 +53887 43932 0 0 +53948 43913 0 0 +54046 43865 0 0 +54133 43798 0 0 +54205 43716 0 0 +54249 43639 0 0 +54256 43656 0 0 +54316 43747 0 0 +54394 43825 0 0 +54484 43886 0 0 +54585 43928 0 0 +54692 43950 0 0 +54801 43950 0 0 +54908 43930 0 0 +55010 43889 0 0 +55101 43829 0 0 +55179 43752 0 0 +55241 43662 0 0 +55284 43562 0 0 +55306 43455 0 0 +55308 43346 0 0 +55308 46075 0 0 +55295 45982 0 0 +55260 45879 0 0 +55205 45784 0 0 +55133 45702 0 0 +55046 45635 0 0 +54948 45587 0 0 +54887 45568 0 0 +54800 45615 0 0 +54800 46200 0 0 +55310 46200 0 0 +55310 46300 0 0 +54800 46300 0 0 +54800 46885 0 0 +54887 46932 0 0 +54948 46913 0 0 +55046 46865 0 0 +55133 46798 0 0 +55205 46716 0 0 +55260 46621 0 0 +55295 46518 0 0 +55310 46410 0 0 +55310 52950 0 0 +54700 52950 0 0 +54700 46885 0 0 +54700 46350 0 0 +54700 46300 0 0 +54700 46200 0 0 +54700 46150 0 0 +54700 45615 0 0 +54613 45568 0 0 +54552 45587 0 0 +54454 45635 0 0 +54367 45702 0 0 +54295 45784 0 0 +54250 45860 0 0 +54244 45844 0 0 +54184 45753 0 0 +54106 45675 0 0 +54016 45614 0 0 +53915 45572 0 0 +53808 45550 0 0 +53699 45550 0 0 +53592 45570 0 0 +53490 45611 0 0 +53399 45671 0 0 +53321 45748 0 0 +53259 45838 0 0 +53249 45860 0 0 +53205 45784 0 0 +53133 45702 0 0 +53046 45635 0 0 +52948 45587 0 0 +52887 45568 0 0 +52800 45615 0 0 +52800 46150 0 0 +52800 46200 0 0 +52800 46300 0 0 +52800 46350 0 0 +52800 46885 0 0 +52887 46932 0 0 +52948 46913 0 0 +53046 46865 0 0 +53133 46798 0 0 +53205 46716 0 0 +53249 46639 0 0 +53256 46656 0 0 +53316 46747 0 0 +53394 46825 0 0 +53484 46886 0 0 +53585 46928 0 0 +53692 46950 0 0 +53801 46950 0 0 +53908 46930 0 0 +54010 46889 0 0 +54101 46829 0 0 +54179 46752 0 0 +54241 46662 0 0 +54250 46639 0 0 +54295 46716 0 0 +54367 46798 0 0 +54454 46865 0 0 +54552 46913 0 0 +54613 46932 0 0 +54700 46885 0 0 +54700 52950 0 0 +46716 52950 0 0 +46716 51900 0 0 +44160 51900 0 0 +44160 50900 0 0 +40249 50900 0 0 +40249 43902 0 0 +40211 43710 0 0 +40136 43529 0 0 +40028 43366 0 0 +39890 43227 0 0 +39727 43117 0 0 +39547 43041 0 0 +39355 43002 0 0 +39159 43000 0 0 +38967 43037 0 0 +38785 43110 0 0 +38621 43218 0 0 +38481 43355 0 0 +38370 43516 0 0 +38293 43697 0 0 +38252 43888 0 0 +38250 44084 0 0 +38285 44277 0 0 +38357 44459 0 0 +38463 44624 0 0 +38599 44764 0 0 +38760 44876 0 0 +38940 44955 0 0 +39131 44997 0 0 +39327 45001 0 0 +39520 44967 0 0 +39703 44896 0 0 +39868 44791 0 0 +40010 44656 0 0 +40123 44496 0 0 +40202 44317 0 0 +40246 44126 0 0 +40249 43902 0 0 +40249 50900 0 0 +38341 50900 0 0 +38341 52480 0 0 +38784 52480 0 0 +38784 52950 0 0 +37560 52950 0 0 +37560 52754 0 0 +37560 52750 0 0 +37560 52254 0 0 +37560 52250 0 0 +37560 21254 0 0 +37560 21250 0 0 +37560 18254 0 0 +37560 18250 0 0 +37560 14560 0 0 +76940 14560 0 0 +76940 14746 0 0 +76940 14750 0 0 +76940 19409 1 0 +76940 52950 0 0 +71350 52950 0 0 +71350 44627 0 0 +71350 44578 0 0 +71350 43876 0 0 +71341 43828 0 0 +71322 43783 0 0 +71295 43742 0 0 +71260 43707 0 0 +71220 43679 0 0 +71175 43660 0 0 +71127 43650 0 0 +71078 43650 0 0 +70376 43650 0 0 +70328 43659 0 0 +70283 43678 0 0 +70242 43705 0 0 +70207 43740 0 0 +70179 43780 0 0 +70170 43800 0 0 +66932 43800 0 0 +66932 41887 0 0 +66885 41800 0 0 +66300 41800 0 0 +66300 42310 0 0 +66410 42310 0 0 +66518 42295 0 0 +66621 42260 0 0 +66716 42205 0 0 +66798 42133 0 0 +66865 42046 0 0 +66913 41948 0 0 +66932 41887 0 0 +66932 43800 0 0 +66756 43800 0 0 +66750 43800 0 0 +66200 43800 0 0 +66200 42310 0 0 +66200 41800 0 0 +65615 41800 0 0 +65568 41887 0 0 +65587 41948 0 0 +65635 42046 0 0 +65702 42133 0 0 +65784 42205 0 0 +65879 42260 0 0 +65982 42295 0 0 +66090 42310 0 0 +66200 42310 0 0 +66200 43800 0 0 +64950 43800 0 0 +64950 42453 0 0 +64968 42435 0 0 +64996 42395 0 0 +65015 42350 0 0 +65025 42302 0 0 +65025 42253 0 0 +65025 41701 0 0 +65016 41653 0 0 +64997 41608 0 0 +64970 41567 0 0 +64935 41532 0 0 +64895 41504 0 0 +64850 41485 0 0 +64802 41475 0 0 +64753 41475 0 0 +64201 41475 0 0 +64153 41484 0 0 +64108 41503 0 0 +64067 41530 0 0 +64032 41565 0 0 +64004 41605 0 0 +63985 41650 0 0 +63975 41698 0 0 +63975 41747 0 0 +63975 42299 0 0 +63984 42347 0 0 +64003 42392 0 0 +64030 42433 0 0 +64050 42453 0 0 +64050 43800 0 0 +61755 43800 0 0 +61750 43800 0 0 +61713 43803 0 0 +61667 43808 0 0 +61663 43808 0 0 +61663 43809 0 0 +61654 43811 0 0 +61582 43832 0 0 +61505 43872 0 0 +61501 43874 0 0 +61501 43875 0 0 +61480 43892 0 0 +61436 43928 0 0 +61433 43931 0 0 +61432 43932 0 0 +60939 44424 0 0 +60935 44428 0 0 +60879 44496 0 0 +60836 44573 0 0 +60810 44656 0 0 +60809 44658 0 0 +60809 44661 0 0 +60805 44699 0 0 +60800 44744 0 0 +60800 44749 0 0 +60800 44750 0 0 +60800 45852 0 0 +60789 45863 0 0 +60722 45960 0 0 +60676 46068 0 0 +60652 46183 0 0 +60650 46301 0 0 +60671 46416 0 0 +60715 46525 0 0 +60778 46624 0 0 +60816 46663 0 0 +60783 46678 0 0 +60742 46705 0 0 +60707 46740 0 0 +60679 46780 0 0 +60660 46825 0 0 +60650 46873 0 0 +60650 46922 0 0 +60650 47138 0 0 +60712 47200 0 0 +61150 47200 0 0 +61200 47200 0 0 +61300 47200 0 0 +61350 47200 0 0 +61788 47200 0 0 +61850 47138 0 0 +61850 46922 0 0 +61850 46873 0 0 +61840 46825 0 0 +61821 46780 0 0 +61793 46740 0 0 +61758 46705 0 0 +61717 46678 0 0 +61683 46664 0 0 +61706 46643 0 0 +61773 46547 0 0 +61821 46440 0 0 +61847 46325 0 0 +61849 46191 0 0 +61826 46076 0 0 +61781 45967 0 0 +61716 45869 0 0 +61700 45853 0 0 +61700 44936 0 0 +61936 44700 0 0 +64494 44700 0 0 +64497 44700 0 0 +64500 44700 0 0 +66744 44700 0 0 +66750 44700 0 0 +70170 44700 0 0 +70178 44717 0 0 +70205 44758 0 0 +70240 44793 0 0 +70280 44821 0 0 +70325 44840 0 0 +70373 44850 0 0 +70422 44850 0 0 +71124 44850 0 0 +71172 44841 0 0 +71217 44822 0 0 +71258 44795 0 0 +71293 44760 0 0 +71321 44720 0 0 +71340 44675 0 0 +71350 44627 0 0 +71350 52950 0 0 +69750 52950 0 0 +69750 49027 0 0 +69750 48978 0 0 +69750 45476 0 0 +69741 45428 0 0 +69722 45383 0 0 +69695 45342 0 0 +69660 45307 0 0 +69620 45279 0 0 +69575 45260 0 0 +69527 45250 0 0 +69478 45250 0 0 +65976 45250 0 0 +65928 45259 0 0 +65883 45278 0 0 +65842 45305 0 0 +65807 45340 0 0 +65779 45380 0 0 +65760 45425 0 0 +65750 45473 0 0 +65750 45522 0 0 +65750 49024 0 0 +65759 49072 0 0 +65778 49117 0 0 +65805 49158 0 0 +65840 49193 0 0 +65880 49221 0 0 +65925 49240 0 0 +65973 49250 0 0 +66022 49250 0 0 +69524 49250 0 0 +69572 49241 0 0 +69617 49222 0 0 +69658 49195 0 0 +69693 49160 0 0 +69721 49120 0 0 +69740 49075 0 0 +69750 49027 0 0 +69750 52950 0 0 +62950 52950 0 0 +62950 52667 0 0 +63980 52667 0 0 +63980 50333 0 0 +62835 50333 0 0 +62835 50217 0 0 +62855 50205 0 0 +62936 50127 0 0 +63001 50035 0 0 +63047 49932 0 0 +63072 49823 0 0 +63074 49694 0 0 +63052 49584 0 0 +63009 49479 0 0 +62947 49386 0 0 +62868 49306 0 0 +62775 49243 0 0 +62671 49199 0 0 +62561 49176 0 0 +62448 49176 0 0 +62337 49197 0 0 +62233 49239 0 0 +62230 49240 0 0 +62230 48861 0 0 +61850 48861 0 0 +61850 47627 0 0 +61850 47578 0 0 +61850 47362 0 0 +61788 47300 0 0 +61350 47300 0 0 +61300 47300 0 0 +61200 47300 0 0 +61150 47300 0 0 +60712 47300 0 0 +60650 47362 0 0 +60650 47578 0 0 +60650 47627 0 0 +60660 47675 0 0 +60679 47720 0 0 +60707 47760 0 0 +60742 47795 0 0 +60783 47822 0 0 +60816 47836 0 0 +60789 47863 0 0 +60722 47960 0 0 +60676 48068 0 0 +60652 48183 0 0 +60650 48301 0 0 +60671 48416 0 0 +60715 48525 0 0 +60778 48624 0 0 +60860 48709 0 0 +60957 48776 0 0 +61064 48823 0 0 +61179 48848 0 0 +61296 48850 0 0 +61412 48830 0 0 +61522 48787 0 0 +61621 48724 0 0 +61706 48643 0 0 +61773 48547 0 0 +61821 48440 0 0 +61847 48325 0 0 +61849 48191 0 0 +61826 48076 0 0 +61781 47967 0 0 +61716 47869 0 0 +61683 47836 0 0 +61717 47822 0 0 +61758 47795 0 0 +61793 47760 0 0 +61821 47720 0 0 +61840 47675 0 0 +61850 47627 0 0 +61850 48861 0 0 +60834 48861 0 0 +60585 48611 0 0 +60585 48505 0 0 +60585 48500 0 0 +60585 48255 0 0 +60585 48250 0 0 +60585 47750 0 0 +60579 47685 0 0 +60561 47628 0 0 +60561 47625 0 0 +60560 47624 0 0 +60560 47622 0 0 +60548 47601 0 0 +60531 47567 0 0 +60529 47565 0 0 +60490 47516 0 0 +60489 47515 0 0 +60488 47514 0 0 +60486 47513 0 0 +60482 47509 0 0 +59027 46053 0 0 +59027 41972 0 0 +59011 41871 0 0 +58977 41774 0 0 +58953 41732 0 0 +58862 41709 0 0 +58791 41780 0 0 +58791 41638 0 0 +58768 41547 0 0 +58675 41503 0 0 +58575 41478 0 0 +58472 41473 0 0 +58371 41489 0 0 +58274 41523 0 0 +58232 41547 0 0 +58209 41638 0 0 +58500 41929 0 0 +58791 41638 0 0 +58791 41780 0 0 +58571 42000 0 0 +58862 42291 0 0 +58953 42268 0 0 +58997 42175 0 0 +59022 42075 0 0 +59027 41972 0 0 +59027 46053 0 0 +58791 45817 0 0 +58791 42362 0 0 +58500 42071 0 0 +58429 42142 0 0 +58429 42000 0 0 +58138 41709 0 0 +58047 41732 0 0 +58003 41825 0 0 +57978 41925 0 0 +57973 42028 0 0 +57989 42129 0 0 +58023 42226 0 0 +58047 42268 0 0 +58138 42291 0 0 +58429 42000 0 0 +58429 42142 0 0 +58209 42362 0 0 +58232 42453 0 0 +58325 42497 0 0 +58425 42522 0 0 +58528 42527 0 0 +58629 42511 0 0 +58726 42477 0 0 +58768 42453 0 0 +58791 42362 0 0 +58791 45817 0 0 +57585 44611 0 0 +57585 40654 0 0 +57648 40594 0 0 +57708 40510 0 0 +57749 40417 0 0 +57750 40410 0 0 +57782 40490 0 0 +57837 40577 0 0 +57908 40651 0 0 +57993 40709 0 0 +58087 40751 0 0 +58187 40773 0 0 +58290 40775 0 0 +58391 40757 0 0 +58487 40720 0 0 +58574 40665 0 0 +58648 40594 0 0 +58654 40585 0 0 +63750 40585 0 0 +63812 40579 0 0 +63815 40579 0 0 +63874 40561 0 0 +63878 40560 0 0 +63918 40538 0 0 +63932 40531 0 0 +63933 40529 0 0 +63935 40529 0 0 +63983 40490 0 0 +63986 40488 0 0 +63986 40487 0 0 +63987 40487 0 0 +64389 40085 0 0 +65660 40085 0 0 +65671 40101 0 0 +65748 40179 0 0 +65838 40241 0 0 +65858 40249 0 0 +65844 40256 0 0 +65753 40316 0 0 +65675 40394 0 0 +65614 40484 0 0 +65572 40585 0 0 +65550 40692 0 0 +65550 40801 0 0 +65570 40908 0 0 +65611 41010 0 0 +65671 41101 0 0 +65748 41179 0 0 +65838 41241 0 0 +65860 41250 0 0 +65784 41295 0 0 +65702 41367 0 0 +65635 41454 0 0 +65587 41552 0 0 +65568 41613 0 0 +65615 41700 0 0 +66150 41700 0 0 +66200 41700 0 0 +66300 41700 0 0 +66350 41700 0 0 +66885 41700 0 0 +66932 41613 0 0 +66913 41552 0 0 +66865 41454 0 0 +66798 41367 0 0 +66716 41295 0 0 +66639 41250 0 0 +66656 41244 0 0 +66747 41184 0 0 +66825 41106 0 0 +66886 41016 0 0 +66928 40915 0 0 +66950 40808 0 0 +66950 40699 0 0 +66930 40592 0 0 +66889 40490 0 0 +66829 40399 0 0 +66752 40321 0 0 +66662 40259 0 0 +66641 40250 0 0 +66656 40244 0 0 +66747 40184 0 0 +66825 40106 0 0 +66886 40016 0 0 +66928 39915 0 0 +66950 39808 0 0 +66950 39699 0 0 +66930 39592 0 0 +66927 39585 0 0 +67861 39585 0 0 +68263 39987 0 0 +68313 40029 0 0 +68368 40058 0 0 +68371 40060 0 0 +68403 40069 0 0 +68430 40078 0 0 +68433 40078 0 0 +68495 40085 0 0 +68499 40085 0 0 +68500 40085 0 0 +68660 40085 0 0 +68671 40101 0 0 +68748 40179 0 0 +68838 40241 0 0 +68858 40249 0 0 +68844 40256 0 0 +68753 40316 0 0 +68675 40394 0 0 +68614 40484 0 0 +68572 40585 0 0 +68550 40692 0 0 +68550 40801 0 0 +68570 40908 0 0 +68611 41010 0 0 +68671 41101 0 0 +68748 41179 0 0 +68838 41241 0 0 +68858 41249 0 0 +68844 41256 0 0 +68753 41316 0 0 +68675 41394 0 0 +68614 41484 0 0 +68572 41585 0 0 +68550 41692 0 0 +68550 41801 0 0 +68570 41908 0 0 +68611 42010 0 0 +68671 42101 0 0 +68748 42179 0 0 +68838 42241 0 0 +68938 42284 0 0 +69045 42306 0 0 +69154 42308 0 0 +69448 42307 0 0 +69555 42286 0 0 +69656 42244 0 0 +69747 42184 0 0 +69825 42106 0 0 +69839 42085 0 0 +71660 42085 0 0 +71671 42101 0 0 +71748 42179 0 0 +71838 42241 0 0 +71938 42284 0 0 +72045 42306 0 0 +72154 42308 0 0 +72448 42307 0 0 +72555 42286 0 0 +72656 42244 0 0 +72747 42184 0 0 +72825 42106 0 0 +72886 42016 0 0 +72928 41915 0 0 +72950 41808 0 0 +72950 41699 0 0 +72930 41592 0 0 +72889 41490 0 0 +72829 41399 0 0 +72752 41321 0 0 +72662 41259 0 0 +72641 41250 0 0 +72656 41244 0 0 +72747 41184 0 0 +72825 41106 0 0 +72886 41016 0 0 +72928 40915 0 0 +72950 40808 0 0 +72950 40699 0 0 +72930 40592 0 0 +72889 40490 0 0 +72829 40399 0 0 +72752 40321 0 0 +72662 40259 0 0 +72641 40250 0 0 +72656 40244 0 0 +72747 40184 0 0 +72825 40106 0 0 +72886 40016 0 0 +72928 39915 0 0 +72950 39808 0 0 +72950 39699 0 0 +72930 39592 0 0 +72889 39490 0 0 +72829 39399 0 0 +72752 39321 0 0 +72662 39259 0 0 +72641 39250 0 0 +72656 39244 0 0 +72747 39184 0 0 +72825 39106 0 0 +72886 39016 0 0 +72928 38915 0 0 +72950 38808 0 0 +72950 38699 0 0 +72930 38592 0 0 +72889 38490 0 0 +72829 38399 0 0 +72752 38321 0 0 +72662 38259 0 0 +72641 38250 0 0 +72656 38244 0 0 +72747 38184 0 0 +72825 38106 0 0 +72886 38016 0 0 +72928 37915 0 0 +72950 37808 0 0 +72950 37699 0 0 +72930 37592 0 0 +72889 37490 0 0 +72829 37399 0 0 +72752 37321 0 0 +72662 37259 0 0 +72641 37250 0 0 +72656 37244 0 0 +72747 37184 0 0 +72825 37106 0 0 +72886 37016 0 0 +72928 36915 0 0 +72950 36808 0 0 +72950 36699 0 0 +72930 36592 0 0 +72889 36490 0 0 +72829 36399 0 0 +72752 36321 0 0 +72662 36259 0 0 +72641 36250 0 0 +72656 36244 0 0 +72747 36184 0 0 +72825 36106 0 0 +72886 36016 0 0 +72928 35915 0 0 +72950 35808 0 0 +72950 35699 0 0 +72930 35592 0 0 +72889 35490 0 0 +72829 35399 0 0 +72752 35321 0 0 +72662 35259 0 0 +72641 35250 0 0 +72656 35244 0 0 +72747 35184 0 0 +72825 35106 0 0 +72886 35016 0 0 +72928 34915 0 0 +72950 34808 0 0 +72950 34699 0 0 +72930 34592 0 0 +72889 34490 0 0 +72829 34399 0 0 +72752 34321 0 0 +72662 34259 0 0 +72641 34250 0 0 +72656 34244 0 0 +72747 34184 0 0 +72825 34106 0 0 +72886 34016 0 0 +72928 33915 0 0 +72950 33808 0 0 +72950 33699 0 0 +72930 33592 0 0 +72889 33490 0 0 +72829 33399 0 0 +72752 33321 0 0 +72662 33259 0 0 +72641 33250 0 0 +72656 33244 0 0 +72747 33184 0 0 +72825 33106 0 0 +72886 33016 0 0 +72928 32915 0 0 +72950 32808 0 0 +72950 32699 0 0 +72930 32592 0 0 +72889 32490 0 0 +72829 32399 0 0 +72752 32321 0 0 +72662 32259 0 0 +72641 32250 0 0 +72656 32244 0 0 +72747 32184 0 0 +72825 32106 0 0 +72886 32016 0 0 +72928 31915 0 0 +72950 31808 0 0 +72950 31699 0 0 +72930 31592 0 0 +72889 31490 0 0 +72829 31399 0 0 +72752 31321 0 0 +72662 31259 0 0 +72641 31250 0 0 +72656 31244 0 0 +72747 31184 0 0 +72825 31106 0 0 +72886 31016 0 0 +72928 30915 0 0 +72950 30808 0 0 +72950 30699 0 0 +72930 30592 0 0 +72889 30490 0 0 +72829 30399 0 0 +72752 30321 0 0 +72662 30259 0 0 +72641 30250 0 0 +72656 30244 0 0 +72747 30184 0 0 +72825 30106 0 0 +72886 30016 0 0 +72928 29915 0 0 +72950 29808 0 0 +72950 29699 0 0 +72930 29592 0 0 +72889 29490 0 0 +72829 29399 0 0 +72752 29321 0 0 +72662 29259 0 0 +72641 29250 0 0 +72656 29244 0 0 +72722 29200 0 0 +73800 29200 0 0 +73800 31547 0 0 +73782 31565 0 0 +73754 31605 0 0 +73735 31650 0 0 +73725 31698 0 0 +73725 31747 0 0 +73725 32299 0 0 +73734 32347 0 0 +73753 32392 0 0 +73780 32433 0 0 +73815 32468 0 0 +73855 32496 0 0 +73900 32515 0 0 +73948 32525 0 0 +73997 32525 0 0 +74549 32525 0 0 +74597 32516 0 0 +74642 32497 0 0 +74683 32470 0 0 +74718 32435 0 0 +74746 32395 0 0 +74765 32350 0 0 +74775 32302 0 0 +74775 32253 0 0 +74775 31701 0 0 +74766 31653 0 0 +74747 31608 0 0 +74720 31567 0 0 +74700 31547 0 0 +74700 29005 0 0 +74700 29000 0 0 +74696 28963 0 0 +74692 28917 0 0 +74691 28913 0 0 +74688 28904 0 0 +74668 28832 0 0 +74666 28829 0 0 +74635 28770 0 0 +74627 28755 0 0 +74625 28751 0 0 +74587 28706 0 0 +74572 28686 0 0 +74569 28683 0 0 +74568 28681 0 0 +74502 28615 0 0 +74502 25232 0 0 +74500 25215 0 0 +74500 23777 0 0 +74500 23728 0 0 +74500 22726 0 0 +74491 22678 0 0 +74472 22633 0 0 +74445 22592 0 0 +74410 22557 0 0 +74370 22529 0 0 +74325 22510 0 0 +74277 22500 0 0 +74228 22500 0 0 +74085 22500 0 0 +74085 20938 0 0 +74090 20935 0 0 +74168 20860 0 0 +74230 20772 0 0 +74274 20674 0 0 +74297 20569 0 0 +74299 20446 0 0 +74278 20340 0 0 +74237 20241 0 0 +74177 20151 0 0 +74102 20075 0 0 +74012 20015 0 0 +73913 19973 0 0 +73807 19951 0 0 +73700 19951 0 0 +73594 19971 0 0 +73494 20011 0 0 +73404 20070 0 0 +73327 20146 0 0 +73267 20234 0 0 +73224 20333 0 0 +73202 20439 0 0 +73200 20546 0 0 +73220 20652 0 0 +73259 20752 0 0 +73318 20843 0 0 +73393 20920 0 0 +73415 20935 0 0 +73415 22500 0 0 +73226 22500 0 0 +73178 22509 0 0 +73133 22528 0 0 +73092 22555 0 0 +73057 22590 0 0 +73029 22630 0 0 +73010 22675 0 0 +73000 22723 0 0 +73000 22772 0 0 +73000 23774 0 0 +73009 23822 0 0 +73028 23867 0 0 +73055 23908 0 0 +73090 23943 0 0 +73130 23971 0 0 +73175 23990 0 0 +73223 24000 0 0 +73272 24000 0 0 +74274 24000 0 0 +74322 23991 0 0 +74367 23972 0 0 +74408 23945 0 0 +74443 23910 0 0 +74471 23870 0 0 +74490 23825 0 0 +74500 23777 0 0 +74500 25215 0 0 +74484 25086 0 0 +74438 24947 0 0 +74387 24849 0 0 +74273 24798 0 0 +74202 24869 0 0 +74202 24727 0 0 +74151 24613 0 0 +74020 24547 0 0 +73878 24508 0 0 +73732 24498 0 0 +73586 24516 0 0 +73447 24562 0 0 +73349 24613 0 0 +73298 24727 0 0 +73750 25179 0 0 +74202 24727 0 0 +74202 24869 0 0 +73821 25250 0 0 +74273 25702 0 0 +74387 25651 0 0 +74453 25520 0 0 +74492 25378 0 0 +74502 25232 0 0 +74502 28615 0 0 +74325 28439 0 0 +74322 28435 0 0 +74318 28432 0 0 +74254 28379 0 0 +74250 28377 0 0 +74202 28350 0 0 +74202 25773 0 0 +73750 25321 0 0 +73679 25392 0 0 +73679 25250 0 0 +73227 24798 0 0 +73113 24849 0 0 +73047 24980 0 0 +73008 25122 0 0 +72998 25268 0 0 +73016 25414 0 0 +73062 25553 0 0 +73113 25651 0 0 +73227 25702 0 0 +73679 25250 0 0 +73679 25392 0 0 +73298 25773 0 0 +73349 25887 0 0 +73480 25953 0 0 +73622 25992 0 0 +73768 26002 0 0 +73914 25984 0 0 +74053 25938 0 0 +74151 25887 0 0 +74202 25773 0 0 +74202 28350 0 0 +74177 28336 0 0 +74173 28335 0 0 +74094 28310 0 0 +74091 28309 0 0 +74089 28309 0 0 +74051 28305 0 0 +74006 28300 0 0 +74001 28300 0 0 +74000 28300 0 0 +72721 28300 0 0 +72662 28259 0 0 +72562 28216 0 0 +72455 28194 0 0 +72346 28192 0 0 +72052 28193 0 0 +71945 28214 0 0 +71844 28256 0 0 +71777 28300 0 0 +71002 28300 0 0 +71002 22232 0 0 +70984 22086 0 0 +70938 21947 0 0 +70887 21849 0 0 +70773 21798 0 0 +70702 21869 0 0 +70702 21727 0 0 +70651 21613 0 0 +70520 21547 0 0 +70378 21508 0 0 +70232 21498 0 0 +70086 21516 0 0 +69947 21562 0 0 +69849 21613 0 0 +69798 21727 0 0 +70250 22179 0 0 +70702 21727 0 0 +70702 21869 0 0 +70321 22250 0 0 +70773 22702 0 0 +70887 22651 0 0 +70953 22520 0 0 +70992 22378 0 0 +71002 22232 0 0 +71002 28300 0 0 +70702 28300 0 0 +70702 22773 0 0 +70250 22321 0 0 +70179 22392 0 0 +70179 22250 0 0 +69727 21798 0 0 +69613 21849 0 0 +69547 21980 0 0 +69508 22122 0 0 +69498 22268 0 0 +69516 22414 0 0 +69562 22553 0 0 +69613 22651 0 0 +69727 22702 0 0 +70179 22250 0 0 +70179 22392 0 0 +69798 22773 0 0 +69849 22887 0 0 +69980 22953 0 0 +70122 22992 0 0 +70268 23002 0 0 +70414 22984 0 0 +70553 22938 0 0 +70651 22887 0 0 +70702 22773 0 0 +70702 28300 0 0 +70600 28300 0 0 +70600 28100 0 0 +70608 28095 0 0 +70643 28060 0 0 +70671 28020 0 0 +70690 27975 0 0 +70700 27927 0 0 +70700 27878 0 0 +70700 27076 0 0 +70691 27028 0 0 +70672 26983 0 0 +70645 26942 0 0 +70610 26907 0 0 +70570 26879 0 0 +70525 26860 0 0 +70477 26850 0 0 +70428 26850 0 0 +69826 26850 0 0 +69778 26859 0 0 +69733 26878 0 0 +69692 26905 0 0 +69657 26940 0 0 +69629 26980 0 0 +69610 27025 0 0 +69600 27073 0 0 +69600 27122 0 0 +69600 27924 0 0 +69609 27972 0 0 +69628 28017 0 0 +69655 28058 0 0 +69690 28093 0 0 +69700 28100 0 0 +69700 28285 0 0 +69662 28259 0 0 +69562 28216 0 0 +69455 28194 0 0 +69400 28192 0 0 +69400 27927 0 0 +69400 27878 0 0 +69400 27612 0 0 +69400 27388 0 0 +69400 27122 0 0 +69400 27073 0 0 +69390 27025 0 0 +69371 26980 0 0 +69343 26940 0 0 +69308 26905 0 0 +69267 26878 0 0 +69222 26859 0 0 +69174 26850 0 0 +68962 26850 0 0 +68900 26912 0 0 +68900 27450 0 0 +69338 27450 0 0 +69400 27388 0 0 +69400 27612 0 0 +69338 27550 0 0 +68900 27550 0 0 +68900 28088 0 0 +68962 28150 0 0 +69174 28150 0 0 +69222 28141 0 0 +69267 28122 0 0 +69308 28095 0 0 +69343 28060 0 0 +69371 28020 0 0 +69390 27975 0 0 +69400 27927 0 0 +69400 28192 0 0 +69346 28192 0 0 +69052 28193 0 0 +68945 28214 0 0 +68844 28256 0 0 +68800 28284 0 0 +68800 28088 0 0 +68800 27550 0 0 +68800 27450 0 0 +68800 26912 0 0 +68738 26850 0 0 +68526 26850 0 0 +68478 26859 0 0 +68433 26878 0 0 +68392 26905 0 0 +68357 26940 0 0 +68329 26980 0 0 +68310 27025 0 0 +68300 27073 0 0 +68300 27122 0 0 +68300 27388 0 0 +68362 27450 0 0 +68800 27450 0 0 +68800 27550 0 0 +68362 27550 0 0 +68300 27612 0 0 +68300 27878 0 0 +68300 27927 0 0 +68310 27975 0 0 +68329 28020 0 0 +68357 28060 0 0 +68392 28095 0 0 +68433 28122 0 0 +68478 28141 0 0 +68526 28150 0 0 +68738 28150 0 0 +68800 28088 0 0 +68800 28284 0 0 +68777 28300 0 0 +68436 28300 0 0 +67700 27564 0 0 +67700 26703 0 0 +67718 26685 0 0 +67746 26645 0 0 +67765 26600 0 0 +67775 26552 0 0 +67775 26503 0 0 +67775 25951 0 0 +67766 25903 0 0 +67747 25858 0 0 +67720 25817 0 0 +67700 25797 0 0 +67700 25505 0 0 +67700 25500 0 0 +67696 25463 0 0 +67692 25417 0 0 +67691 25413 0 0 +67688 25404 0 0 +67668 25332 0 0 +67666 25329 0 0 +67635 25270 0 0 +67627 25255 0 0 +67625 25251 0 0 +67587 25206 0 0 +67572 25186 0 0 +67569 25183 0 0 +67568 25181 0 0 +67325 24939 0 0 +67322 24935 0 0 +67318 24932 0 0 +67254 24879 0 0 +67250 24877 0 0 +67177 24836 0 0 +67173 24835 0 0 +67094 24810 0 0 +67091 24809 0 0 +67089 24809 0 0 +67051 24805 0 0 +67006 24800 0 0 +67001 24800 0 0 +67000 24800 0 0 +66999 24800 0 0 +66999 20177 0 0 +66971 20033 0 0 +66915 19897 0 0 +66833 19775 0 0 +66730 19670 0 0 +66608 19588 0 0 +66473 19531 0 0 +66329 19502 0 0 +66275 19501 0 0 +66275 17552 0 0 +66275 17503 0 0 +66275 17362 0 0 +66275 17138 0 0 +66275 16997 0 0 +66275 16948 0 0 +66265 16900 0 0 +66246 16855 0 0 +66218 16815 0 0 +66183 16780 0 0 +66142 16753 0 0 +66097 16734 0 0 +66049 16725 0 0 +65862 16725 0 0 +65800 16787 0 0 +65800 17200 0 0 +66213 17200 0 0 +66275 17138 0 0 +66275 17362 0 0 +66213 17300 0 0 +65800 17300 0 0 +65800 17713 0 0 +65862 17775 0 0 +66049 17775 0 0 +66097 17766 0 0 +66142 17747 0 0 +66183 17720 0 0 +66218 17685 0 0 +66246 17645 0 0 +66265 17600 0 0 +66275 17552 0 0 +66275 19501 0 0 +66182 19501 0 0 +66038 19528 0 0 +65902 19583 0 0 +65779 19663 0 0 +65700 19740 0 0 +65700 17713 0 0 +65700 17300 0 0 +65700 17200 0 0 +65700 16787 0 0 +65638 16725 0 0 +65451 16725 0 0 +65403 16734 0 0 +65358 16753 0 0 +65317 16780 0 0 +65282 16815 0 0 +65254 16855 0 0 +65235 16900 0 0 +65225 16948 0 0 +65225 16997 0 0 +65225 17138 0 0 +65287 17200 0 0 +65700 17200 0 0 +65700 17300 0 0 +65287 17300 0 0 +65225 17362 0 0 +65225 17503 0 0 +65225 17552 0 0 +65235 17600 0 0 +65254 17645 0 0 +65282 17685 0 0 +65317 17720 0 0 +65358 17747 0 0 +65403 17766 0 0 +65451 17775 0 0 +65638 17775 0 0 +65700 17713 0 0 +65700 19740 0 0 +65674 19766 0 0 +65591 19887 0 0 +65578 19915 0 0 +63750 19915 0 0 +63685 19921 0 0 +63631 19937 0 0 +63625 19939 0 0 +63624 19939 0 0 +63622 19940 0 0 +63601 19951 0 0 +63567 19969 0 0 +63542 19989 0 0 +63514 20012 0 0 +63513 20012 0 0 +63513 20013 0 0 +62611 20915 0 0 +61099 20915 0 0 +61213 20843 0 0 +61319 20742 0 0 +61404 20622 0 0 +61464 20488 0 0 +61497 20345 0 0 +61499 20177 0 0 +61471 20033 0 0 +61415 19897 0 0 +61333 19775 0 0 +61230 19670 0 0 +61108 19588 0 0 +60973 19531 0 0 +60829 19502 0 0 +60682 19501 0 0 +60538 19528 0 0 +60402 19583 0 0 +60279 19663 0 0 +60174 19766 0 0 +60091 19887 0 0 +60078 19915 0 0 +59250 19915 0 0 +59185 19921 0 0 +59131 19937 0 0 +59125 19939 0 0 +59124 19939 0 0 +59122 19940 0 0 +59101 19951 0 0 +59067 19969 0 0 +59042 19989 0 0 +59014 20012 0 0 +59013 20012 0 0 +59013 20013 0 0 +58321 20704 0 0 +58307 20701 0 0 +58200 20701 0 0 +58094 20721 0 0 +57994 20761 0 0 +57904 20820 0 0 +57827 20896 0 0 +57767 20984 0 0 +57724 21083 0 0 +57702 21189 0 0 +57700 21296 0 0 +57720 21402 0 0 +57759 21502 0 0 +57818 21593 0 0 +57893 21670 0 0 +57981 21732 0 0 +58080 21775 0 0 +58185 21798 0 0 +58292 21800 0 0 +58399 21781 0 0 +58499 21742 0 0 +58590 21685 0 0 +58668 21610 0 0 +58730 21522 0 0 +58749 21478 0 0 +58759 21502 0 0 +58818 21593 0 0 +58893 21670 0 0 +58981 21732 0 0 +59080 21775 0 0 +59185 21798 0 0 +59292 21800 0 0 +59399 21781 0 0 +59499 21742 0 0 +59590 21685 0 0 +59668 21610 0 0 +59685 21585 0 0 +62750 21585 0 0 +62812 21579 0 0 +62815 21579 0 0 +62874 21561 0 0 +62878 21560 0 0 +62918 21538 0 0 +62932 21531 0 0 +62933 21529 0 0 +62935 21529 0 0 +62983 21490 0 0 +62986 21488 0 0 +62986 21487 0 0 +62987 21487 0 0 +63889 20585 0 0 +65576 20585 0 0 +65580 20594 0 0 +65660 20717 0 0 +65762 20823 0 0 +65882 20907 0 0 +66017 20966 0 0 +66160 20997 0 0 +66307 21000 0 0 +66452 20975 0 0 +66589 20922 0 0 +66713 20843 0 0 +66819 20742 0 0 +66904 20622 0 0 +66964 20488 0 0 +66997 20345 0 0 +66999 20177 0 0 +66999 24800 0 0 +65502 24800 0 0 +65502 22232 0 0 +65484 22086 0 0 +65438 21947 0 0 +65387 21849 0 0 +65273 21798 0 0 +65202 21869 0 0 +65202 21727 0 0 +65151 21613 0 0 +65020 21547 0 0 +64878 21508 0 0 +64732 21498 0 0 +64586 21516 0 0 +64447 21562 0 0 +64349 21613 0 0 +64298 21727 0 0 +64750 22179 0 0 +65202 21727 0 0 +65202 21869 0 0 +64821 22250 0 0 +65273 22702 0 0 +65387 22651 0 0 +65453 22520 0 0 +65492 22378 0 0 +65502 22232 0 0 +65502 24800 0 0 +65202 24800 0 0 +65202 22773 0 0 +64750 22321 0 0 +64679 22392 0 0 +64679 22250 0 0 +64227 21798 0 0 +64113 21849 0 0 +64047 21980 0 0 +64008 22122 0 0 +63998 22268 0 0 +64016 22414 0 0 +64062 22553 0 0 +64113 22651 0 0 +64227 22702 0 0 +64679 22250 0 0 +64679 22392 0 0 +64298 22773 0 0 +64349 22887 0 0 +64480 22953 0 0 +64622 22992 0 0 +64768 23002 0 0 +64914 22984 0 0 +65053 22938 0 0 +65151 22887 0 0 +65202 22773 0 0 +65202 24800 0 0 +59564 24800 0 0 +59512 24765 0 0 +59413 24723 0 0 +59307 24701 0 0 +59200 24701 0 0 +59094 24721 0 0 +58994 24761 0 0 +58934 24800 0 0 +58564 24800 0 0 +58512 24765 0 0 +58413 24723 0 0 +58307 24701 0 0 +58200 24701 0 0 +58094 24721 0 0 +57994 24761 0 0 +57904 24820 0 0 +57827 24896 0 0 +57767 24984 0 0 +57724 25083 0 0 +57702 25189 0 0 +57700 25296 0 0 +57720 25402 0 0 +57759 25502 0 0 +57818 25593 0 0 +57893 25670 0 0 +57981 25732 0 0 +58080 25775 0 0 +58185 25798 0 0 +58292 25800 0 0 +58399 25781 0 0 +58499 25742 0 0 +58566 25700 0 0 +58935 25700 0 0 +58981 25732 0 0 +59080 25775 0 0 +59185 25798 0 0 +59292 25800 0 0 +59399 25781 0 0 +59499 25742 0 0 +59566 25700 0 0 +59853 25700 0 0 +59851 25701 0 0 +59817 25719 0 0 +59766 25760 0 0 +59765 25760 0 0 +59764 25762 0 0 +59759 25767 0 0 +59611 25915 0 0 +57000 25915 0 0 +56935 25921 0 0 +56878 25938 0 0 +56875 25939 0 0 +56874 25939 0 0 +56872 25940 0 0 +56851 25951 0 0 +56817 25969 0 0 +56766 26010 0 0 +56765 26010 0 0 +56764 26012 0 0 +56759 26017 0 0 +56585 26191 0 0 +56585 26000 0 0 +56579 25935 0 0 +56561 25878 0 0 +56561 25875 0 0 +56560 25874 0 0 +56560 25872 0 0 +56548 25851 0 0 +56531 25817 0 0 +56529 25815 0 0 +56490 25766 0 0 +56489 25765 0 0 +56488 25764 0 0 +56486 25763 0 0 +56482 25759 0 0 +56307 25583 0 0 +56307 25552 0 0 +56286 25445 0 0 +56244 25344 0 0 +56184 25253 0 0 +56106 25175 0 0 +56016 25114 0 0 +55915 25072 0 0 +55808 25050 0 0 +55699 25050 0 0 +55592 25070 0 0 +55585 25072 0 0 +55585 24389 0 0 +55984 23989 0 0 +55987 23987 0 0 +56026 23939 0 0 +56029 23937 0 0 +56058 23882 0 0 +56060 23879 0 0 +56069 23847 0 0 +56078 23820 0 0 +56078 23817 0 0 +56085 23755 0 0 +56085 23751 0 0 +56085 23750 0 0 +56085 23339 0 0 +56101 23329 0 0 +56179 23252 0 0 +56241 23162 0 0 +56284 23062 0 0 +56306 22955 0 0 +56308 22846 0 0 +56307 22552 0 0 +56286 22445 0 0 +56244 22344 0 0 +56184 22253 0 0 +56106 22175 0 0 +56016 22114 0 0 +55915 22072 0 0 +55808 22050 0 0 +55699 22050 0 0 +55592 22070 0 0 +55490 22111 0 0 +55399 22171 0 0 +55321 22248 0 0 +55259 22338 0 0 +55250 22358 0 0 +55244 22344 0 0 +55184 22253 0 0 +55106 22175 0 0 +55016 22114 0 0 +54915 22072 0 0 +54808 22050 0 0 +54699 22050 0 0 +54592 22070 0 0 +54490 22111 0 0 +54399 22171 0 0 +54321 22248 0 0 +54259 22338 0 0 +54250 22358 0 0 +54244 22344 0 0 +54184 22253 0 0 +54106 22175 0 0 +54016 22114 0 0 +53915 22072 0 0 +53808 22050 0 0 +53699 22050 0 0 +53592 22070 0 0 +53490 22111 0 0 +53399 22171 0 0 +53321 22248 0 0 +53259 22338 0 0 +53250 22358 0 0 +53244 22344 0 0 +53184 22253 0 0 +53106 22175 0 0 +53016 22114 0 0 +52915 22072 0 0 +52808 22050 0 0 +52699 22050 0 0 +52592 22070 0 0 +52490 22111 0 0 +52399 22171 0 0 +52321 22248 0 0 +52259 22338 0 0 +52250 22358 0 0 +52244 22344 0 0 +52184 22253 0 0 +52106 22175 0 0 +52016 22114 0 0 +51915 22072 0 0 +51808 22050 0 0 +51699 22050 0 0 +51592 22070 0 0 +51490 22111 0 0 +51399 22171 0 0 +51321 22248 0 0 +51259 22338 0 0 +51250 22358 0 0 +51244 22344 0 0 +51184 22253 0 0 +51106 22175 0 0 +51085 22160 0 0 +51085 21775 0 0 +51299 21775 0 0 +51347 21766 0 0 +51392 21747 0 0 +51433 21720 0 0 +51468 21685 0 0 +51496 21645 0 0 +51515 21600 0 0 +51525 21552 0 0 +51525 21503 0 0 +51525 20951 0 0 +51516 20903 0 0 +51497 20858 0 0 +51470 20817 0 0 +51435 20782 0 0 +51395 20754 0 0 +51350 20735 0 0 +51302 20725 0 0 +51253 20725 0 0 +50701 20725 0 0 +50653 20734 0 0 +50608 20753 0 0 +50567 20780 0 0 +50532 20815 0 0 +50504 20855 0 0 +50485 20900 0 0 +50475 20948 0 0 +50475 20997 0 0 +50475 21308 0 0 +50471 21313 0 0 +50440 21371 0 0 +50432 21399 0 0 +50422 21430 0 0 +50415 21495 0 0 +50415 21499 0 0 +50415 21500 0 0 +50415 22160 0 0 +50399 22171 0 0 +50321 22248 0 0 +50259 22338 0 0 +50250 22358 0 0 +50244 22344 0 0 +50184 22253 0 0 +50106 22175 0 0 +50085 22160 0 0 +50085 20138 0 0 +50138 20085 0 0 +50481 20085 0 0 +50484 20097 0 0 +50503 20142 0 0 +50530 20183 0 0 +50565 20218 0 0 +50605 20246 0 0 +50650 20265 0 0 +50698 20275 0 0 +50747 20275 0 0 +51299 20275 0 0 +51347 20266 0 0 +51392 20247 0 0 +51433 20220 0 0 +51468 20185 0 0 +51496 20145 0 0 +51515 20100 0 0 +51525 20052 0 0 +51525 20003 0 0 +51525 19451 0 0 +51516 19403 0 0 +51497 19358 0 0 +51470 19317 0 0 +51435 19282 0 0 +51395 19254 0 0 +51350 19235 0 0 +51302 19225 0 0 +51253 19225 0 0 +50701 19225 0 0 +50653 19234 0 0 +50608 19253 0 0 +50567 19280 0 0 +50532 19315 0 0 +50504 19355 0 0 +50485 19400 0 0 +50481 19415 0 0 +50058 19415 0 0 +50234 19239 0 0 +50236 19237 0 0 +50276 19189 0 0 +50278 19187 0 0 +50295 19154 0 0 +50308 19132 0 0 +50308 19129 0 0 +50309 19129 0 0 +50309 19127 0 0 +50317 19101 0 0 +50318 19100 0 0 +50351 19079 0 0 +50429 19002 0 0 +50491 18912 0 0 +50499 18891 0 0 +50506 18906 0 0 +50566 18997 0 0 +50644 19075 0 0 +50734 19136 0 0 +50835 19178 0 0 +50942 19200 0 0 +51051 19200 0 0 +51158 19180 0 0 +51260 19139 0 0 +51351 19079 0 0 +51429 19002 0 0 +51464 18950 0 0 +51563 18950 0 0 +52177 19564 0 0 +52178 19565 0 0 +52181 19568 0 0 +52217 19597 0 0 +52246 19621 0 0 +52247 19621 0 0 +52249 19623 0 0 +52274 19636 0 0 +52323 19664 0 0 +52325 19664 0 0 +52326 19665 0 0 +52342 19670 0 0 +52406 19690 0 0 +52407 19690 0 0 +52410 19691 0 0 +52434 19693 0 0 +52494 19700 0 0 +52500 19700 0 0 +54495 19700 0 0 +54500 19700 0 0 +54536 19696 0 0 +54583 19692 0 0 +54586 19691 0 0 +54587 19691 0 0 +54595 19688 0 0 +54668 19668 0 0 +54671 19666 0 0 +54745 19628 0 0 +54748 19625 0 0 +54749 19625 0 0 +54769 19608 0 0 +54814 19572 0 0 +54817 19569 0 0 +54818 19568 0 0 +56064 18322 0 0 +56065 18322 0 0 +56065 18321 0 0 +56068 18319 0 0 +56097 18283 0 0 +56121 18254 0 0 +56121 18252 0 0 +56123 18251 0 0 +56136 18226 0 0 +56164 18177 0 0 +56164 18174 0 0 +56165 18174 0 0 +56170 18157 0 0 +56190 18094 0 0 +56190 18092 0 0 +56191 18090 0 0 +56193 18066 0 0 +56200 18006 0 0 +56200 18000 0 0 +56200 17436 0 0 +56301 17335 0 0 +56473 17335 0 0 +56452 17439 0 0 +56450 17546 0 0 +56470 17652 0 0 +56509 17752 0 0 +56568 17843 0 0 +56643 17920 0 0 +56731 17982 0 0 +56771 17999 0 0 +56744 18011 0 0 +56654 18070 0 0 +56577 18146 0 0 +56564 18165 0 0 +56500 18165 0 0 +56435 18171 0 0 +56378 18188 0 0 +56375 18189 0 0 +56374 18189 0 0 +56372 18190 0 0 +56351 18201 0 0 +56317 18219 0 0 +56266 18260 0 0 +56265 18260 0 0 +56264 18262 0 0 +56259 18267 0 0 +56013 18513 0 0 +55971 18563 0 0 +55940 18621 0 0 +55932 18649 0 0 +55922 18680 0 0 +55915 18745 0 0 +55915 18749 0 0 +55915 18750 0 0 +55915 21000 0 0 +55921 21065 0 0 +55939 21124 0 0 +55940 21128 0 0 +55961 21168 0 0 +55969 21182 0 0 +55970 21183 0 0 +55971 21185 0 0 +56010 21233 0 0 +56012 21236 0 0 +56013 21237 0 0 +56261 21484 0 0 +56263 21486 0 0 +56311 21526 0 0 +56313 21528 0 0 +56345 21545 0 0 +56368 21558 0 0 +56370 21558 0 0 +56371 21559 0 0 +56373 21559 0 0 +56430 21578 0 0 +56433 21578 0 0 +56495 21585 0 0 +56498 21585 0 0 +56500 21585 0 0 +56594 21585 0 0 +56658 21651 0 0 +56743 21709 0 0 +56837 21751 0 0 +56937 21773 0 0 +57040 21775 0 0 +57141 21757 0 0 +57237 21720 0 0 +57324 21665 0 0 +57398 21594 0 0 +57458 21510 0 0 +57499 21417 0 0 +57522 21316 0 0 +57524 21199 0 0 +57504 21098 0 0 +57465 21003 0 0 +57408 20918 0 0 +57336 20845 0 0 +57251 20787 0 0 +57156 20747 0 0 +57055 20726 0 0 +56953 20726 0 0 +56852 20745 0 0 +56756 20783 0 0 +56670 20839 0 0 +56615 20892 0 0 +56585 20861 0 0 +56585 20073 0 0 +56587 20077 0 0 +56658 20151 0 0 +56743 20209 0 0 +56837 20251 0 0 +56937 20273 0 0 +57040 20275 0 0 +57141 20257 0 0 +57237 20220 0 0 +57324 20165 0 0 +57398 20094 0 0 +57404 20085 0 0 +57500 20085 0 0 +57562 20079 0 0 +57565 20079 0 0 +57624 20061 0 0 +57628 20060 0 0 +57668 20038 0 0 +57682 20031 0 0 +57683 20029 0 0 +57685 20029 0 0 +57733 19990 0 0 +57736 19988 0 0 +57736 19987 0 0 +57737 19987 0 0 +57984 19739 0 0 +57986 19737 0 0 +58026 19689 0 0 +58028 19687 0 0 +58045 19654 0 0 +58058 19632 0 0 +58058 19629 0 0 +58059 19629 0 0 +58059 19627 0 0 +58078 19570 0 0 +58078 19567 0 0 +58085 19505 0 0 +58085 19502 0 0 +58085 19500 0 0 +58085 17750 0 0 +58079 17685 0 0 +58061 17628 0 0 +58061 17625 0 0 +58060 17624 0 0 +58060 17622 0 0 +58048 17601 0 0 +58031 17567 0 0 +58029 17565 0 0 +57990 17516 0 0 +57989 17515 0 0 +57988 17514 0 0 +57986 17513 0 0 +57982 17509 0 0 +57808 17335 0 0 +58198 17335 0 0 +58427 17564 0 0 +58428 17565 0 0 +58431 17568 0 0 +58467 17597 0 0 +58496 17621 0 0 +58497 17621 0 0 +58499 17623 0 0 +58524 17636 0 0 +58573 17664 0 0 +58575 17664 0 0 +58576 17665 0 0 +58584 17667 0 0 +58656 17690 0 0 +58658 17690 0 0 +58661 17691 0 0 +58680 17692 0 0 +58744 17700 0 0 +58750 17700 0 0 +59479 17700 0 0 +59493 17709 0 0 +59587 17751 0 0 +59687 17773 0 0 +59790 17775 0 0 +59891 17757 0 0 +59987 17720 0 0 +60018 17700 0 0 +62995 17700 0 0 +63000 17700 0 0 +63036 17696 0 0 +63083 17692 0 0 +63086 17691 0 0 +63087 17691 0 0 +63095 17688 0 0 +63168 17668 0 0 +63171 17666 0 0 +63245 17628 0 0 +63248 17625 0 0 +63249 17625 0 0 +63269 17608 0 0 +63314 17572 0 0 +63317 17569 0 0 +63318 17568 0 0 +64186 16700 0 0 +66563 16700 0 0 +68427 18564 0 0 +68428 18565 0 0 +68431 18568 0 0 +68467 18597 0 0 +68496 18621 0 0 +68497 18621 0 0 +68499 18623 0 0 +68524 18636 0 0 +68573 18664 0 0 +68575 18664 0 0 +68576 18665 0 0 +68584 18667 0 0 +68656 18690 0 0 +68658 18690 0 0 +68661 18691 0 0 +68680 18692 0 0 +68744 18700 0 0 +68750 18700 0 0 +75063 18700 0 0 +75178 18814 0 0 +75181 18818 0 0 +75182 18818 0 0 +75186 18822 0 0 +76050 19686 0 0 +76050 36852 0 0 +76039 36863 0 0 +75972 36960 0 0 +75926 37068 0 0 +75902 37183 0 0 +75900 37301 0 0 +75921 37416 0 0 +75965 37525 0 0 +76028 37624 0 0 +76110 37709 0 0 +76207 37776 0 0 +76314 37823 0 0 +76429 37848 0 0 +76546 37850 0 0 +76662 37830 0 0 +76772 37787 0 0 +76871 37724 0 0 +76940 37658 0 0 +76940 41666 0 0 +76925 41660 0 0 +76877 41650 0 0 +76828 41650 0 0 +76126 41650 0 0 +76078 41659 0 0 +76033 41678 0 0 +75992 41705 0 0 +75957 41740 0 0 +75929 41780 0 0 +75910 41825 0 0 +75900 41873 0 0 +75900 41922 0 0 +75900 42624 0 0 +75909 42672 0 0 +75928 42717 0 0 +75955 42758 0 0 +75990 42793 0 0 +76030 42821 0 0 +76075 42840 0 0 +76123 42850 0 0 +76172 42850 0 0 +76300 42850 0 0 +76300 44013 0 0 +76281 43967 0 0 +76216 43869 0 0 +76133 43786 0 0 +76036 43720 0 0 +75928 43675 0 0 +75813 43651 0 0 +75695 43651 0 0 +75580 43673 0 0 +75471 43717 0 0 +75373 43781 0 0 +75289 43863 0 0 +75222 43960 0 0 +75176 44068 0 0 +75152 44183 0 0 +75150 44301 0 0 +75171 44416 0 0 +75215 44525 0 0 +75278 44624 0 0 +75300 44646 0 0 +75300 46564 0 0 +75064 46800 0 0 +74777 46800 0 0 +74777 37972 0 0 +74761 37871 0 0 +74727 37774 0 0 +74703 37732 0 0 +74612 37709 0 0 +74541 37780 0 0 +74541 37638 0 0 +74518 37547 0 0 +74425 37503 0 0 +74325 37478 0 0 +74222 37473 0 0 +74121 37489 0 0 +74024 37523 0 0 +73982 37547 0 0 +73959 37638 0 0 +74250 37929 0 0 +74541 37638 0 0 +74541 37780 0 0 +74321 38000 0 0 +74612 38291 0 0 +74703 38268 0 0 +74747 38175 0 0 +74772 38075 0 0 +74777 37972 0 0 +74777 46800 0 0 +74541 46800 0 0 +74541 38362 0 0 +74250 38071 0 0 +74179 38142 0 0 +74179 38000 0 0 +73888 37709 0 0 +73797 37732 0 0 +73753 37825 0 0 +73728 37925 0 0 +73723 38028 0 0 +73739 38129 0 0 +73773 38226 0 0 +73797 38268 0 0 +73888 38291 0 0 +74179 38000 0 0 +74179 38142 0 0 +73959 38362 0 0 +73982 38453 0 0 +74075 38497 0 0 +74175 38522 0 0 +74278 38527 0 0 +74379 38511 0 0 +74476 38477 0 0 +74518 38453 0 0 +74541 38362 0 0 +74541 46800 0 0 +74500 46800 0 0 +74500 46726 0 0 +74491 46678 0 0 +74472 46633 0 0 +74445 46592 0 0 +74410 46557 0 0 +74370 46529 0 0 +74325 46510 0 0 +74277 46500 0 0 +74228 46500 0 0 +73226 46500 0 0 +73178 46509 0 0 +73133 46528 0 0 +73092 46555 0 0 +73057 46590 0 0 +73029 46630 0 0 +73010 46675 0 0 +73000 46723 0 0 +73000 46772 0 0 +73000 47774 0 0 +73009 47822 0 0 +73028 47867 0 0 +73055 47908 0 0 +73090 47943 0 0 +73130 47971 0 0 +73175 47990 0 0 +73223 48000 0 0 +73272 48000 0 0 +74274 48000 0 0 +74322 47991 0 0 +74367 47972 0 0 +74408 47945 0 0 +74443 47910 0 0 +74471 47870 0 0 +74490 47825 0 0 +74500 47777 0 0 +74500 47728 0 0 +74500 47700 0 0 +75245 47700 0 0 +75250 47700 0 0 +75286 47696 0 0 +75333 47692 0 0 +75336 47691 0 0 +75337 47691 0 0 +75345 47688 0 0 +75418 47668 0 0 +75421 47666 0 0 +75495 47628 0 0 +75498 47625 0 0 +75499 47625 0 0 +75519 47608 0 0 +75564 47572 0 0 +75567 47569 0 0 +75568 47568 0 0 +76060 47075 0 0 +76065 47072 0 0 +76068 47068 0 0 +76121 47004 0 0 +76123 47000 0 0 +76164 46927 0 0 +76165 46923 0 0 +76190 46844 0 0 +76190 46841 0 0 +76191 46839 0 0 +76194 46801 0 0 +76200 46756 0 0 +76200 46751 0 0 +76200 46750 0 0 +76200 44648 0 0 +76206 44643 0 0 +76273 44547 0 0 +76300 44486 0 0 +76300 50564 0 0 +76064 50800 0 0 +74502 50800 0 0 +74502 49232 0 0 +74484 49086 0 0 +74438 48947 0 0 +74387 48849 0 0 +74273 48798 0 0 +74202 48869 0 0 +74202 48727 0 0 +74151 48613 0 0 +74020 48547 0 0 +73878 48508 0 0 +73732 48498 0 0 +73586 48516 0 0 +73447 48562 0 0 +73349 48613 0 0 +73298 48727 0 0 +73750 49179 0 0 +74202 48727 0 0 +74202 48869 0 0 +73821 49250 0 0 +74273 49702 0 0 +74387 49651 0 0 +74453 49520 0 0 +74492 49378 0 0 +74502 49232 0 0 +74502 50800 0 0 +74349 50800 0 0 +74333 50775 0 0 +74230 50670 0 0 +74202 50651 0 0 +74202 49773 0 0 +73750 49321 0 0 +73679 49392 0 0 +73679 49250 0 0 +73227 48798 0 0 +73113 48849 0 0 +73047 48980 0 0 +73008 49122 0 0 +72998 49268 0 0 +73016 49414 0 0 +73062 49553 0 0 +73113 49651 0 0 +73227 49702 0 0 +73679 49250 0 0 +73679 49392 0 0 +73298 49773 0 0 +73349 49887 0 0 +73480 49953 0 0 +73622 49992 0 0 +73768 50002 0 0 +73914 49984 0 0 +74053 49938 0 0 +74151 49887 0 0 +74202 49773 0 0 +74202 50651 0 0 +74108 50588 0 0 +73973 50531 0 0 +73829 50502 0 0 +73682 50501 0 0 +73538 50528 0 0 +73402 50583 0 0 +73279 50663 0 0 +73174 50766 0 0 +73091 50887 0 0 +73033 51022 0 0 +73002 51166 0 0 +73000 51313 0 0 +73026 51457 0 0 +73080 51594 0 0 +73160 51717 0 0 +73262 51823 0 0 +73382 51907 0 0 +73517 51966 0 0 +73660 51997 0 0 +73807 52000 0 0 +73952 51975 0 0 +74089 51922 0 0 +74213 51843 0 0 +74319 51742 0 0 +74348 51700 0 0 +76245 51700 0 0 +76250 51700 0 0 +76286 51696 0 0 +76333 51692 0 0 +76336 51691 0 0 +76337 51691 0 0 +76345 51688 0 0 +76418 51668 0 0 +76421 51666 0 0 +76495 51628 0 0 +76498 51625 0 0 +76499 51625 0 0 +76519 51608 0 0 +76564 51572 0 0 +76567 51569 0 0 +76568 51568 0 0 +76940 51196 0 0 +76940 52950 1 0 +$endPOLYSCORNERS +$endCZONE_OUTLINE +$EndBOARD diff --git a/eeschema/annotate.cpp b/eeschema/annotate.cpp index 6bb9d7d4ff..f0a2a1d9fe 100644 --- a/eeschema/annotate.cpp +++ b/eeschema/annotate.cpp @@ -148,7 +148,7 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic, m_CurrentSheet->UpdateAllScreenReferences(); SetSheetNumberAndCount(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 2fa58c37cb..0b7f5f42ff 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -105,7 +105,7 @@ void SCH_EDIT_FRAME::InitBlockPasteInfos() BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate; block->m_ItemsSelection.CopyList( m_blockItems.m_ItemsSelection ); - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; } @@ -113,7 +113,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate; - if( !DrawPanel->IsMouseCaptured() ) + if( !m_canvas->IsMouseCaptured() ) { DisplayError( this, wxT( "HandleBlockPLace() : m_mouseCaptureCallback = NULL" ) ); } @@ -138,8 +138,8 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) case BLOCK_MIRROR_Y: case BLOCK_DRAG: /* Drag */ case BLOCK_MOVE: /* Move */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); SaveCopyInUndoList( block->m_ItemsSelection, UR_MOVED, block->m_MoveVector ); MoveItemsInList( block->m_ItemsSelection, block->m_MoveVector ); @@ -148,8 +148,8 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) case BLOCK_COPY: /* Copy */ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); DuplicateItemsInList( GetScreen(), block->m_ItemsSelection, block->m_MoveVector ); @@ -160,8 +160,8 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) break; case BLOCK_PASTE: - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); PasteListOfItems( DC ); block->ClearItemsList(); @@ -182,7 +182,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) GetScreen()->ClearDrawingState(); GetScreen()->ClearBlockCommand(); GetScreen()->SetCurItem( NULL ); - GetScreen()->TestDanglingEnds( DrawPanel, DC ); + GetScreen()->TestDanglingEnds( m_canvas, DC ); if( block->GetCount() ) { @@ -190,8 +190,8 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) block->ClearItemsList(); } - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, false ); - DrawPanel->Refresh(); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); + m_canvas->Refresh(); } @@ -206,19 +206,19 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) BlockState state = block->m_State; CmdBlockType command = block->m_Command; - if( DrawPanel->m_endMouseCaptureCallback ) - DrawPanel->m_endMouseCaptureCallback( DrawPanel, DC ); + if( m_canvas->m_endMouseCaptureCallback ) + m_canvas->m_endMouseCaptureCallback( m_canvas, DC ); block->m_State = state; block->m_Command = command; - DrawPanel->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); + m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( block->GetEnd() ); if( block->m_Command != BLOCK_ABORT ) - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { switch( block->m_Command ) { @@ -243,36 +243,36 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) { nextcmd = true; GetScreen()->SelectBlockItems(); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); block->m_State = STATE_BLOCK_MOVE; } else { - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->SetMouseCapture( NULL, NULL ); } break; case BLOCK_DELETE: /* Delete */ GetScreen()->UpdatePickList(); - DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false ); + DrawAndSizingBlockOutlines( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { - DeleteItemsInList( DrawPanel, block->m_ItemsSelection ); + DeleteItemsInList( m_canvas, block->m_ItemsSelection ); OnModify(); } block->ClearItemsList(); - GetScreen()->TestDanglingEnds( DrawPanel, DC ); - DrawPanel->Refresh(); + GetScreen()->TestDanglingEnds( m_canvas, DC ); + m_canvas->Refresh(); break; case BLOCK_SAVE: /* Save */ GetScreen()->UpdatePickList(); - DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false ); + DrawAndSizingBlockOutlines( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { @@ -304,16 +304,16 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( block->m_Command == BLOCK_ABORT ) { GetScreen()->ClearDrawingState(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } if( ! nextcmd ) { - block->m_Flags = 0; + block->ClearFlags(); block->m_State = STATE_NO_BLOCK; block->m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); } @@ -351,8 +351,8 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) break; case BLOCK_DRAG: /* move to Drag */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); // Clear list of items to move, and rebuild it with items to drag: block->ClearItemsList(); @@ -365,30 +365,30 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) blockCmdFinished = false; GetScreen()->SelectBlockItems(); - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); block->m_State = STATE_BLOCK_MOVE; } break; case BLOCK_DELETE: /* move to Delete */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { - DeleteItemsInList( DrawPanel, block->m_ItemsSelection ); + DeleteItemsInList( m_canvas, block->m_ItemsSelection ); OnModify(); } - GetScreen()->TestDanglingEnds( DrawPanel, DC ); - DrawPanel->Refresh(); + GetScreen()->TestDanglingEnds( m_canvas, DC ); + m_canvas->Refresh(); break; case BLOCK_SAVE: /* Save list in paste buffer*/ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { @@ -399,15 +399,15 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) break; case BLOCK_ZOOM: /* Window Zoom */ - DrawPanel->m_endMouseCaptureCallback( DrawPanel, DC ); - DrawPanel->SetCursor( DrawPanel->GetDefaultCursor() ); + m_canvas->m_endMouseCaptureCallback( m_canvas, DC ); + m_canvas->SetCursor( m_canvas->GetDefaultCursor() ); Window_Zoom( GetScreen()->m_BlockLocate ); break; case BLOCK_ROTATE: - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { @@ -420,13 +420,13 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) OnModify(); } - GetScreen()->TestDanglingEnds( DrawPanel, DC ); - DrawPanel->Refresh(); + GetScreen()->TestDanglingEnds( m_canvas, DC ); + m_canvas->Refresh(); break; case BLOCK_MIRROR_X: - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { @@ -438,13 +438,13 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) Mirror_X_ListOfItems( block->m_ItemsSelection, mirrorPoint ); OnModify(); } - GetScreen()->TestDanglingEnds( DrawPanel, DC ); - DrawPanel->Refresh(); + GetScreen()->TestDanglingEnds( m_canvas, DC ); + m_canvas->Refresh(); break; case BLOCK_MIRROR_Y: - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); if( block->GetCount() ) { @@ -457,8 +457,8 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) OnModify(); } - GetScreen()->TestDanglingEnds( DrawPanel, DC ); - DrawPanel->Refresh(); + GetScreen()->TestDanglingEnds( m_canvas, DC ); + m_canvas->Refresh(); break; default: @@ -469,7 +469,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) { block->Clear(); GetScreen()->SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); } } @@ -559,7 +559,7 @@ void SCH_EDIT_FRAME::PasteListOfItems( wxDC* DC ) } SetSchItemParent( Struct, GetScreen() ); - Struct->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + Struct->Draw( m_canvas, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); Struct->SetNext( GetScreen()->GetDrawItems() ); GetScreen()->SetDrawItems( Struct ); } diff --git a/eeschema/block_libedit.cpp b/eeschema/block_libedit.cpp index 1b7defac92..35cc237d0f 100644 --- a/eeschema/block_libedit.cpp +++ b/eeschema/block_libedit.cpp @@ -92,13 +92,13 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) { BlockState state = GetScreen()->m_BlockLocate.m_State; CmdBlockType command = GetScreen()->m_BlockLocate.m_Command; - DrawPanel->m_endMouseCaptureCallback( DrawPanel, DC ); + m_canvas->m_endMouseCaptureCallback( m_canvas, DC ); GetScreen()->m_BlockLocate.m_State = state; GetScreen()->m_BlockLocate.m_Command = command; - DrawPanel->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); + m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( wxPoint( GetScreen()->m_BlockLocate.GetRight(), GetScreen()->m_BlockLocate.GetBottom() ) ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } switch( GetScreen()->m_BlockLocate.m_Command ) @@ -118,21 +118,21 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) { nextCmd = true; - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ nextCmd = true; - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; break; @@ -201,13 +201,13 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY && m_component ) m_component->ClearSelectedItems(); - GetScreen()->m_BlockLocate.m_Flags = 0; + GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, - false ); - DrawPanel->Refresh( true ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, + false ); + m_canvas->Refresh( true ); } return nextCmd; @@ -218,7 +218,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { wxPoint pt; - if( !DrawPanel->IsMouseCaptured() ) + if( !m_canvas->IsMouseCaptured() ) { DisplayError( this, wxT( "HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } @@ -244,7 +244,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if ( m_component ) m_component->MoveSelectedItems( pt ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case BLOCK_COPY: /* Copy */ @@ -298,12 +298,12 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.m_Flags = 0; + GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, false ); - DrawPanel->Refresh( true ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); + m_canvas->Refresh( true ); } diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index 9c062e6771..8ec0692152 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -129,7 +129,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) { s_ConnexionStartPoint = cursorpos; s_OldWiresList = GetScreen()->ExtractWires( true ); - GetScreen()->SchematicCleanUp( DrawPanel ); + GetScreen()->SchematicCleanUp( m_canvas ); switch( type ) { @@ -160,7 +160,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) } GetScreen()->SetCurItem( newsegment ); - DrawPanel->SetMouseCapture( DrawSegment, AbortCreateNewLine ); + m_canvas->SetMouseCapture( DrawSegment, AbortCreateNewLine ); m_itemToRepeat = NULL; } else // A segment is in progress: terminates the current segment and add a new segment. @@ -181,7 +181,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) return; } - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); /* Creates the new segment, or terminates the command * if the end point is on a pin, junction or an other wire or bus */ @@ -193,9 +193,9 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) oldsegment->SetNext( GetScreen()->GetDrawItems() ); GetScreen()->SetDrawItems( oldsegment ); - DrawPanel->CrossHairOff( DC ); // Erase schematic cursor - oldsegment->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->CrossHairOn( DC ); // Display schematic cursor + m_canvas->CrossHairOff( DC ); // Erase schematic cursor + oldsegment->Draw( m_canvas, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_canvas->CrossHairOn( DC ); // Display schematic cursor /* Create a new segment, and chain it after the current new segment */ if( nextsegment ) @@ -218,7 +218,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) oldsegment->SetFlags( SELECTED ); newsegment->SetFlags( IS_NEW ); GetScreen()->SetCurItem( newsegment ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); /* This is the first segment: Now we know the start segment position. * Create a junction if needed. Note: a junction can be needed later, @@ -282,7 +282,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) GetScreen()->SetDrawItems( lastsegment ); } - DrawPanel->EndMouseCapture( -1, -1, wxEmptyString, false ); + m_canvas->EndMouseCapture( -1, -1, wxEmptyString, false ); GetScreen()->SetCurItem( NULL ); wxPoint end_point, alt_end_point; @@ -298,7 +298,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) alt_end_point = lastsegment->GetStartPoint(); } - GetScreen()->SchematicCleanUp( DrawPanel ); + GetScreen()->SchematicCleanUp( m_canvas ); /* clear flags and find last segment entered, for repeat function */ segment = (SCH_LINE*) GetScreen()->GetDrawItems(); @@ -329,10 +329,10 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) if( GetScreen()->IsJunctionNeeded( s_ConnexionStartPoint ) ) AddJunction( DC, s_ConnexionStartPoint ); - GetScreen()->TestDanglingEnds( DrawPanel, DC ); + GetScreen()->TestDanglingEnds( m_canvas, DC ); /* Redraw wires and junctions which can be changed by TestDanglingEnds() */ - DrawPanel->CrossHairOff( DC ); // Erase schematic cursor + m_canvas->CrossHairOff( DC ); // Erase schematic cursor EDA_ITEM* item = GetScreen()->GetDrawItems(); while( item ) @@ -341,7 +341,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) { case SCH_JUNCTION_T: case SCH_LINE_T: - DrawPanel->RefreshDrawingRect( item->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( item->GetBoundingBox() ); break; default: @@ -351,7 +351,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) item = item->Next(); } - DrawPanel->CrossHairOn( DC ); // Display schematic cursor + m_canvas->CrossHairOn( DC ); // Display schematic cursor SaveCopyInUndoList( s_OldWiresList, UR_WIRE_IMAGE ); s_OldWiresList = NULL; @@ -436,15 +436,15 @@ void SCH_EDIT_FRAME::DeleteCurrentSegment( wxDC* DC ) } polyLine->SetPoint( idx, endpos ); - polyLine->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + polyLine->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); } else { - DrawSegment( DrawPanel, DC, wxDefaultPosition, false ); + DrawSegment( m_canvas, DC, wxDefaultPosition, false ); } screen->RemoveFromDrawList( screen->GetCurItem() ); - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; screen->SetCurItem( NULL ); } @@ -456,9 +456,9 @@ SCH_JUNCTION* SCH_EDIT_FRAME::AddJunction( wxDC* aDC, const wxPoint& aPosition, m_itemToRepeat = junction; - DrawPanel->CrossHairOff( aDC ); // Erase schematic cursor - junction->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->CrossHairOn( aDC ); // Display schematic cursor + m_canvas->CrossHairOff( aDC ); // Erase schematic cursor + junction->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_canvas->CrossHairOn( aDC ); // Display schematic cursor junction->SetNext( GetScreen()->GetDrawItems() ); GetScreen()->SetDrawItems( junction ); @@ -478,9 +478,9 @@ SCH_NO_CONNECT* SCH_EDIT_FRAME::AddNoConnect( wxDC* aDC, const wxPoint& aPositio NewNoConnect = new SCH_NO_CONNECT( aPosition ); m_itemToRepeat = NewNoConnect; - DrawPanel->CrossHairOff( aDC ); // Erase schematic cursor - NewNoConnect->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->CrossHairOn( aDC ); // Display schematic cursor + m_canvas->CrossHairOff( aDC ); // Erase schematic cursor + NewNoConnect->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_canvas->CrossHairOn( aDC ); // Display schematic cursor NewNoConnect->SetNext( GetScreen()->GetDrawItems() ); GetScreen()->SetDrawItems( NewNoConnect ); @@ -528,7 +528,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) m_itemToRepeat->SetFlags( IS_NEW ); ( (SCH_COMPONENT*) m_itemToRepeat )->SetTimeStamp( GetNewTimeStamp() ); m_itemToRepeat->Move( pos ); - m_itemToRepeat->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + m_itemToRepeat->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); MoveItem( m_itemToRepeat, DC ); return; } @@ -543,7 +543,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) m_itemToRepeat->SetNext( GetScreen()->GetDrawItems() ); GetScreen()->SetDrawItems( m_itemToRepeat ); GetScreen()->TestDanglingEnds(); - m_itemToRepeat->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_itemToRepeat->Draw( m_canvas, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); SaveCopyInUndoList( m_itemToRepeat, UR_NEW ); m_itemToRepeat->ClearFlags(); } diff --git a/eeschema/busentry.cpp b/eeschema/busentry.cpp index ea010658c6..9cf60b3304 100644 --- a/eeschema/busentry.cpp +++ b/eeschema/busentry.cpp @@ -48,7 +48,7 @@ SCH_BUS_ENTRY* SCH_EDIT_FRAME::CreateBusEntry( wxDC* DC, int entry_type ) // Create and place a new bus entry at cursor position SCH_BUS_ENTRY* BusEntry = new SCH_BUS_ENTRY( GetScreen()->GetCrossHairPosition(), s_LastShape, entry_type ); - BusEntry->m_Flags = IS_NEW; + BusEntry->SetFlags( IS_NEW ); BusEntry->Place( this, DC ); OnModify(); return BusEntry; @@ -69,40 +69,15 @@ void SCH_EDIT_FRAME::SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int en } /* Put old item in undo list if it is not currently in edit */ - if( BusEntry->m_Flags == 0 ) + if( BusEntry->GetFlags() == 0 ) SaveCopyInUndoList( BusEntry, UR_CHANGED ); - BusEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); - - wxSize size = BusEntry->GetSize(); - - switch( entry_shape ) - { - case '\\': - s_LastShape = '\\'; - size.y = 100; - BusEntry->SetSize( size ); - break; - - case '/': - s_LastShape = '/'; - size.y = -100; - BusEntry->SetSize( size ); - break; - } + s_LastShape = entry_shape == '/' ? '/' : '\\'; + BusEntry->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); + BusEntry->SetBusEntryShape( s_LastShape ); GetScreen()->TestDanglingEnds(); - BusEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + BusEntry->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); + OnModify( ); } - - -int SCH_EDIT_FRAME::GetBusEntryShape( SCH_BUS_ENTRY* BusEntry ) -{ - int entry_shape = '\\'; - - if( BusEntry->GetSize().y < 0 ) - entry_shape = '/'; - - return entry_shape; -} diff --git a/eeschema/class_libentry.cpp b/eeschema/class_libentry.cpp index 8d6266e9fa..165181ba50 100644 --- a/eeschema/class_libentry.cpp +++ b/eeschema/class_libentry.cpp @@ -293,7 +293,7 @@ void LIB_COMPONENT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDc, const wxPoint& aOff if( drawItem.m_Fill != FILLED_WITH_BG_BODYCOLOR ) continue; - if( aOnlySelected && drawItem.m_Selected == 0 ) + if( aOnlySelected && !drawItem.IsSelected() ) continue; // Do not draw an item while moving (the cursor handler does that) @@ -323,7 +323,7 @@ void LIB_COMPONENT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDc, const wxPoint& aOff BOOST_FOREACH( LIB_ITEM& drawItem, drawings ) { - if( aOnlySelected && drawItem.m_Selected == 0 ) + if( aOnlySelected && !drawItem.IsSelected() ) continue; // Do not draw an item while moving (the cursor handler does that) @@ -1199,7 +1199,6 @@ void LIB_COMPONENT::ClearStatus() BOOST_FOREACH( LIB_ITEM& item, drawings ) { item.m_Flags = 0; - item.m_Selected = 0; } } @@ -1210,7 +1209,7 @@ int LIB_COMPONENT::SelectItems( EDA_RECT& aRect, int aUnit, int aConvert, bool a BOOST_FOREACH( LIB_ITEM& item, drawings ) { - item.m_Selected = 0; + item.ClearFlags( SELECTED ); if( ( item.m_Unit && item.m_Unit != aUnit ) || ( item.m_Convert && item.m_Convert != aConvert ) ) @@ -1226,7 +1225,7 @@ int LIB_COMPONENT::SelectItems( EDA_RECT& aRect, int aUnit, int aConvert, bool a if( item.Inside( aRect ) ) { - item.m_Selected = IS_SELECTED; + item.SetFlags( SELECTED ); itemCount++; } } @@ -1239,11 +1238,11 @@ void LIB_COMPONENT::MoveSelectedItems( const wxPoint& aOffset ) { BOOST_FOREACH( LIB_ITEM& item, drawings ) { - if( item.m_Selected == 0 ) + if( !item.IsSelected() ) continue; item.SetOffset( aOffset ); - item.m_Flags = item.m_Selected = 0; + item.m_Flags = 0; } drawings.sort(); @@ -1253,7 +1252,9 @@ void LIB_COMPONENT::MoveSelectedItems( const wxPoint& aOffset ) void LIB_COMPONENT::ClearSelectedItems() { BOOST_FOREACH( LIB_ITEM& item, drawings ) - item.m_Flags = item.m_Selected = 0; + { + item.m_Flags = 0; + } } @@ -1272,13 +1273,14 @@ void LIB_COMPONENT::DeleteSelectedItems() { #if 0 // Set to 1 to allows fields deletion on block delete or other global command LIB_FIELD& field = ( LIB_FIELD& ) *item; + if( (field.GetId() == REFERENCE) || (field.m_FieldId == VALUE) || (field.m_Attributs & TEXT_NO_VISIBLE) ) #endif - item->m_Selected = 0; + item->ClearFlags( SELECTED ); } - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) item++; else item = drawings.erase( item ); @@ -1298,17 +1300,18 @@ void LIB_COMPONENT::CopySelectedItems( const wxPoint& aOffset ) for( unsigned ii = 0; ii < icnt; ii++ ) { LIB_ITEM& item = drawings[ii]; + // We *do not* copy fields because they are unique for the whole component // so skip them (do not duplicate) if they are flagged selected. if( item.Type() == LIB_FIELD_T ) - item.m_Selected = 0; + item.ClearFlags( SELECTED ); - if( item.m_Selected == 0 ) + if( !item.IsSelected() ) continue; - item.m_Selected = 0; + item.ClearFlags( SELECTED ); LIB_ITEM* newItem = (LIB_ITEM*) item.Clone(); - newItem->m_Selected = IS_SELECTED; + newItem->SetFlags( SELECTED ); drawings.push_back( newItem ); } @@ -1322,11 +1325,11 @@ void LIB_COMPONENT::MirrorSelectedItemsH( const wxPoint& aCenter ) { BOOST_FOREACH( LIB_ITEM& item, drawings ) { - if( item.m_Selected == 0 ) + if( !item.IsSelected() ) continue; item.MirrorHorizontal( aCenter ); - item.m_Flags = item.m_Selected = 0; + item.m_Flags = 0; } drawings.sort(); @@ -1336,11 +1339,11 @@ void LIB_COMPONENT::MirrorSelectedItemsV( const wxPoint& aCenter ) { BOOST_FOREACH( LIB_ITEM& item, drawings ) { - if( item.m_Selected == 0 ) + if( !item.IsSelected() ) continue; item.MirrorVertical( aCenter ); - item.m_Flags = item.m_Selected = 0; + item.m_Flags = 0; } drawings.sort(); @@ -1350,11 +1353,11 @@ void LIB_COMPONENT::RotateSelectedItems( const wxPoint& aCenter ) { BOOST_FOREACH( LIB_ITEM& item, drawings ) { - if( item.m_Selected == 0 ) + if( !item.IsSelected() ) continue; item.Rotate( aCenter ); - item.m_Flags = item.m_Selected = 0; + item.m_Flags = 0; } drawings.sort(); diff --git a/eeschema/controle.cpp b/eeschema/controle.cpp index 584bd4b071..e1e77748b0 100644 --- a/eeschema/controle.cpp +++ b/eeschema/controle.cpp @@ -62,9 +62,9 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateAndShowItem( const wxPoint& aPosition, const KIC // If the user aborted the clarification context menu, don't show it again at the // off grid position. - if( !item && DrawPanel->m_AbortRequest ) + if( !item && m_canvas->m_AbortRequest ) { - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; return NULL; } @@ -73,7 +73,7 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateAndShowItem( const wxPoint& aPosition, const KIC if( !item ) { - DrawPanel->m_AbortRequest = false; // Just in case the user aborted the context menu. + m_canvas->m_AbortRequest = false; // Just in case the user aborted the context menu. return NULL; } @@ -171,9 +171,9 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateItem( const wxPoint& aPosition, const KICAD_T aF // Set to NULL in case user aborts the clarification context menu. GetScreen()->SetCurItem( NULL ); - DrawPanel->m_AbortRequest = true; // Changed to false if an item is selected + m_canvas->m_AbortRequest = true; // Changed to false if an item is selected PopupMenu( &selectMenu ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); item = GetScreen()->GetCurItem(); } } @@ -208,25 +208,25 @@ void SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -240,23 +240,23 @@ void SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH { pos = screen->GetCrossHairPosition(); screen->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); screen->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { #ifdef USE_WX_OVERLAY - wxDCOverlay oDC( DrawPanel->m_overlay, (wxWindowDC*)aDC ); + wxDCOverlay oDC( m_canvas->m_overlay, (wxWindowDC*)aDC ); oDC.Clear(); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, false ); #else - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); #endif } #ifdef USE_WX_OVERLAY else - DrawPanel->m_overlay.Reset(); + m_canvas->m_overlay.Reset(); #endif } @@ -291,25 +291,25 @@ void LIB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -323,23 +323,23 @@ void LIB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH { pos = screen->GetCrossHairPosition(); screen->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); screen->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { #ifdef USE_WX_OVERLAY - wxDCOverlay oDC( DrawPanel->m_overlay, (wxWindowDC*)aDC ); + wxDCOverlay oDC( m_canvas->m_overlay, (wxWindowDC*)aDC ); oDC.Clear(); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, false ); #else - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); #endif } #ifdef USE_WX_OVERLAY else - DrawPanel->m_overlay.Reset(); + m_canvas->m_overlay.Reset(); #endif } @@ -371,25 +371,25 @@ void LIB_VIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -403,13 +403,13 @@ void LIB_VIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH { pos = screen->GetCrossHairPosition(); screen->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); screen->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); } } diff --git a/eeschema/dialogs/annotate_dialog.cpp b/eeschema/dialogs/annotate_dialog.cpp index 0d2c481717..e64d06d85f 100644 --- a/eeschema/dialogs/annotate_dialog.cpp +++ b/eeschema/dialogs/annotate_dialog.cpp @@ -118,6 +118,7 @@ void DIALOG_ANNOTATE::OnApplyClick( wxCommandEvent& event ) message = _( "Clear and annotate all of the components " ); else message = _( "Annotate only the unannotated components " ); + if( GetLevel() ) message += _( "on the entire schematic?" ); else @@ -125,13 +126,14 @@ void DIALOG_ANNOTATE::OnApplyClick( wxCommandEvent& event ) message += _( "\n\nThis operation will change the current annotation and cannot be undone." ); response = wxMessageBox( message, wxT( "" ), wxICON_EXCLAMATION | wxOK | wxCANCEL ); + if (response == wxCANCEL) return; m_Parent->AnnotateComponents( GetLevel(), (ANNOTATE_ORDER_T) GetSortOrder(), (ANNOTATE_OPTION_T) GetAnnotateAlgo(), GetResetItems() , true ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); m_btnClear->Enable(); } @@ -150,12 +152,13 @@ void DIALOG_ANNOTATE::OnClearAnnotationCmpClick( wxCommandEvent& event ) message += _( "the current sheet?" ); message += _( "\n\nThis operation will clear the existing annotation and cannot be undone." ); - response = wxMessageBox( message, wxT( "" ), - wxICON_EXCLAMATION | wxOK | wxCANCEL ); + response = wxMessageBox( message, wxT( "" ), wxICON_EXCLAMATION | wxOK | wxCANCEL ); + if (response == wxCANCEL) return; + m_Parent->DeleteAnnotation( GetLevel() ? false : true ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); m_btnClear->Enable(false); } diff --git a/eeschema/dialogs/dialog_SVG_print.cpp b/eeschema/dialogs/dialog_SVG_print.cpp index d9269f0748..d1d3def2d6 100644 --- a/eeschema/dialogs/dialog_SVG_print.cpp +++ b/eeschema/dialogs/dialog_SVG_print.cpp @@ -212,7 +212,7 @@ bool DIALOG_SVG_PRINT::DrawSVGPage( EDA_DRAW_FRAME* frame, SheetSize = screen->ReturnPageSize(); // page size in 1/1000 inch, ie in internal units screen->SetScalingFactor( 1.0 ); - EDA_DRAW_PANEL* panel = frame->DrawPanel; + EDA_DRAW_PANEL* panel = frame->GetCanvas(); SetLocaleTo_C_standard(); // Switch the locale to standard C (needed // to print floating point numbers like 1.3) diff --git a/eeschema/dialogs/dialog_color_config.cpp b/eeschema/dialogs/dialog_color_config.cpp index 0f814e8ff5..a4234da696 100644 --- a/eeschema/dialogs/dialog_color_config.cpp +++ b/eeschema/dialogs/dialog_color_config.cpp @@ -289,14 +289,17 @@ bool DIALOG_COLOR_CONFIG::UpdateColorsSettings() g_DrawBgColor = BLACK; bool warning = false; + for( int ii = 0; ii < MAX_LAYERS; ii++ ) { g_LayerDescr.LayerColor[ ii ] = currentColors[ ii ]; + if( g_DrawBgColor == g_LayerDescr.LayerColor[ ii ] ) warning = true; } m_Parent->SetGridColor( g_LayerDescr.LayerColor[LAYER_GRID] ); + if( g_DrawBgColor == g_LayerDescr.LayerColor[ LAYER_GRID ] ) warning = true; @@ -311,11 +314,9 @@ void DIALOG_COLOR_CONFIG::OnOkClick( wxCommandEvent& event ) // Prompt the user if an item has the same color as the background // because this item cannot be seen: if( warning ) - wxMessageBox( - _("Warning:\nSome items have the same color as the background\nand they will not be seen on screen") - ); + wxMessageBox( _("Warning:\nSome items have the same color as the background\nand they will not be seen on screen") ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); EndModal( 1 ); } @@ -330,7 +331,7 @@ void DIALOG_COLOR_CONFIG::OnCancelClick( wxCommandEvent& event ) void DIALOG_COLOR_CONFIG::OnApplyClick( wxCommandEvent& event ) { UpdateColorsSettings(); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } diff --git a/eeschema/dialogs/dialog_edit_component_in_schematic.cpp b/eeschema/dialogs/dialog_edit_component_in_schematic.cpp index 72e612e3ae..f1da61fd4a 100644 --- a/eeschema/dialogs/dialog_edit_component_in_schematic.cpp +++ b/eeschema/dialogs/dialog_edit_component_in_schematic.cpp @@ -29,7 +29,7 @@ void SCH_EDIT_FRAME::EditComponent( SCH_COMPONENT* aComponent ) wxCHECK_RET( aComponent != NULL && aComponent->Type() == SCH_COMPONENT_T, wxT( "Invalid component object pointer. Bad Programmer!" ) ); - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; DIALOG_EDIT_COMPONENT_IN_SCHEMATIC* dlg = new DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( this ); @@ -54,8 +54,8 @@ void SCH_EDIT_FRAME::EditComponent( SCH_COMPONENT* aComponent ) // so it comes up wide enough next time. DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::s_LastSize = dlg->GetSize(); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; dlg->Destroy(); } @@ -283,7 +283,7 @@ Do you wish to remove this and all remaining undefined fields?" ), m_Parent->OnModify(); m_Parent->GetScreen()->TestDanglingEnds(); - m_Parent->DrawPanel->Refresh( true ); + m_Parent->GetCanvas()->Refresh( true ); EndModal( 0 ); } @@ -834,8 +834,8 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event ) if( m_Cmp->m_Flags == 0 ) m_Parent->SaveCopyInUndoList( m_Cmp, UR_CHANGED ); - INSTALL_UNBUFFERED_DC( dc, m_Parent->DrawPanel ); - m_Cmp->Draw( m_Parent->DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode ); + INSTALL_UNBUFFERED_DC( dc, m_Parent->GetCanvas() ); + m_Cmp->Draw( m_Parent->GetCanvas(), &dc, wxPoint( 0, 0 ), g_XorMode ); // Initialize field values to default values found in library: LIB_FIELD& refField = entry->GetReferenceField(); @@ -850,6 +850,6 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event ) m_Parent->OnModify(); - m_Cmp->Draw( m_Parent->DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_Cmp->Draw( m_Parent->GetCanvas(), &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); EndModal( 1 ); } diff --git a/eeschema/dialogs/dialog_edit_label.cpp b/eeschema/dialogs/dialog_edit_label.cpp index da07cef478..43285ce60e 100644 --- a/eeschema/dialogs/dialog_edit_label.cpp +++ b/eeschema/dialogs/dialog_edit_label.cpp @@ -214,7 +214,7 @@ void DialogLabelEditor::OnOkClick( wxCommandEvent& aEvent ) void DialogLabelEditor::OnCancelClick( wxCommandEvent& aEvent ) { - m_Parent->DrawPanel->MoveCursorToCrossHair(); + m_Parent->GetCanvas()->MoveCursorToCrossHair(); EndModal( wxID_CANCEL ); } @@ -225,16 +225,16 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& aEvent ) int value; /* save old text in undo list if not already in edit */ - if( m_CurrentText->m_Flags == 0 ) + if( m_CurrentText->GetFlags() == 0 ) m_Parent->SaveCopyInUndoList( m_CurrentText, UR_CHANGED ); - m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() ); + m_Parent->GetCanvas()->RefreshDrawingRect( m_CurrentText->GetBoundingBox() ); text = m_textLabel->GetValue(); if( !text.IsEmpty() ) m_CurrentText->m_Text = text; - else if( (m_CurrentText->m_Flags & IS_NEW) == 0 ) + else if( !m_CurrentText->IsNew() ) DisplayError( this, _( "Empty Text!" ) ); m_CurrentText->SetOrientation( m_TextOrient->GetSelection() ); @@ -266,10 +266,10 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& aEvent ) m_Parent->OnModify(); /* Make the text size as new default size if it is a new text */ - if( (m_CurrentText->m_Flags & IS_NEW) != 0 ) + if( m_CurrentText->IsNew() ) g_DefaultTextLabelSize = m_CurrentText->m_Size.x; - m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() ); - m_Parent->DrawPanel->MoveCursorToCrossHair(); + m_Parent->GetCanvas()->RefreshDrawingRect( m_CurrentText->GetBoundingBox() ); + m_Parent->GetCanvas()->MoveCursorToCrossHair(); EndModal( wxID_OK ); } diff --git a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp index 579ae16f9f..9f0e8018d6 100644 --- a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp +++ b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp @@ -109,7 +109,7 @@ void LIB_EDIT_FRAME::InstallFieldsEditorDialog( wxCommandEvent& event ) if( m_component == NULL ) return; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB dlg( this, m_component ); diff --git a/eeschema/dialogs/dialog_erc.cpp b/eeschema/dialogs/dialog_erc.cpp index 6fd1c57231..3df0f6b53c 100644 --- a/eeschema/dialogs/dialog_erc.cpp +++ b/eeschema/dialogs/dialog_erc.cpp @@ -113,7 +113,7 @@ void DIALOG_ERC::OnEraseDrcMarkersClick( wxCommandEvent& event ) ScreenList.DeleteAllMarkers( MARK_ERC ); m_MarkersList->ClearList(); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } @@ -563,7 +563,7 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList ) DisplayERC_MarkersList(); // Display new markers: - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); if( m_writeErcFile ) { diff --git a/eeschema/dialogs/dialog_print_using_printer.cpp b/eeschema/dialogs/dialog_print_using_printer.cpp index 0804bac3ee..181d8bf89d 100644 --- a/eeschema/dialogs/dialog_print_using_printer.cpp +++ b/eeschema/dialogs/dialog_print_using_printer.cpp @@ -316,7 +316,7 @@ void SCH_PRINTOUT::DrawPage( SCH_SCREEN* aScreen ) wxRect fitRect; wxDC* dc = GetDC(); SCH_EDIT_FRAME* parent = m_Parent->GetParent(); - EDA_DRAW_PANEL* panel = parent->DrawPanel; + EDA_DRAW_PANEL* panel = parent->GetCanvas(); wxBusyCursor dummy; diff --git a/eeschema/dialogs/dialog_sch_find.fbp b/eeschema/dialogs/dialog_sch_find.fbp index 36fd85f943..ed18566f2a 100644 --- a/eeschema/dialogs/dialog_sch_find.fbp +++ b/eeschema/dialogs/dialog_sch_find.fbp @@ -528,7 +528,7 @@ 0 - 0 + 1 1 1 @@ -536,7 +536,7 @@ 0 wxID_ANY - Match &whole word + Match whole wor&d m_checkWholeWord @@ -764,7 +764,7 @@ 0 wxID_ANY - Search all component &fields + Search all com&ponent fields m_checkAllFields @@ -821,7 +821,7 @@ 0 wxID_ANY - Search all pin names and numbers + Search all pin &names and numbers m_checkAllPins @@ -878,7 +878,7 @@ 0 wxID_ANY - Search the current sheet on&ly + Search the current &sheet onl&y m_checkCurrentSheetOnly @@ -921,6 +921,63 @@ + + 6 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + + 0 + + 1 + 1 + + + 1 + wxID_ANY + Replace componen&t reference designators + + + m_checkReplaceReferences + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 wxBOTTOM|wxLEFT|wxRIGHT @@ -935,7 +992,7 @@ 0 wxID_ANY - Do not warp cursor to found item + D&o not warp cursor to found item m_checkNoWarpCursor diff --git a/eeschema/dialogs/dialog_schematic_find.cpp b/eeschema/dialogs/dialog_schematic_find.cpp index 89aac3c7b3..135276dc39 100644 --- a/eeschema/dialogs/dialog_schematic_find.cpp +++ b/eeschema/dialogs/dialog_schematic_find.cpp @@ -1,3 +1,32 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2010 Wayne Stambaugh + * Copyright (C) 2010-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * 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, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file dialog_schematic_find.cpp + * @brief Schematic find and replace dialog implementation. + */ + #include "dialog_schematic_find.h" @@ -21,6 +50,7 @@ DIALOG_SCH_FIND::DIALOG_SCH_FIND( wxWindow* aParent, wxFindReplaceData* aData, m_buttonReplaceAll->Show( true ); m_staticReplace->Show( true ); m_comboReplace->Show( true ); + m_checkReplaceReferences->Show( true ); m_checkWildcardMatch->Show( false ); // Wildcard replace is not implemented. } @@ -36,6 +66,7 @@ DIALOG_SCH_FIND::DIALOG_SCH_FIND( wxWindow* aParent, wxFindReplaceData* aData, m_checkWildcardMatch->SetValue( flags & FR_MATCH_WILDCARD ); m_checkAllFields->SetValue( flags & FR_SEARCH_ALL_FIELDS ); + m_checkReplaceReferences->SetValue( flags & FR_REPLACE_REFERENCES ); m_checkAllPins->SetValue( flags & FR_SEARCH_ALL_PINS ); m_checkWrap->SetValue( flags & FR_SEARCH_WRAP ); m_checkCurrentSheetOnly->SetValue( flags & FR_CURRENT_SHEET_ONLY ); @@ -43,7 +74,21 @@ DIALOG_SCH_FIND::DIALOG_SCH_FIND( wxWindow* aParent, wxFindReplaceData* aData, m_buttonFind->SetDefault(); m_comboFind->SetFocus(); SetPosition( aPosition ); - SetSize( aSize ); + + // Adjust the height of the dialog to prevent controls from being hidden when + // switching between the find and find/replace modes of the dialog. This ignores + // the users preferred height if any of the controls would be hidden. + wxSize size = aSize; + + if( aSize != wxDefaultSize ) + { + wxSize bestSize = GetBestSize(); + + if( size.GetHeight() != bestSize.GetHeight() ) + size.SetHeight( bestSize.GetHeight() ); + } + + SetSize( size ); } @@ -142,6 +187,9 @@ void DIALOG_SCH_FIND::SendEvent( const wxEventType& aEventType ) { event.SetReplaceString( m_comboReplace->GetValue() ); flags |= FR_SEARCH_REPLACE; + + if( m_checkReplaceReferences->GetValue() ) + flags |= FR_REPLACE_REFERENCES; } if( m_radioForward->GetValue() ) diff --git a/eeschema/dialogs/dialog_schematic_find.h b/eeschema/dialogs/dialog_schematic_find.h index 90a56966d4..738e36f69c 100644 --- a/eeschema/dialogs/dialog_schematic_find.h +++ b/eeschema/dialogs/dialog_schematic_find.h @@ -1,5 +1,26 @@ -#ifndef __dialog_schematic_find__ -#define __dialog_schematic_find__ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2010 Wayne Stambaugh + * Copyright (C) 2010-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * 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, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ /** * @file @@ -12,6 +33,9 @@ * find out how matching is performed against that item. */ +#ifndef __dialog_schematic_find__ +#define __dialog_schematic_find__ + #include "dialog_schematic_find_base.h" #include // Use the wxFindReplaceDialog events, data, and enums. @@ -49,7 +73,10 @@ enum SchematicFindReplaceFlags /// Used by the search event handler to let the dialog know that a replaceable /// item has been found. - FR_REPLACE_ITEM_FOUND = wxFR_MATCHCASE << 8 + FR_REPLACE_ITEM_FOUND = wxFR_MATCHCASE << 8, + + /// Used by replace to ignore the component reference designator field. + FR_REPLACE_REFERENCES = wxFR_MATCHCASE << 9 }; diff --git a/eeschema/dialogs/dialog_schematic_find_base.cpp b/eeschema/dialogs/dialog_schematic_find_base.cpp index 312e74e6d8..c77391edff 100644 --- a/eeschema/dialogs/dialog_schematic_find_base.cpp +++ b/eeschema/dialogs/dialog_schematic_find_base.cpp @@ -67,7 +67,8 @@ DIALOG_SCH_FIND_BASE::DIALOG_SCH_FIND_BASE( wxWindow* parent, wxWindowID id, con leftSizer->Add( leftGridSizer, 0, wxALL|wxEXPAND, 6 ); - m_checkWholeWord = new wxCheckBox( this, wxID_ANY, _("Match &whole word"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkWholeWord = new wxCheckBox( this, wxID_ANY, _("Match whole wor&d"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkWholeWord->SetValue(true); leftSizer->Add( m_checkWholeWord, 0, wxALL, 6 ); m_checkMatchCase = new wxCheckBox( this, wxID_ANY, _("&Match case"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -80,16 +81,21 @@ DIALOG_SCH_FIND_BASE::DIALOG_SCH_FIND_BASE( wxWindow* parent, wxWindowID id, con m_checkWrap->SetValue(true); leftSizer->Add( m_checkWrap, 0, wxBOTTOM|wxLEFT|wxRIGHT, 6 ); - m_checkAllFields = new wxCheckBox( this, wxID_ANY, _("Search all component &fields"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkAllFields = new wxCheckBox( this, wxID_ANY, _("Search all com&ponent fields"), wxDefaultPosition, wxDefaultSize, 0 ); leftSizer->Add( m_checkAllFields, 0, wxBOTTOM|wxLEFT|wxRIGHT, 6 ); - m_checkAllPins = new wxCheckBox( this, wxID_ANY, _("Search all pin names and numbers"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkAllPins = new wxCheckBox( this, wxID_ANY, _("Search all pin &names and numbers"), wxDefaultPosition, wxDefaultSize, 0 ); leftSizer->Add( m_checkAllPins, 0, wxBOTTOM|wxRIGHT|wxLEFT, 6 ); - m_checkCurrentSheetOnly = new wxCheckBox( this, wxID_ANY, _("Search the current sheet on&ly"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkCurrentSheetOnly = new wxCheckBox( this, wxID_ANY, _("Search the current &sheet onl&y"), wxDefaultPosition, wxDefaultSize, 0 ); leftSizer->Add( m_checkCurrentSheetOnly, 0, wxBOTTOM|wxLEFT|wxRIGHT, 6 ); - m_checkNoWarpCursor = new wxCheckBox( this, wxID_ANY, _("Do not warp cursor to found item"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkReplaceReferences = new wxCheckBox( this, wxID_ANY, _("Replace componen&t reference designators"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkReplaceReferences->Hide(); + + leftSizer->Add( m_checkReplaceReferences, 0, wxBOTTOM|wxLEFT|wxRIGHT, 6 ); + + m_checkNoWarpCursor = new wxCheckBox( this, wxID_ANY, _("D&o not warp cursor to found item"), wxDefaultPosition, wxDefaultSize, 0 ); leftSizer->Add( m_checkNoWarpCursor, 0, wxBOTTOM|wxLEFT|wxRIGHT, 6 ); mainSizer->Add( leftSizer, 1, wxALL|wxEXPAND, 6 ); diff --git a/eeschema/dialogs/dialog_schematic_find_base.h b/eeschema/dialogs/dialog_schematic_find_base.h index f095ae5f12..b8b0c411a3 100644 --- a/eeschema/dialogs/dialog_schematic_find_base.h +++ b/eeschema/dialogs/dialog_schematic_find_base.h @@ -48,6 +48,7 @@ class DIALOG_SCH_FIND_BASE : public wxDialog wxCheckBox* m_checkAllFields; wxCheckBox* m_checkAllPins; wxCheckBox* m_checkCurrentSheetOnly; + wxCheckBox* m_checkReplaceReferences; wxCheckBox* m_checkNoWarpCursor; wxButton* m_buttonFind; wxButton* m_buttonReplace; diff --git a/eeschema/edit_bitmap.cpp b/eeschema/edit_bitmap.cpp index 76fa2437e5..f626f3bad4 100644 --- a/eeschema/edit_bitmap.cpp +++ b/eeschema/edit_bitmap.cpp @@ -90,7 +90,7 @@ static void moveBitmap( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosit aPanel->SetMouseCapture( NULL, NULL ); // Avoid loop in redraw panel int flgs = image->GetFlags(); - image->m_Flags = 0; + image->ClearFlags(); aPanel->RefreshDrawingRect( dirty ); image->SetFlags( flgs ); aPanel->SetMouseCapture( moveBitmap, abortMoveBitmap ); @@ -133,9 +133,9 @@ SCH_BITMAP* SCH_EDIT_FRAME::CreateNewImage( wxDC* aDC ) image->SetFlags( IS_NEW | IS_MOVED ); - image->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + image->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->SetMouseCapture( moveBitmap, abortMoveBitmap ); + m_canvas->SetMouseCapture( moveBitmap, abortMoveBitmap ); GetScreen()->SetCurItem( image ); OnModify(); @@ -146,16 +146,16 @@ void SCH_EDIT_FRAME::MoveImage( SCH_BITMAP* aImageItem, wxDC* aDC ) { aImageItem->SetFlags( IS_MOVED ); - DrawPanel->SetMouseCapture( moveBitmap, abortMoveBitmap ); + m_canvas->SetMouseCapture( moveBitmap, abortMoveBitmap ); GetScreen()->SetCurItem( aImageItem ); m_itemToRepeat = NULL; SetUndoItem( aImageItem ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( aImageItem->GetPosition() ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( aDC ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( aDC ); OnModify(); } @@ -167,7 +167,7 @@ void SCH_EDIT_FRAME::RotateImage( SCH_BITMAP* aItem ) aItem->Rotate( aItem->GetPosition() ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } void SCH_EDIT_FRAME::MirrorImage( SCH_BITMAP* aItem, bool Is_X_axis ) @@ -181,7 +181,7 @@ void SCH_EDIT_FRAME::MirrorImage( SCH_BITMAP* aItem, bool Is_X_axis ) aItem->Mirror_Y( aItem->GetPosition().x ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } void SCH_EDIT_FRAME::EditImage( SCH_BITMAP* aItem ) @@ -196,5 +196,5 @@ void SCH_EDIT_FRAME::EditImage( SCH_BITMAP* aItem ) dlg.TransfertToImage(aItem->m_Image); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/eeschema/edit_component_in_schematic.cpp b/eeschema/edit_component_in_schematic.cpp index 3f96d53b89..04f3c6c3fc 100644 --- a/eeschema/edit_component_in_schematic.cpp +++ b/eeschema/edit_component_in_schematic.cpp @@ -74,7 +74,7 @@ create a new power component with the new value." ), GetChars( entry->GetName() // Don't use GetText() here. If the field is the reference designator and it's parent // component has multiple parts, we don't want the part suffix added to the field. wxString newtext = aField->m_Text; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; wxString title; title.Printf( _( "Edit %s Field" ), GetChars( aField->GetName() ) ); @@ -82,8 +82,8 @@ create a new power component with the new value." ), GetChars( entry->GetName() wxTextEntryDialog dlg( this, wxEmptyString , title, newtext ); int response = dlg.ShowModal(); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; newtext = dlg.GetValue( ); newtext.Trim( true ); newtext.Trim( false ); @@ -91,7 +91,7 @@ create a new power component with the new value." ), GetChars( entry->GetName() if ( response != wxID_OK || newtext == aField->GetText() ) return; // canceled by user - aField->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); if( !newtext.IsEmpty() ) { @@ -135,7 +135,7 @@ create a new power component with the new value." ), GetChars( entry->GetName() } } - aField->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); component->DisplayInfo( this ); OnModify(); } @@ -152,14 +152,14 @@ void SCH_EDIT_FRAME::RotateField( SCH_FIELD* aField, wxDC* aDC ) if( aField->GetFlags() == 0 ) SaveCopyInUndoList( component, UR_CHANGED ); - aField->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); if( aField->m_Orient == TEXT_ORIENT_HORIZ ) aField->m_Orient = TEXT_ORIENT_VERT; else aField->m_Orient = TEXT_ORIENT_HORIZ; - aField->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); OnModify(); } diff --git a/eeschema/edit_label.cpp b/eeschema/edit_label.cpp index b110e98a1b..e4538b2938 100644 --- a/eeschema/edit_label.cpp +++ b/eeschema/edit_label.cpp @@ -60,12 +60,12 @@ void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* aTextItem, wxDC* aDC ) if( aTextItem->GetFlags() == 0 ) SaveCopyInUndoList( aTextItem, UR_CHANGED ); - DrawPanel->CrossHairOff( aDC ); - aTextItem->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + m_canvas->CrossHairOff( aDC ); + aTextItem->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); aTextItem->SetOrientation( orient ); OnModify(); - aTextItem->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); - DrawPanel->CrossHairOn( aDC ); + aTextItem->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); + m_canvas->CrossHairOn( aDC ); } @@ -106,7 +106,7 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* aDC, int aType ) textItem->m_Size.x = textItem->m_Size.y = g_DefaultTextLabelSize; textItem->SetFlags( IS_NEW | IS_MOVED ); - textItem->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + textItem->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); EditSchematicText( textItem ); if( textItem->m_Text.IsEmpty() ) @@ -124,7 +124,7 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* aDC, int aType ) lastGlobalLabelShape = textItem->GetShape(); } - textItem->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + textItem->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); MoveItem( (SCH_ITEM*) textItem, aDC ); return textItem; @@ -220,17 +220,17 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent ) * put in undo list later, at the end of the current command (if not aborted) */ - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); - DrawPanel->CrossHairOff( &dc ); // Erase schematic cursor - text->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); + m_canvas->CrossHairOff( &dc ); // Erase schematic cursor + text->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); screen->RemoveFromDrawList( text ); screen->AddToDrawList( newtext ); GetScreen()->SetCurItem( newtext ); m_itemToRepeat = NULL; OnModify(); - newtext->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->CrossHairOn( &dc ); // redraw schematic cursor + newtext->Draw( m_canvas, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_canvas->CrossHairOn( &dc ); // redraw schematic cursor if( text->IsNew() ) { diff --git a/eeschema/eeredraw.cpp b/eeschema/eeredraw.cpp index 617e4ce7fe..6de40ff459 100644 --- a/eeschema/eeredraw.cpp +++ b/eeschema/eeredraw.cpp @@ -47,16 +47,16 @@ void SCH_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) if( GetScreen() == NULL ) return; - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); - GetScreen()->Draw( DrawPanel, DC, GR_DEFAULT_DRAWMODE ); + GetScreen()->Draw( m_canvas, DC, GR_DEFAULT_DRAWMODE ); TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness ); - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, FALSE ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, FALSE ); - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); // Display the sheet filename, and the sheet path, for non root sheets if( GetScreen()->GetFileName() == m_DefaultSchematicFileName ) diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 9b7dd8a1b4..90dc4f287c 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -170,13 +170,13 @@ bool EDA_APP::OnInit() wxSetWorkingDirectory( filename.GetPath() ); if( frame->LoadOneEEProject( filename.GetFullPath(), false ) ) - frame->DrawPanel->Refresh( true ); + frame->GetCanvas()->Refresh( true ); } else { // Read a default config file if no file to load. frame->LoadProjectFile( wxEmptyString, true ); - frame->DrawPanel->Refresh( true ); + frame->GetCanvas()->Refresh( true ); } return true; diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 1b62863c4e..bbc57da4b0 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -191,7 +191,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 ); dlg.SetShowGrid( IsGridVisible() ); dlg.SetShowHiddenPins( m_showAllPins ); - dlg.SetEnableAutoPan( DrawPanel->m_AutoPAN_Enable ); + dlg.SetEnableAutoPan( m_canvas->m_AutoPAN_Enable ); dlg.SetEnableHVBusOrientation( g_HVLines ); dlg.SetShowPageLimits( g_ShowPageLimits ); dlg.Layout(); @@ -222,7 +222,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) SetAutoSaveInterval( dlg.GetAutoSaveInterval() * 60 ); SetGridVisibility( dlg.GetShowGrid() ); m_showAllPins = dlg.GetShowHiddenPins(); - DrawPanel->m_AutoPAN_Enable = dlg.GetEnableAutoPan(); + m_canvas->m_AutoPAN_Enable = dlg.GetEnableAutoPan(); g_HVLines = dlg.GetEnableHVBusOrientation(); g_ShowPageLimits = dlg.GetShowPageLimits(); @@ -247,7 +247,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) } } - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } diff --git a/eeschema/events_called_functions_for_edit.cpp b/eeschema/events_called_functions_for_edit.cpp index ef7dbb5bd8..f6e5984740 100644 --- a/eeschema/events_called_functions_for_edit.cpp +++ b/eeschema/events_called_functions_for_edit.cpp @@ -18,10 +18,10 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event ) { SCH_ITEM * curr_item = GetScreen()->GetCurItem(); - if( !curr_item || curr_item->m_Flags ) + if( !curr_item || curr_item->GetFlags() ) return; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); switch( curr_item->Type() ) { @@ -31,12 +31,11 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event ) newitem = new SCH_COMPONENT( *( (SCH_COMPONENT*) curr_item ) ); newitem->SetTimeStamp( GetNewTimeStamp() ); newitem->ClearAnnotation( NULL ); - newitem->m_Flags = IS_NEW; + newitem->SetFlags( IS_NEW ); MoveItem( (SCH_ITEM*) newitem, &dc ); - /* Redraw the original part, because StartMovePart() erased - * it from screen */ - curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + // Redraw the original part, because StartMovePart() erased it from screen. + curr_item->Draw( m_canvas, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); } break; @@ -50,7 +49,7 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event ) MoveItem( (SCH_ITEM*) newitem, &dc ); /* Redraw the original part in XOR mode */ - curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode ); + curr_item->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); } break; diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index 3238f254bc..f21c48174a 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -75,7 +75,8 @@ bool SCH_EDIT_FRAME::SaveEEFile( SCH_SCREEN* aScreen, int aSaveType, bool aCreat if( schematicFileName.FileExists() ) { backupFileName.SetExt( g_SchematicBackupFileExtension ); - wxRemoveFile( backupFileName.GetFullPath() ); + if( backupFileName.FileExists() ) + wxRemoveFile( backupFileName.GetFullPath() ); if( !wxRenameFile( schematicFileName.GetFullPath(), backupFileName.GetFullPath() ) ) { @@ -257,7 +258,7 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew ) LoadProjectFile( wxEmptyString, true ); Zoom_Automatique( false ); SetSheetNumberAndCount(); - DrawPanel->Refresh(); + m_canvas->Refresh(); return true; } @@ -353,7 +354,7 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew ) GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId ); Zoom_Automatique( false ); SetSheetNumberAndCount(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); return diag; } diff --git a/eeschema/find.cpp b/eeschema/find.cpp index 53ac012b6e..756bed516c 100644 --- a/eeschema/find.cpp +++ b/eeschema/find.cpp @@ -208,7 +208,7 @@ SCH_ITEM* SCH_EDIT_FRAME::FindComponentAndItem( const wxString& aReference, /* There may be need to reframe the drawing */ - if( ! DrawPanel->IsPointOnDisplay( pos ) ) + if( ! m_canvas->IsPointOnDisplay( pos ) ) { centerAndRedraw = true; } @@ -221,16 +221,16 @@ SCH_ITEM* SCH_EDIT_FRAME::FindComponentAndItem( const wxString& aReference, else { - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); if( aWarpMouse ) - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); GetScreen()->SetCrossHairPosition(pos); - DrawPanel->CrossHairOn( &dc ); + m_canvas->CrossHairOn( &dc ); } } @@ -309,13 +309,14 @@ void SCH_EDIT_FRAME::OnFindSchematicItem( wxFindDialogEvent& aEvent ) searchCriteria.SetFindString( aEvent.GetFindString() ); searchCriteria.SetReplaceString( aEvent.GetReplaceString() ); - if( m_foundItems.GetFindReplaceData().ChangesSearch( searchCriteria ) ) + if( aEvent.GetEventType() == wxEVT_COMMAND_FIND_CLOSE ) { - if( aEvent.GetEventType() == wxEVT_COMMAND_FIND_CLOSE ) - { - warpCursor = true; - } - else if( aEvent.GetFlags() & FR_CURRENT_SHEET_ONLY && g_RootSheet->CountSheets() > 1 ) + if( m_foundItems.GetCount() == 0 ) + return; + } + else if( m_foundItems.IsSearchRequired( searchCriteria ) ) + { + if( aEvent.GetFlags() & FR_CURRENT_SHEET_ONLY && g_RootSheet->CountSheets() > 1 ) { m_foundItems.Collect( searchCriteria, m_CurrentSheet ); } diff --git a/eeschema/general.h b/eeschema/general.h index 86d7f556e8..8cdc0ff80a 100644 --- a/eeschema/general.h +++ b/eeschema/general.h @@ -33,9 +33,6 @@ class TRANSFORM; #define HIGHLIGHT_COLOR WHITE -/* Used for EDA_ITEM, .m_Select member */ -#define IS_SELECTED 1 - #define TEXT_NO_VISIBLE 1 //#define GR_DEFAULT_DRAWMODE GR_COPY diff --git a/eeschema/getpart.cpp b/eeschema/getpart.cpp index ded87874a1..f347c983c7 100644 --- a/eeschema/getpart.cpp +++ b/eeschema/getpart.cpp @@ -96,7 +96,7 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, static wxString lastCommponentName; m_itemToRepeat = NULL; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; if( !libname.IsEmpty() ) { @@ -122,8 +122,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if ( dlg.ShowModal() == wxID_CANCEL ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } @@ -140,8 +140,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if( Name.IsEmpty() ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } @@ -157,8 +157,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if( Name.IsEmpty() ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } } @@ -168,8 +168,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if( GetNameOfPartToLoad( this, Library, Name ) == 0 ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } } @@ -180,8 +180,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if( Name.IsEmpty() ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } } @@ -200,14 +200,14 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, if( Entry == NULL ) { - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); return NULL; } } - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); if( Entry == NULL ) { @@ -230,7 +230,7 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC, // Set the component value that can differ from component name in lib, for aliases component->GetField( VALUE )->m_Text = Name; component->DisplayInfo( this ); - component->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); component->SetFlags( IS_NEW ); MoveItem( (SCH_ITEM*) component, DC ); @@ -252,7 +252,7 @@ void SCH_EDIT_FRAME::OrientComponent( COMPONENT_ORIENTATION_T aOrientation ) SCH_COMPONENT* component = (SCH_COMPONENT*) item; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( component->GetFlags() == 0 ) { @@ -260,27 +260,27 @@ void SCH_EDIT_FRAME::OrientComponent( COMPONENT_ORIENTATION_T aOrientation ) GetScreen()->SetCurItem( NULL ); } - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); // Erase the previous component in it's current orientation. - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); if( component->GetFlags() ) - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - DrawPanel->RefreshDrawingRect( component->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( component->GetBoundingBox() ); component->SetOrientation( aOrientation ); /* Redraw the component in the new position. */ if( component->GetFlags() ) - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - DrawPanel->CrossHairOn( &dc ); - GetScreen()->TestDanglingEnds( DrawPanel, &dc ); + m_canvas->CrossHairOn( &dc ); + GetScreen()->TestDanglingEnds( m_canvas, &dc ); OnModify(); } @@ -296,9 +296,9 @@ void SCH_EDIT_FRAME::OnSelectUnit( wxCommandEvent& aEvent ) wxCHECK_RET( item != NULL && item->Type() == SCH_COMPONENT_T, wxT( "Cannot select unit of invalid schematic item." ) ); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SCH_COMPONENT* component = (SCH_COMPONENT*) item; @@ -330,9 +330,9 @@ void SCH_EDIT_FRAME::OnSelectUnit( wxCommandEvent& aEvent ) SaveCopyInUndoList( component, UR_CHANGED ); if( flags ) - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); /* Update the unit number. */ component->SetUnitSelection( m_CurrentSheet, unit ); @@ -342,11 +342,11 @@ void SCH_EDIT_FRAME::OnSelectUnit( wxCommandEvent& aEvent ) /* Redraw the component in the new position. */ if( flags ) - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - component->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); OnModify(); } @@ -369,11 +369,12 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC ) return; } - int flags = DrawComponent->m_Flags; - if( DrawComponent->m_Flags ) - DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + int flags = DrawComponent->GetFlags(); + + if( DrawComponent->GetFlags() ) + DrawComponent->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + DrawComponent->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); DrawComponent->SetConvert( DrawComponent->GetConvert() + 1 ); @@ -390,11 +391,11 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC ) DrawComponent->SetFlags( flags ); // Restore m_Flag (modified by SetConvert()) /* Redraw the component in the new position. */ - if( DrawComponent->m_Flags & IS_MOVED ) - DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + if( DrawComponent->IsMoving() ) + DrawComponent->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); else - DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + DrawComponent->Draw( m_canvas, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); - GetScreen()->TestDanglingEnds( DrawPanel, DC ); + GetScreen()->TestDanglingEnds( m_canvas, DC ); OnModify( ); } diff --git a/eeschema/hierarch.cpp b/eeschema/hierarch.cpp index 12192437e3..20a98cbb09 100644 --- a/eeschema/hierarch.cpp +++ b/eeschema/hierarch.cpp @@ -280,26 +280,26 @@ void SCH_EDIT_FRAME::DisplayCurrentSheet() // update the References m_CurrentSheet->UpdateAllScreenReferences(); SetSheetNumberAndCount(); - DrawPanel->m_CanStartBlock = -1; + m_canvas->m_CanStartBlock = -1; if( screen->m_FirstRedraw ) { Zoom_Automatique( false ); screen->m_FirstRedraw = false; screen->SetCrossHairPosition( screen->GetScrollCenterPosition() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } else { RedrawScreen( screen->GetScrollCenterPosition(), true ); } - // Now refresh DrawPanel. Should be not necessary, but because screen has changed + // Now refresh m_canvas. Should be not necessary, but because screen has changed // the previous refresh has set all new draw parameters (scroll position ..) // but most of time there were some inconsitencies about cursor parameters // ( previous position of cursor ...) and artefacts can happen // mainly when sheet size has changed // This second refresh clears artefacts because at this point, // all parameters are now updated - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/eeschema/lib_arc.cpp b/eeschema/lib_arc.cpp index d076146488..3d71b8ed0f 100644 --- a/eeschema/lib_arc.cpp +++ b/eeschema/lib_arc.cpp @@ -387,7 +387,7 @@ void LIB_ARC::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf if( aColor < 0 ) // Used normal color or selected color { - if( ( m_Selected & IS_SELECTED ) ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/lib_bezier.cpp b/eeschema/lib_bezier.cpp index b3d2c85839..2c3888ad66 100644 --- a/eeschema/lib_bezier.cpp +++ b/eeschema/lib_bezier.cpp @@ -316,7 +316,7 @@ void LIB_BEZIER::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& if( aColor < 0 ) // Used normal color or selected color { - if( m_Selected & IS_SELECTED ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/lib_circle.cpp b/eeschema/lib_circle.cpp index 5fc195d80d..bd8a78e0c3 100644 --- a/eeschema/lib_circle.cpp +++ b/eeschema/lib_circle.cpp @@ -228,7 +228,7 @@ void LIB_CIRCLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& if( aColor < 0 ) // Used normal color or selected color { - if( ( m_Selected & IS_SELECTED ) ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/lib_export.cpp b/eeschema/lib_export.cpp index 5d67356d2a..1470fa4dcb 100644 --- a/eeschema/lib_export.cpp +++ b/eeschema/lib_export.cpp @@ -89,7 +89,7 @@ void LIB_EDIT_FRAME::OnImportPart( wxCommandEvent& event ) m_lastLibImportPath = fn.GetPath(); DisplayLibInfos(); GetScreen()->ClearUndoRedoList(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } delete LibTmp; diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index 298c5b5e76..d41188faa4 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -292,7 +292,7 @@ void LIB_FIELD::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& a { color = g_InvisibleItemColor; } - else if( ( m_Selected & IS_SELECTED ) && ( aColor < 0 ) ) + else if( IsSelected() && ( aColor < 0 ) ) { color = g_ItemSelectetColor; } diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 6396785708..cd2ea8cc53 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -882,7 +882,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel, if( aColor < 0 ) // Used normal color or selected color { - if( (m_Selected & IS_SELECTED) ) + if( IsSelected() ) color = g_ItemSelectetColor; } else @@ -1104,7 +1104,7 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel, GRSetDrawMode( DC, DrawMode ); /* Get the num and name colors */ - if( (Color < 0) && (m_Selected & IS_SELECTED) ) + if( (Color < 0) && IsSelected() ) Color = g_ItemSelectetColor; NameColor = (EDA_Colors) ( Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color ); diff --git a/eeschema/lib_polyline.cpp b/eeschema/lib_polyline.cpp index 383910df63..acb2290908 100644 --- a/eeschema/lib_polyline.cpp +++ b/eeschema/lib_polyline.cpp @@ -282,7 +282,7 @@ void LIB_POLYLINE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint if( aColor < 0 ) // Used normal color or selected color { - if( m_Selected & IS_SELECTED ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/lib_rectangle.cpp b/eeschema/lib_rectangle.cpp index e035eaa2ba..765a115fb7 100644 --- a/eeschema/lib_rectangle.cpp +++ b/eeschema/lib_rectangle.cpp @@ -214,7 +214,7 @@ void LIB_RECTANGLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, if( aColor < 0 ) // Used normal color or selected color { - if( m_Selected & IS_SELECTED ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 838fad628a..4e6e4d9a06 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -350,7 +350,7 @@ void LIB_TEXT::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aO if( aColor < 0 ) // Used normal color or selected color { - if( ( m_Selected & IS_SELECTED ) ) + if( IsSelected() ) color = g_ItemSelectetColor; } else diff --git a/eeschema/libedit.cpp b/eeschema/libedit.cpp index da89d3a476..2fe713d023 100644 --- a/eeschema/libedit.cpp +++ b/eeschema/libedit.cpp @@ -118,7 +118,7 @@ void LIB_EDIT_FRAME::LoadOneLibraryPart( wxCommandEvent& event ) wxString CmpName; LIB_ALIAS* LibEntry = NULL; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); if( GetScreen()->IsModify() && !IsOK( this, _( "Current part not saved.\n\nDiscard current changes?" ) ) ) @@ -235,7 +235,7 @@ void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) if( GetScreen() == NULL ) return; - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); if( m_component ) { @@ -246,15 +246,15 @@ void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) wxString fieldText = Field->m_Text; wxString fieldfullText = Field->GetFullText( m_unit ); Field->m_Text = fieldfullText; - m_component->Draw( DrawPanel, DC, wxPoint( 0, 0 ), m_unit, + m_component->Draw( m_canvas, DC, wxPoint( 0, 0 ), m_unit, m_convert, GR_DEFAULT_DRAWMODE ); Field->m_Text = fieldText; } - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); DisplayLibInfos(); UpdateStatusBar(); @@ -266,7 +266,7 @@ void LIB_EDIT_FRAME::SaveActiveLibrary( wxCommandEvent& event ) wxFileName fn; wxString msg; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); if( m_library == NULL ) { @@ -456,7 +456,7 @@ void LIB_EDIT_FRAME::DeleteOnePart( wxCommandEvent& event ) wxArrayString ListNames; wxString msg; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); m_lastDrawItem = NULL; m_drawItem = NULL; @@ -536,7 +536,7 @@ All changes will be lost. Discard changes?" ) ) ) m_aliasName.Empty(); } - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -550,7 +550,7 @@ void LIB_EDIT_FRAME::CreateNewLibraryPart( wxCommandEvent& event ) lost!\n\nClear the current component from the screen?" ) ) ) return; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); m_drawItem = NULL; @@ -634,7 +634,7 @@ lost!\n\nClear the current component from the screen?" ) ) ) m_lastDrawItem = NULL; GetScreen()->ClearUndoRedoList(); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); m_mainToolBar->Refresh(); } diff --git a/eeschema/libedit_onleftclick.cpp b/eeschema/libedit_onleftclick.cpp index df57bbc6ad..2c94e78a22 100644 --- a/eeschema/libedit_onleftclick.cpp +++ b/eeschema/libedit_onleftclick.cpp @@ -22,7 +22,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) if( m_component == NULL ) // No component loaded ! return; - if( item == NULL || item->m_Flags == 0 ) + if( item == NULL || item->GetFlags() == 0 ) { item = LocateItemUsingCursor( aPosition ); @@ -32,15 +32,15 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) { DisplayCmpDoc(); - if( DrawPanel->m_AbortRequest ) - DrawPanel->m_AbortRequest = false; + if( m_canvas->m_AbortRequest ) + m_canvas->m_AbortRequest = false; } } switch( GetToolId() ) { case ID_NO_TOOL_SELECTED: - if( item && item->m_Flags ) // moved object + if( item && item->GetFlags() ) // moved object { switch( item->Type() ) { @@ -56,7 +56,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) break; case ID_LIBEDIT_PIN_BUTT: - if( m_drawItem == NULL || m_drawItem->m_Flags == 0 ) + if( m_drawItem == NULL || m_drawItem->GetFlags() == 0 ) { CreatePin( DC ); } @@ -71,7 +71,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) case ID_LIBEDIT_BODY_CIRCLE_BUTT: case ID_LIBEDIT_BODY_RECT_BUTT: case ID_LIBEDIT_BODY_TEXT_BUTT: - if( m_drawItem == NULL || m_drawItem->m_Flags == 0 ) + if( m_drawItem == NULL || m_drawItem->GetFlags() == 0 ) { m_drawItem = CreateGraphicItem( m_component, DC ); } @@ -97,12 +97,12 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) case ID_LIBEDIT_ANCHOR_ITEM_BUTT: SaveCopyInUndoList( m_component ); PlaceAnchor(); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; default: wxFAIL_MSG( wxString::Format( wxT( "Unhandled command ID %d" ), GetToolId() ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; } } @@ -118,7 +118,7 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition ) if( m_component == NULL ) return; - if( ( m_drawItem == NULL ) || ( m_drawItem->m_Flags == 0 ) ) + if( ( m_drawItem == NULL ) || ( m_drawItem->GetFlags() == 0 ) ) { // We can locate an item m_drawItem = LocateItemUsingCursor( aPosition ); @@ -135,12 +135,12 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition ) else return; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; switch( m_drawItem->Type() ) { case LIB_PIN_T: - if( m_drawItem->m_Flags == 0 ) + if( m_drawItem->GetFlags() == 0 ) { wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetId( ID_LIBEDIT_EDIT_PIN ); @@ -151,14 +151,14 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition ) case LIB_ARC_T: case LIB_CIRCLE_T: case LIB_RECTANGLE_T: - if( m_drawItem->m_Flags == 0 ) + if( m_drawItem->GetFlags() == 0 ) { EditGraphicSymbol( DC, m_drawItem ); } break; case LIB_POLYLINE_T: - if( m_drawItem->m_Flags == 0 ) + if( m_drawItem->GetFlags() == 0 ) { EditGraphicSymbol( DC, m_drawItem ); } @@ -169,14 +169,14 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition ) break; case LIB_TEXT_T: - if( m_drawItem->m_Flags == 0 ) + if( m_drawItem->GetFlags() == 0 ) { EditSymbolText( DC, m_drawItem ); } break; case LIB_FIELD_T: - if( m_drawItem->m_Flags == 0 ) + if( m_drawItem->GetFlags() == 0 ) { EditField( DC, (LIB_FIELD*) m_drawItem ); } @@ -187,6 +187,6 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition ) break; } - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; } diff --git a/eeschema/libedit_onrightclick.cpp b/eeschema/libedit_onrightclick.cpp index 03d985bfa0..a4931a42c4 100644 --- a/eeschema/libedit_onrightclick.cpp +++ b/eeschema/libedit_onrightclick.cpp @@ -51,9 +51,9 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) item = LocateItemUsingCursor( aPosition ); // If the clarify item selection context menu is aborted, don't show the context menu. - if( item == NULL && DrawPanel->m_AbortRequest ) + if( item == NULL && m_canvas->m_AbortRequest ) { - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; return false; } @@ -234,8 +234,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame ) { - bool selected = (Pin->m_Selected & IS_SELECTED) != 0; - bool not_in_move = (Pin->GetFlags() == 0); + bool selected = Pin->IsSelected(); + bool not_in_move = !Pin->IsMoving(); wxString msg; if( not_in_move ) diff --git a/eeschema/libedit_plot_component.cpp b/eeschema/libedit_plot_component.cpp index 0aeaa12609..792394cdba 100644 --- a/eeschema/libedit_plot_component.cpp +++ b/eeschema/libedit_plot_component.cpp @@ -72,7 +72,7 @@ void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event ) * the margin is 10% the size of the component size */ wxSize pagesize = GetScreen()->ReturnPageSize( ); - wxSize componentSize = m_component->GetBoundingBox( m_unit, m_convert ).m_Size; + wxSize componentSize = m_component->GetBoundingBox( m_unit, m_convert ).GetSize(); // Add a small margin to the plot bounding box componentSize.x = (int)(componentSize.x * 1.2); @@ -88,9 +88,9 @@ void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event ) void LIB_EDIT_FRAME::CreatePNGorJPEGFile( const wxString& aFileName, bool aFmt_jpeg ) { - wxSize image_size = DrawPanel->GetClientSize(); + wxSize image_size = m_canvas->GetClientSize(); - wxClientDC dc( DrawPanel ); + wxClientDC dc( m_canvas ); wxBitmap bitmap( image_size.x, image_size.y ); wxMemoryDC memdc; @@ -125,7 +125,7 @@ void LIB_EDIT_FRAME::PrintPage( wxDC* aDC, int aPrintMask, bool aPrintMirrorMode plot_offset.x = pagesize.x/2; plot_offset.y = pagesize.y/2; - m_component->Draw( DrawPanel, aDC, plot_offset, m_unit, m_convert, GR_DEFAULT_DRAWMODE ); + m_component->Draw( m_canvas, aDC, plot_offset, m_unit, m_convert, GR_DEFAULT_DRAWMODE ); } diff --git a/eeschema/libedit_undo_redo.cpp b/eeschema/libedit_undo_redo.cpp index b59907ff12..cbc6e3d075 100644 --- a/eeschema/libedit_undo_redo.cpp +++ b/eeschema/libedit_undo_redo.cpp @@ -62,8 +62,8 @@ void LIB_EDIT_FRAME::GetComponentFromRedoList( wxCommandEvent& event ) SetShowDeMorgan( m_component->HasConversion() ); DisplayLibInfos(); DisplayCmpDoc(); - OnModify( ); - DrawPanel->Refresh(); + OnModify(); + m_canvas->Refresh(); } @@ -99,5 +99,5 @@ void LIB_EDIT_FRAME::GetComponentFromUndoList( wxCommandEvent& event ) DisplayLibInfos(); DisplayCmpDoc(); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/eeschema/libeditframe.cpp b/eeschema/libeditframe.cpp index 3d2dc73f75..0e23437c26 100644 --- a/eeschema/libeditframe.cpp +++ b/eeschema/libeditframe.cpp @@ -223,8 +223,8 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( SCH_EDIT_FRAME* aParent, SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y ); GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId ); - if( DrawPanel ) - DrawPanel->m_Block_Enable = true; + if( m_canvas ) + m_canvas->m_Block_Enable = true; EnsureActiveLibExists(); ReCreateMenuBar(); @@ -256,7 +256,7 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( SCH_EDIT_FRAME* aParent, m_auimgr.AddPane( m_optionsToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() ); - m_auimgr.AddPane( DrawPanel, + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); m_auimgr.AddPane( m_messagePanel, @@ -382,7 +382,7 @@ double LIB_EDIT_FRAME::BestZoom() GetScreen()->SetScrollCenterPosition( wxPoint( 0, 0 ) ); } - size = DrawPanel->GetClientSize(); + size = m_canvas->GetClientSize(); // Reserve a 10% margin around component bounding box. double margin_scale_factor = 0.8; @@ -562,7 +562,7 @@ void LIB_EDIT_FRAME::OnSelectAlias( wxCommandEvent& event ) m_aliasName = m_aliasSelectBox->GetStringSelection(); DisplayCmpDoc(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -575,7 +575,7 @@ void LIB_EDIT_FRAME::OnSelectPart( wxCommandEvent& event ) m_lastDrawItem = NULL; m_unit = i + 1; - DrawPanel->Refresh(); + m_canvas->Refresh(); DisplayCmpDoc(); } @@ -599,7 +599,7 @@ void LIB_EDIT_FRAME::OnViewEntryDoc( wxCommandEvent& event ) void LIB_EDIT_FRAME::OnSelectBodyStyle( wxCommandEvent& event ) { - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); if( event.GetId() == ID_DE_MORGAN_NORMAL_BUTT ) m_convert = 1; @@ -607,7 +607,7 @@ void LIB_EDIT_FRAME::OnSelectBodyStyle( wxCommandEvent& event ) m_convert = 2; m_lastDrawItem = NULL; - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -616,7 +616,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) int id = event.GetId(); wxPoint pos; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; wxGetMousePosition( &pos.x, &pos.y ); pos.y += 20; @@ -642,23 +642,23 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_LIBEDIT_CANCEL_EDITING: - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->EndMouseCapture(); + if( m_canvas->IsMouseCaptured() ) + m_canvas->EndMouseCapture(); else - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); break; case ID_POPUP_LIBEDIT_DELETE_ITEM: - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); break; default: - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; } - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); switch( id ) { @@ -678,7 +678,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_LIBEDIT_END_CREATE_ITEM: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( m_drawItem ) { EndDrawGraphicItem( &dc ); @@ -688,7 +688,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_LIBEDIT_BODY_EDIT_ITEM: if( m_drawItem ) { - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); switch( m_drawItem->Type() ) { @@ -707,7 +707,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) ; } - DrawPanel->CrossHairOn( &dc ); + m_canvas->CrossHairOn( &dc ); } break; @@ -717,12 +717,12 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( m_drawItem == NULL ) break; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); int oldFlags = m_drawItem->GetFlags(); m_drawItem->ClearFlags(); - m_drawItem->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); + m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); ( (LIB_POLYLINE*) m_drawItem )->DeleteSegment( GetScreen()->GetCrossHairPosition( true ) ); - m_drawItem->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); + m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); m_drawItem->SetFlags( oldFlags ); m_lastDrawItem = NULL; break; @@ -749,7 +749,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( m_drawItem == NULL ) break; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( m_drawItem->Type() == LIB_RECTANGLE_T || m_drawItem->Type() == LIB_CIRCLE_T || m_drawItem->Type() == LIB_POLYLINE_T @@ -765,15 +765,15 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( m_drawItem == NULL ) break; - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); if( m_drawItem->Type() == LIB_FIELD_T ) { EditField( &dc, (LIB_FIELD*) m_drawItem ); } - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( &dc ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( &dc ); break; case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM: @@ -784,60 +784,60 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( m_component ); GlobalSetPins( &dc, (LIB_PIN*) m_drawItem, id ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_ZOOM_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; HandleBlockEnd( &dc ); break; case ID_POPUP_DELETE_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockEnd( &dc ); break; case ID_POPUP_COPY_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_SELECT_ITEMS_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_SELECT_ITEMS_ONLY; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockEnd( &dc ); break; case ID_POPUP_MIRROR_Y_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_Y; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_MIRROR_X_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_X; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_ROTATE_BLOCK: - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->m_BlockLocate.m_Command = BLOCK_ROTATE; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_PLACE_BLOCK: - DrawPanel->m_AutoPAN_Request = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_AutoPAN_Request = false; + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; @@ -846,7 +846,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; } - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->m_IgnoreMouseEvents = false; if( GetToolId() == ID_NO_TOOL_SELECTED ) m_lastDrawItem = NULL; @@ -933,7 +933,7 @@ void LIB_EDIT_FRAME::EditSymbolText( wxDC* DC, LIB_ITEM* DrawItem ) /* Deleting old text. */ if( DC && !DrawItem->InEditMode() ) - DrawItem->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); + DrawItem->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform ); DIALOG_LIB_EDIT_TEXT* frame = new DIALOG_LIB_EDIT_TEXT( this, (LIB_TEXT*) DrawItem ); frame->ShowModal(); @@ -942,7 +942,7 @@ void LIB_EDIT_FRAME::EditSymbolText( wxDC* DC, LIB_ITEM* DrawItem ) /* Display new text. */ if( DC && !DrawItem->InEditMode() ) - DrawItem->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, NULL, + DrawItem->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, NULL, DefaultTransform ); } @@ -968,7 +968,7 @@ void LIB_EDIT_FRAME::OnEditComponentProperties( wxCommandEvent& event ) DisplayLibInfos(); DisplayCmpDoc(); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -984,11 +984,11 @@ void LIB_EDIT_FRAME::OnCreateNewPartFromExisting( wxCommandEvent& event ) wxCHECK_RET( m_component != NULL, wxT( "Cannot create new part from non-existent current part." ) ); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); - DrawPanel->CrossHairOff( &dc ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); + m_canvas->CrossHairOff( &dc ); EditField( &dc, &m_component->GetValueField() ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( &dc ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( &dc ); } void LIB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) @@ -998,13 +998,13 @@ void LIB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) if( GetToolId() == ID_NO_TOOL_SELECTED ) m_lastDrawItem = NULL; - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); switch( id ) { case ID_NO_TOOL_SELECTED: - SetToolID( id, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( id, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_LIBEDIT_PIN_BUTT: @@ -1018,7 +1018,7 @@ void LIB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetId( ID_LIBEDIT_EDIT_PIN ); GetEventHandler()->ProcessEvent( cmd ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } break; @@ -1047,15 +1047,15 @@ void LIB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) break; case ID_LIBEDIT_IMPORT_BODY_BUTT: - SetToolID( id, DrawPanel->GetDefaultCursor(), _( "Import" ) ); + SetToolID( id, m_canvas->GetDefaultCursor(), _( "Import" ) ); LoadOneSymbol(); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_LIBEDIT_EXPORT_BODY_BUTT: - SetToolID( id, DrawPanel->GetDefaultCursor(), _( "Export" ) ); + SetToolID( id, m_canvas->GetDefaultCursor(), _( "Export" ) ); SaveOneSymbol(); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_LIBEDIT_DELETE_ITEM_BUTT: @@ -1072,7 +1072,7 @@ void LIB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) break; } - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->m_IgnoreMouseEvents = false; } @@ -1093,7 +1093,7 @@ void LIB_EDIT_FRAME::OnRotateItem( wxCommandEvent& aEvent ) if( !m_drawItem->InEditMode() ) m_drawItem->ClearFlags(); - DrawPanel->Refresh(); + m_canvas->Refresh(); if( GetToolId() == ID_NO_TOOL_SELECTED ) m_lastDrawItem = NULL; @@ -1160,9 +1160,9 @@ LIB_ITEM* LIB_EDIT_FRAME::locateItem( const wxPoint& aPosition, const KICAD_T aF // Set to NULL in case user aborts the clarification context menu. m_drawItem = NULL; - DrawPanel->m_AbortRequest = true; // Changed to false if an item is selected + m_canvas->m_AbortRequest = true; // Changed to false if an item is selected PopupMenu( &selectMenu ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); item = m_drawItem; } } @@ -1180,7 +1180,7 @@ void LIB_EDIT_FRAME::deleteItem( wxDC* aDC ) { wxCHECK_RET( m_drawItem != NULL, wxT( "No drawing item selected to delete." ) ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); SaveCopyInUndoList( m_component ); if( m_drawItem->Type() == LIB_PIN_T ) @@ -1188,7 +1188,7 @@ void LIB_EDIT_FRAME::deleteItem( wxDC* aDC ) LIB_PIN* pin = (LIB_PIN*) m_drawItem; wxPoint pos = pin->GetPosition(); - m_component->RemoveDrawItem( (LIB_ITEM*) pin, DrawPanel, aDC ); + m_component->RemoveDrawItem( (LIB_ITEM*) pin, m_canvas, aDC ); if( SynchronizePins() ) { @@ -1206,25 +1206,25 @@ void LIB_EDIT_FRAME::deleteItem( wxDC* aDC ) } } - DrawPanel->Refresh(); + m_canvas->Refresh(); } else { - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_endMouseCaptureCallback( DrawPanel, aDC ); + m_canvas->m_endMouseCaptureCallback( m_canvas, aDC ); } else { - m_component->RemoveDrawItem( m_drawItem, DrawPanel, aDC ); - DrawPanel->Refresh(); + m_component->RemoveDrawItem( m_drawItem, m_canvas, aDC ); + m_canvas->Refresh(); } } m_drawItem = NULL; m_lastDrawItem = NULL; OnModify(); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); } @@ -1237,7 +1237,7 @@ void LIB_EDIT_FRAME::OnSelectItem( wxCommandEvent& aEvent ) && (index >= 0 && index < m_collectedItems.GetCount()) ) { LIB_ITEM* item = m_collectedItems[index]; - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; m_drawItem = item; } } diff --git a/eeschema/libfield.cpp b/eeschema/libfield.cpp index d9a9878a6b..755b5c1091 100644 --- a/eeschema/libfield.cpp +++ b/eeschema/libfield.cpp @@ -144,7 +144,7 @@ this component?" ), if( !aField->InEditMode() ) { SaveCopyInUndoList( parent ); - ( (LIB_ITEM*) aField )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, + ( (LIB_ITEM*) aField )->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText, DefaultTransform ); } @@ -152,7 +152,7 @@ this component?" ), if( !aField->InEditMode() ) { fieldText = aField->GetFullText( m_unit ); - ( (LIB_ITEM*) aField )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, + ( (LIB_ITEM*) aField )->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText, DefaultTransform ); } diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index 57bcddb279..226a5e4baa 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -310,7 +310,7 @@ void SCH_EDIT_FRAME::ReCreateMenuBar() // Wire to Bus entry text = AddHotkeyName( _( "Wire to Bus &Entry" ), s_Schematic_Hokeys_Descr, - HK_ADD_WIRE_ENTRY, IS_ACCELERATOR ); // addan accelerator, not a shortcut + HK_ADD_WIRE_ENTRY, IS_ACCELERATOR ); // add an accelerator, not a shortcut AddMenuItem( placeMenu, ID_WIRETOBUS_ENTRY_BUTT, text, HELP_PLACE_WIRE2BUS_ENTRY, KiBitmap( add_line2bus_xpm ) ); diff --git a/eeschema/onleftclick.cpp b/eeschema/onleftclick.cpp index b99fdb0e60..6c16457224 100644 --- a/eeschema/onleftclick.cpp +++ b/eeschema/onleftclick.cpp @@ -57,7 +57,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( ( GetToolId() == ID_NO_TOOL_SELECTED ) || ( item && item->GetFlags() ) ) { - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; m_itemToRepeat = NULL; if( item && item->GetFlags() ) @@ -79,7 +79,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) item->Place( this, aDC ); GetScreen()->SetCurItem( NULL ); GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); return; case SCH_LINE_T: // May already be drawing segment. @@ -129,16 +129,16 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { m_itemToRepeat = AddNoConnect( aDC, gridPosition ); GetScreen()->SetCurItem( m_itemToRepeat ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case ID_JUNCTION_BUTT: @@ -146,16 +146,16 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { m_itemToRepeat = AddJunction( aDC, gridPosition, true ); GetScreen()->SetCurItem( m_itemToRepeat ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case ID_WIRETOBUS_ENTRY_BUTT: @@ -165,15 +165,15 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) item = CreateBusEntry( aDC, ( GetToolId() == ID_WIRETOBUS_ENTRY_BUTT ) ? WIRE_TO_BUS : BUS_TO_BUS ); GetScreen()->SetCurItem( item ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); GetScreen()->SetCurItem( NULL ); GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->Refresh( true ); + m_canvas->m_AutoPAN_Request = false; } break; @@ -183,29 +183,29 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) case ID_WIRE_BUTT: BeginSegment( aDC, LAYER_WIRE ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; break; case ID_BUS_BUTT: BeginSegment( aDC, LAYER_BUS ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; break; case ID_LINE_COMMENT_BUTT: BeginSegment( aDC, LAYER_NOTES ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; break; case ID_TEXT_COMMENT_BUTT: if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_NOTES ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } break; @@ -213,12 +213,12 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { GetScreen()->SetCurItem( CreateNewImage( aDC ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } break; @@ -226,14 +226,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_LOCLABEL ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; @@ -247,14 +247,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( GetToolId() == ID_HIERLABEL_BUTT ) GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_HIERLABEL ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; @@ -262,14 +262,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { GetScreen()->SetCurItem( CreateSheet( aDC ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; @@ -292,7 +292,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { item->Place( this, aDC ); GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; @@ -300,14 +300,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( (item == NULL) || (item->GetFlags() == 0) ) { GetScreen()->SetCurItem( Load_Component( aDC, wxEmptyString, s_CmpNameList, true ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; @@ -316,19 +316,19 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { GetScreen()->SetCurItem( Load_Component( aDC, wxT( "power" ), s_PowerNameList, false ) ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { item->Place( this, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; default: - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); wxFAIL_MSG( wxT( "SCH_EDIT_FRAME::OnLeftClick invalid tool ID <" ) + wxString::Format( wxT( "%d> selected." ), GetToolId() ) ); } @@ -368,7 +368,7 @@ void SCH_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) case SCH_COMPONENT_T: EditComponent( (SCH_COMPONENT*) item ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case SCH_TEXT_T: @@ -384,7 +384,7 @@ void SCH_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) case SCH_FIELD_T: EditComponentFieldText( (SCH_FIELD*) item, aDC ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case SCH_MARKER_T: diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index ba33652ec8..fd10526209 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -62,6 +62,7 @@ static void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component ); static void AddMenusForComponentField( wxMenu* PopMenu, SCH_FIELD* Field ); static void AddMenusForMarkers( wxMenu* aPopMenu, SCH_MARKER* aMarker, SCH_EDIT_FRAME* aFrame ); static void AddMenusForBitmap( wxMenu* aPopMenu, SCH_BITMAP * aBitmap ); +static void AddMenusForBusEntry( wxMenu* aPopMenu, SCH_BUS_ENTRY * aBusEntry ); @@ -75,7 +76,7 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) bool BlockActive = GetScreen()->IsBlockActive(); // Do not start a block command on context menu. - DrawPanel->m_CanStartBlock = -1; + m_canvas->m_CanStartBlock = -1; if( BlockActive ) { @@ -90,9 +91,9 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) item = LocateAndShowItem( aPosition, SCH_COLLECTOR::AllItemsButPins ); // If the clarify item selection context menu is aborted, don't show the context menu. - if( item == NULL && DrawPanel->m_AbortRequest ) + if( item == NULL && m_canvas->m_AbortRequest ) { - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; return false; } } @@ -149,20 +150,7 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) break; case SCH_BUS_ENTRY_T: - if( !flags ) - { - wxString msg = AddHotkeyName( _( "Move Bus Entry" ), s_Schematic_Hokeys_Descr, - HK_MOVE_COMPONENT_OR_ITEM ); - AddMenuItem( PopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_xpm ) ); - } - - if( GetBusEntryShape( (SCH_BUS_ENTRY*) item ) == '\\' ) - PopMenu->Append( ID_POPUP_SCH_ENTRY_SELECT_SLASH, _( "Set Bus Entry /" ) ); - else - PopMenu->Append( ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH, _( "Set Bus Entry \\" ) ); - - AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Bus Entry" ), - KiBitmap( delete_bus_xpm ) ); + AddMenusForBusEntry( PopMenu, (SCH_BUS_ENTRY*) item ); break; case SCH_MARKER_T: @@ -746,3 +734,24 @@ void AddMenusForBitmap( wxMenu* aPopMenu, SCH_BITMAP * aBitmap ) AddMenuItem( aPopMenu, ID_POPUP_SCH_DELETE, msg, KiBitmap( delete_xpm ) ); } } + +void AddMenusForBusEntry( wxMenu* aPopMenu, SCH_BUS_ENTRY * aBusEntry ) +{ + wxString msg; + if( !aBusEntry->GetFlags() ) + { + msg = AddHotkeyName( _( "Move Bus Entry" ), s_Schematic_Hokeys_Descr, + HK_MOVE_COMPONENT_OR_ITEM ); + AddMenuItem( aPopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_xpm ) ); + } + + if( aBusEntry->GetBusEntryShape() == '\\' ) + AddMenuItem( aPopMenu, ID_POPUP_SCH_ENTRY_SELECT_SLASH, + _( "Set Bus Entry Shape /" ), KiBitmap( change_entry_orient_xpm ) ); + else + AddMenuItem( aPopMenu, ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH, + _( "Set Bus Entry Shape \\" ), KiBitmap( change_entry_orient_xpm ) ); + + msg = AddHotkeyName( _( "Delete Bus Entry" ), s_Schematic_Hokeys_Descr, HK_DELETE ); + AddMenuItem( aPopMenu, ID_POPUP_SCH_DELETE, msg, KiBitmap( delete_xpm ) ); +} diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index 6998fa7f91..79f585f4fd 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -142,6 +142,7 @@ void DeleteItemsInList( EDA_DRAW_PANEL* panel, PICKED_ITEMS_LIST& aItemsList ) void SCH_EDIT_FRAME::DeleteItem( SCH_ITEM* aItem ) { wxCHECK_RET( aItem != NULL, wxT( "Cannot delete invalid item." ) ); + if( aItem == NULL ) return; @@ -155,7 +156,7 @@ void SCH_EDIT_FRAME::DeleteItem( SCH_ITEM* aItem ) wxT( "Sheet label has invalid parent item." ) ); SaveCopyInUndoList( (SCH_ITEM*) sheet, UR_CHANGED ); sheet->RemovePin( (SCH_SHEET_PIN*) aItem ); - DrawPanel->RefreshDrawingRect( sheet->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( sheet->GetBoundingBox() ); } else { @@ -165,7 +166,7 @@ void SCH_EDIT_FRAME::DeleteItem( SCH_ITEM* aItem ) aItem->SetBack( NULL ); // Only one struct -> no link SaveCopyInUndoList( aItem, UR_DELETED ); - DrawPanel->RefreshDrawingRect( aItem->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( aItem->GetBoundingBox() ); } } @@ -248,7 +249,7 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* aDrawStruct, bool aClone ) if( aClone ) NewDrawStruct->SetTimeStamp( aDrawStruct->GetTimeStamp() ); - NewDrawStruct->m_Image = aDrawStruct; + NewDrawStruct->SetImage( aDrawStruct ); return NewDrawStruct; } diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp index be16e2f2a7..9cf7ec365a 100644 --- a/eeschema/pinedit.cpp +++ b/eeschema/pinedit.cpp @@ -70,7 +70,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) if( m_drawItem == NULL || m_drawItem->Type() != LIB_PIN_T ) return; - int item_flags = m_drawItem->m_Flags; // save flags to restore them after editing + int item_flags = m_drawItem->GetFlags(); // save flags to restore them after editing LIB_PIN* pin = (LIB_PIN*) m_drawItem; DIALOG_LIB_EDIT_PIN dlg( this, pin ); @@ -115,8 +115,8 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) { if( pin->IsNew() ) { - pin->m_Flags |= IS_CANCELLED; - DrawPanel->EndMouseCapture(); + pin->SetFlags( IS_CANCELLED ); + m_canvas->EndMouseCapture(); } return; } @@ -152,13 +152,14 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) OnModify( ); pin->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } pin->EnableEditMode( false, m_editPinsPerPartOrConvert ); // Restore pin flags, that can be changed by the dialog editor - pin->m_Flags = item_flags; + pin->ClearFlags(); + pin->SetFlags( item_flags ); } @@ -214,17 +215,17 @@ void LIB_EDIT_FRAME::PlacePin( wxDC* DC ) // Test for an other pin in same new position: for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) ) { - if( Pin == CurrentPin || newpos != Pin->GetPosition() || Pin->m_Flags ) + if( Pin == CurrentPin || newpos != Pin->GetPosition() || Pin->GetFlags() ) continue; if( ask_for_pin && SynchronizePins() ) { - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; status = IsOK( this, _( "This position is already occupied by \ another pin. Continue?" ) ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; if( !status ) return; @@ -240,7 +241,7 @@ another pin. Continue?" ) ); else SaveCopyInUndoList( m_component ); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); OnModify(); CurrentPin->SetPosition( newpos ); @@ -260,18 +261,18 @@ another pin. Continue?" ) ); /* Put linked pins in new position, and clear flags */ for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) ) { - if( Pin->m_Flags == 0 ) + if( Pin->GetFlags() == 0 ) continue; Pin->SetPosition( CurrentPin->GetPosition() ); - Pin->m_Flags = 0; + Pin->ClearFlags(); } - DrawPanel->CrossHairOff( DC ); + m_canvas->CrossHairOff( DC ); bool showPinText = true; - CurrentPin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, + CurrentPin->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, &showPinText, DefaultTransform ); - DrawPanel->CrossHairOn( DC ); + m_canvas->CrossHairOn( DC ); m_drawItem = NULL; } @@ -296,7 +297,7 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC ) for( ; Pin != NULL; Pin = m_component->GetNextPin( Pin ) ) { - Pin->m_Flags = 0; + Pin->ClearFlags(); if( Pin == CurrentPin ) continue; @@ -304,21 +305,21 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC ) if( ( Pin->GetPosition() == CurrentPin->GetPosition() ) && ( Pin->GetOrientation() == CurrentPin->GetOrientation() ) && SynchronizePins() ) - Pin->m_Flags |= IS_LINKED | IS_MOVED; + Pin->SetFlags( IS_LINKED | IS_MOVED ); } - CurrentPin->m_Flags |= IS_LINKED | IS_MOVED; + CurrentPin->SetFlags( IS_LINKED | IS_MOVED ); PinPreviousPos = OldPos = CurrentPin->GetPosition(); startPos.x = OldPos.x; startPos.y = -OldPos.y; - DrawPanel->CrossHairOff( DC ); + m_canvas->CrossHairOff( DC ); GetScreen()->SetCrossHairPosition( startPos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); CurrentPin->DisplayInfo( this ); - DrawPanel->SetMouseCapture( DrawMovePin, AbortPinMove ); - DrawPanel->CrossHairOn( DC ); + m_canvas->SetMouseCapture( DrawMovePin, AbortPinMove ); + m_canvas->CrossHairOn( DC ); } @@ -378,13 +379,13 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC ) m_drawItem = pin; - pin->m_Flags = IS_NEW; + pin->SetFlags( IS_NEW ); pin->SetUnit( m_unit ); pin->SetConvert( m_convert ); /* Flag pins to consider */ if( SynchronizePins() ) - pin->m_Flags |= IS_LINKED; + pin->SetFlags( IS_LINKED ); pin->SetPosition( GetScreen()->GetCrossHairPosition( true ) ); pin->SetLength( LastPinLength ); @@ -397,24 +398,24 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC ) pin->SetUnit( LastPinCommonUnit ? 0 : m_unit ); pin->SetVisible( LastPinVisible ); PinPreviousPos = pin->GetPosition(); - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetId( ID_LIBEDIT_EDIT_PIN ); GetEventHandler()->ProcessEvent( cmd ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; - if( pin->m_Flags & IS_CANCELLED ) + if( pin->GetFlags() & IS_CANCELLED ) { deleteItem( DC ); } else { ClearTempCopyComponent(); - DrawPanel->SetMouseCapture( DrawMovePin, AbortPinMove ); + m_canvas->SetMouseCapture( DrawMovePin, AbortPinMove ); if( DC ) - pin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, wxCOPY, &showPinText, + pin->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, wxCOPY, &showPinText, DefaultTransform ); } @@ -480,7 +481,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id ) { LIB_PIN* Pin; - bool selected = ( MasterPin->m_Selected & IS_SELECTED ) != 0; + bool selected = MasterPin->IsSelected(); bool showPinText = true; if( ( m_component == NULL ) || ( MasterPin == NULL ) ) @@ -499,10 +500,10 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id ) continue; // Is it the "selected mode" ? - if( selected && ( Pin->m_Selected & IS_SELECTED ) == 0 ) + if( selected && !Pin->IsSelected() ) continue; - Pin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform ); + Pin->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform ); switch( id ) { @@ -519,7 +520,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id ) break; } - Pin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, &showPinText, + Pin->Draw( m_canvas, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, &showPinText, DefaultTransform ); } } @@ -535,7 +536,8 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) return; Pin = (LIB_PIN*) SourcePin->Clone(); - Pin->m_Flags = IS_NEW; + Pin->ClearFlags(); + Pin->SetFlags( IS_NEW ); Pin->SetPosition( Pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) ); wxString nextName = Pin->GetName(); IncrementLabelMember( nextName ); @@ -548,10 +550,10 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) m_drawItem = Pin; if( SynchronizePins() ) - Pin->m_Flags |= IS_LINKED; + Pin->SetFlags( IS_LINKED ); wxPoint savepos = GetScreen()->GetCrossHairPosition(); - DrawPanel->CrossHairOff( DC ); + m_canvas->CrossHairOff( DC ); GetScreen()->SetCrossHairPosition( wxPoint( Pin->GetPosition().x, -Pin->GetPosition().y ) ); // Add this new pin in list, and creates pins for others parts if needed @@ -561,7 +563,7 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) m_lastDrawItem = Pin; GetScreen()->SetCrossHairPosition( savepos ); - DrawPanel->CrossHairOn( DC ); + m_canvas->CrossHairOn( DC ); Pin->DisplayInfo( this ); OnModify( ); diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index a08103af7c..1d676d8d48 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -296,3 +296,37 @@ void SCH_BUS_ENTRY::doPlot( PLOTTER* aPlotter ) aPlotter->move_to( m_pos ); aPlotter->finish_to( m_End() ); } + +/* SetBusEntryShape: + * Set the shape of the bus entry. + * aShape = ascii code '/' or '\' + */ +void SCH_BUS_ENTRY::SetBusEntryShape( int aShape ) +{ + switch( aShape ) + { + case '\\': + if( m_size.y < 0 ) + m_size.y = -m_size.y; + break; + + case '/': + if( m_size.y > 0 ) + m_size.y = -m_size.y; + break; + } +} + + +/* GetBusEntryShape: + * return the shape of the bus entry, as an ascii code '/' or '\' + */ +int SCH_BUS_ENTRY::GetBusEntryShape() const +{ + int shape = '\\'; + + if( GetSize().y < 0 ) + shape = '/'; + + return shape; +} diff --git a/eeschema/sch_bus_entry.h b/eeschema/sch_bus_entry.h index b2faf2242a..7b27a5801a 100644 --- a/eeschema/sch_bus_entry.h +++ b/eeschema/sch_bus_entry.h @@ -64,6 +64,18 @@ public: wxPoint m_End() const; + /** + * function GetBusEntryShape + * @return the shape of the bus entry, as an ascii code '/' or '\' + */ + int GetBusEntryShape() const; + + /** + * function SetBusEntryShape + * @param aShape = the shape of the bus entry, as an ascii code '/' or '\' + */ + void SetBusEntryShape( int aShape ); + int GetWidth() const { return m_width; } void SetWidth( int aWidth ) { m_width = aWidth; } diff --git a/eeschema/sch_collectors.cpp b/eeschema/sch_collectors.cpp index 5dd9cb6ac3..6d38003f20 100644 --- a/eeschema/sch_collectors.cpp +++ b/eeschema/sch_collectors.cpp @@ -408,20 +408,22 @@ wxString SCH_FIND_COLLECTOR::GetText() SCH_FIND_COLLECTOR_DATA data = m_data[ m_foundIndex ]; EDA_ITEM* foundItem = m_List[ m_foundIndex ]; - wxCHECK_MSG( foundItem != NULL, wxEmptyString, wxT( "Inavalid found item pointer." ) ); + wxCHECK_MSG( foundItem != NULL, wxEmptyString, wxT( "Invalid found item pointer." ) ); wxString msg; if( data.GetParent() ) { - msg = _( "Child item " ) + foundItem->GetSelectMenuText() + - _( " of parent item " ) + data.GetParent()->GetSelectMenuText() + - _( " found in sheet " ) + data.GetSheetPath(); + msg.Printf( _( "Child item %s of parent item %s found in sheet %s" ), + GetChars( foundItem->GetSelectMenuText() ), + GetChars( data.GetParent()->GetSelectMenuText() ), + GetChars( data.GetSheetPath() ) ); } else { - msg = _( "Item " ) + foundItem->GetSelectMenuText() + _( " found in sheet " ) + - data.GetSheetPath(); + msg.Printf( _( "Item %s found in sheet %s" ), + GetChars( foundItem->GetSelectMenuText() ), + GetChars( data.GetSheetPath() ) ); } return msg; @@ -494,13 +496,14 @@ SEARCH_RESULT SCH_FIND_COLLECTOR::Inspect( EDA_ITEM* aItem, const void* aTestDat void SCH_FIND_COLLECTOR::Collect( SCH_FIND_REPLACE_DATA& aFindReplaceData, SCH_SHEET_PATH* aSheetPath ) { - if( !m_findReplaceData.ChangesSearch( aFindReplaceData ) ) + if( !m_findReplaceData.ChangesSearch( aFindReplaceData ) && !m_List.empty() && !m_forceSearch ) return; m_findReplaceData = aFindReplaceData; Empty(); // empty the collection just in case m_data.clear(); m_foundIndex = 0; + m_forceSearch = false; if( aSheetPath ) { diff --git a/eeschema/sch_collectors.h b/eeschema/sch_collectors.h index 1db5b0dfda..64f6f7c660 100644 --- a/eeschema/sch_collectors.h +++ b/eeschema/sch_collectors.h @@ -221,6 +221,10 @@ class SCH_FIND_COLLECTOR : public COLLECTOR /// The current found item list index. int m_foundIndex; + /// A flag to indicate that the schemtic has been modified and a new search must be + /// performed even if the search criteria hasn't changed. + bool m_forceSearch; + /** * Function atEnd * tests if #m_foundIndex is at the end of the list give the current find/replace @@ -247,8 +251,11 @@ public: { SetScanTypes( aScanTypes ); m_foundIndex = 0; + m_forceSearch = false; } + void SetForceSearch() { m_forceSearch = true; } + /** * Function UpdateIndex * updates the list index according to the current find and replace criteria. @@ -266,12 +273,19 @@ public: SCH_FIND_COLLECTOR_DATA GetFindData( int aIndex ); /** - * Function GetFindReplaceData + * Function IsSearchRequired + * checks the current collector state agaianst \a aFindReplaceData to see if a new search + * needs to be performed to update the collector. * - * @return A reference to a #SCH_FIND_REPLACE_DATA object containing the current - * search criteria. + * @param aFindReplaceData A #SCH_FIND_REPLACE_DATA object containing the search criteria + * to test for changes against the current search criteria. + * @return True if \a aFindReplaceData would require a new search to be performaed or + * the force search flag is true. Otherwise, false is returned. */ - SCH_FIND_REPLACE_DATA& GetFindReplaceData() { return m_findReplaceData; } + bool IsSearchRequired( SCH_FIND_REPLACE_DATA& aFindReplaceData ) + { + return m_findReplaceData.ChangesSearch( aFindReplaceData ) || m_forceSearch; + } /** * Function GetText() diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index 7a4c82b3e8..d6f935c7a2 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -313,7 +313,7 @@ void SCH_COMPONENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset SCH_FIELD* field = GetField( REFERENCE ); - if( field->IsVisible() && !( field->m_Flags & IS_MOVED ) ) + if( field->IsVisible() && !field->IsMoving() ) { field->Draw( panel, DC, offset, DrawMode ); } @@ -322,7 +322,7 @@ void SCH_COMPONENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset { field = GetField( ii ); - if( field->m_Flags & IS_MOVED ) + if( field->IsMoving() ) continue; field->Draw( panel, DC, offset, DrawMode ); diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index 173573205c..2d1d245108 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -345,14 +345,14 @@ bool SCH_FIELD::Save( FILE* aFile ) const void SCH_FIELD::Place( SCH_EDIT_FRAME* frame, wxDC* DC ) { - frame->DrawPanel->SetMouseCapture( NULL, NULL ); + frame->GetCanvas()->SetMouseCapture( NULL, NULL ); SCH_COMPONENT* component = (SCH_COMPONENT*) GetParent(); // save old cmp in undo list frame->SaveUndoItemInUndoList( component ); - Draw( frame->DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + Draw( frame->GetCanvas(), DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); ClearFlags(); frame->GetScreen()->SetCurItem( NULL ); frame->OnModify(); @@ -364,7 +364,8 @@ bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint bool match; wxString text = GetText(); - if( (m_id > VALUE) && !(aSearchData.GetFlags() & FR_SEARCH_ALL_FIELDS) ) + if( ((m_id > VALUE) && !(aSearchData.GetFlags() & FR_SEARCH_ALL_FIELDS)) + || ((m_id == REFERENCE) && !(aSearchData.GetFlags() & FR_REPLACE_REFERENCES)) ) return false; wxLogTrace( traceFindItem, wxT( " child item " ) + GetSelectMenuText() ); @@ -398,6 +399,40 @@ bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint } +bool SCH_FIELD::Replace( wxFindReplaceData& aSearchData, void* aAuxData ) +{ + bool isReplaced; + wxString text = GetText(); + + if( m_id == REFERENCE && aAuxData != NULL ) + { + wxCHECK_MSG( aSearchData.GetFlags() & FR_REPLACE_REFERENCES, false, + wxT( "Invalid replace component reference field call." ) ) ; + + SCH_COMPONENT* component = (SCH_COMPONENT*) m_Parent; + + wxCHECK_MSG( component != NULL, false, + wxT( "No component associated with field" ) + text ); + + text = component->GetRef( (SCH_SHEET_PATH*) aAuxData ); + + if( component->GetPartCount() > 1 ) + text << LIB_COMPONENT::ReturnSubReference( component->GetUnit() ); + + isReplaced = EDA_ITEM::Replace( aSearchData, text ); + + if( isReplaced ) + component->SetRef( (SCH_SHEET_PATH*) aAuxData, text ); + } + else + { + isReplaced = EDA_ITEM::Replace( aSearchData, m_Text ); + } + + return isReplaced; +} + + void SCH_FIELD::Rotate( wxPoint rotationPoint ) { RotatePoint( &m_Pos, rotationPoint, 900 ); diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index 992900b677..098dcfbbe8 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -203,12 +203,9 @@ public: void* aAuxData, wxPoint* aFindLocation ); /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&) + * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) */ - virtual bool Replace( wxFindReplaceData& aSearchData ) - { - return EDA_ITEM::Replace( aSearchData, m_Text ); - } + virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); virtual wxString GetSelectMenuText() const; diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index bba80bbf37..91169bd542 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -484,12 +484,12 @@ void SCH_SHEET::Place( SCH_EDIT_FRAME* frame, wxDC* DC ) { // fix size and position of the new sheet // using the last values set by the m_mouseCaptureCallback function - frame->DrawPanel->SetMouseCapture( NULL, NULL ); + frame->GetCanvas()->SetMouseCapture( NULL, NULL ); if( !frame->EditSheet( this, DC ) ) { frame->GetScreen()->SetCurItem( NULL ); - Draw( frame->DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + Draw( frame->GetCanvas(), DC, wxPoint( 0, 0 ), g_XorMode ); delete this; return; } @@ -649,7 +649,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, /* Draw text : SheetLabel */ BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { - if( !( sheetPin.m_Flags & IS_MOVED ) ) + if( !sheetPin.IsMoving() ) sheetPin.Draw( aPanel, aDC, aOffset, aDrawMode, aColor ); } } @@ -676,7 +676,7 @@ EDA_RECT SCH_SHEET::GetBoundingBox() const end += m_pos; // Move upper and lower limits to include texts: - box.m_Pos.y -= wxRound( m_sheetNameSize * 1.3 ) + 8; + box.SetY( box.GetY() - ( wxRound( m_sheetNameSize * 1.3 ) + 8 ) ); end.y += wxRound( m_fileNameSize * 1.3 ) + 8; box.SetEnd( end ); @@ -955,7 +955,7 @@ bool SCH_SHEET::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint } -bool SCH_SHEET::Replace( wxFindReplaceData& aSearchData ) +bool SCH_SHEET::Replace( wxFindReplaceData& aSearchData, void* aAuxData ) { return EDA_ITEM::Replace( aSearchData, m_name ); } diff --git a/eeschema/sch_sheet.h b/eeschema/sch_sheet.h index b9955d6caa..b427da8eb8 100644 --- a/eeschema/sch_sheet.h +++ b/eeschema/sch_sheet.h @@ -206,9 +206,9 @@ public: virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&) + * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) */ - virtual bool Replace( wxFindReplaceData& aSearchData ) + virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) { return EDA_ITEM::Replace( aSearchData, m_Text ); } @@ -579,9 +579,9 @@ public: virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&) + * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) */ - virtual bool Replace( wxFindReplaceData& aSearchData ); + virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); /** * @copydoc EDA_ITEM::IsReplaceable() diff --git a/eeschema/sch_sheet_pin.cpp b/eeschema/sch_sheet_pin.cpp index dd13af2fd1..58f208cb9b 100644 --- a/eeschema/sch_sheet_pin.cpp +++ b/eeschema/sch_sheet_pin.cpp @@ -144,11 +144,11 @@ void SCH_SHEET_PIN::Place( SCH_EDIT_FRAME* aFrame, wxDC* aDC ) } ClearFlags(); - sheet->Draw( aFrame->DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + sheet->Draw( aFrame->GetCanvas(), aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); // Make sure we don't call the abort move function. - aFrame->DrawPanel->SetMouseCapture( NULL, NULL ); - aFrame->DrawPanel->EndMouseCapture(); + aFrame->GetCanvas()->SetMouseCapture( NULL, NULL ); + aFrame->GetCanvas()->EndMouseCapture(); } diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index f1cbe31d80..6c2a19eedf 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -207,9 +207,9 @@ public: virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&) + * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) */ - virtual bool Replace( wxFindReplaceData& aSearchData ) + virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) { return EDA_ITEM::Replace( aSearchData, m_Text ); } diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index 0c59e17eda..551277b269 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -100,17 +100,17 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_SCH_DELETE: // Stop the current command (if any) but keep the current tool - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); break; default: // Stop the current command and deselect the current tool - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); break; } - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); item = screen->GetCurItem(); // Can be modified by previous calls. switch( id ) @@ -134,30 +134,30 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_SCH_ENTRY_SELECT_SLASH: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SetBusEntryShape( &dc, (SCH_BUS_ENTRY*) item, '/' ); break; case ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SetBusEntryShape( &dc, (SCH_BUS_ENTRY*) item, '\\' ); break; case ID_POPUP_CANCEL_CURRENT_COMMAND: - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->EndMouseCapture(); - SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); + m_canvas->EndMouseCapture(); + SetToolID( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString ); } else { - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } break; case ID_POPUP_END_LINE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); EndSegment( &dc ); break; @@ -168,24 +168,24 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_SCH_DELETE_NODE: case ID_POPUP_SCH_DELETE_CONNECTION: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); DeleteConnection( id == ID_POPUP_SCH_DELETE_CONNECTION ); screen->SetCurItem( NULL ); m_itemToRepeat = NULL; - screen->TestDanglingEnds( DrawPanel, &dc ); - DrawPanel->Refresh(); + screen->TestDanglingEnds( m_canvas, &dc ); + m_canvas->Refresh(); break; case ID_POPUP_SCH_BREAK_WIRE: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SCH_ITEM* oldWiresList = screen->ExtractWires( true ); screen->BreakSegment( screen->GetCrossHairPosition() ); if( oldWiresList ) SaveCopyInUndoList( oldWiresList, UR_WIRE_IMAGE ); - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); } break; @@ -197,19 +197,19 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) DeleteItem( item ); screen->SetCurItem( NULL ); m_itemToRepeat = NULL; - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); SetSheetNumberAndCount(); OnModify(); break; case ID_POPUP_SCH_END_SHEET: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); item->Place( this, &dc ); break; case ID_POPUP_SCH_RESIZE_SHEET: ReSizeSheet( (SCH_SHEET*) item, &dc ); - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); break; case ID_POPUP_IMPORT_GLABEL: @@ -236,12 +236,12 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( sheet, UR_CHANGED ); sheet->CleanupSheet(); OnModify(); - DrawPanel->RefreshDrawingRect( sheet->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( sheet->GetBoundingBox() ); } break; case ID_POPUP_SCH_INIT_CMP: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_SCH_EDIT_CONVERT_CMP: @@ -249,7 +249,7 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a component, like Field, text..) if( item && item->Type() == SCH_COMPONENT_T ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ConvertPart( (SCH_COMPONENT*) item, &dc ); } @@ -291,8 +291,8 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PLACE_BLOCK: - DrawPanel->m_AutoPAN_Request = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_AutoPAN_Request = false; + m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; @@ -301,25 +301,25 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_DELETE_BLOCK: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockEndByPopUp( BLOCK_DELETE, &dc ); SetSheetNumberAndCount(); break; case ID_POPUP_COPY_BLOCK: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockEndByPopUp( BLOCK_COPY, &dc ); break; case ID_POPUP_DRAG_BLOCK: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); HandleBlockEndByPopUp( BLOCK_DRAG, &dc ); break; case ID_POPUP_SCH_ADD_JUNCTION: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); screen->SetCurItem( AddJunction( &dc, screen->GetCrossHairPosition(), true ) ); - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); screen->SetCurItem( NULL ); break; @@ -332,7 +332,7 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( item ) { item->Place( this, &dc ); - screen->TestDanglingEnds( DrawPanel, &dc ); + screen->TestDanglingEnds( m_canvas, &dc ); screen->SetCurItem( NULL ); } @@ -380,7 +380,7 @@ void SCH_EDIT_FRAME::OnMoveItem( wxCommandEvent& aEvent ) return; } - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); switch( item->Type() ) { @@ -426,18 +426,18 @@ void SCH_EDIT_FRAME::OnCancelCurrentCommand( wxCommandEvent& aEvent ) if( screen->IsBlockActive() ) { - DrawPanel->SetCursor( wxCursor( DrawPanel->GetDefaultCursor() ) ); + m_canvas->SetCursor( wxCursor( m_canvas->GetDefaultCursor() ) ); screen->ClearBlockCommand(); // Stop the current command (if any) but keep the current tool - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); } else { - if( DrawPanel->IsMouseCaptured() ) // Stop the current command but keep the current tool - DrawPanel->EndMouseCapture(); + if( m_canvas->IsMouseCaptured() ) // Stop the current command but keep the current tool + m_canvas->EndMouseCapture(); else // Deselect current tool - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); } } @@ -447,12 +447,12 @@ void SCH_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) int id = aEvent.GetId(); // Stop the current command and deselect the current tool. - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); switch( id ) { case ID_NO_TOOL_SELECTED: - SetToolID( id, DrawPanel->GetDefaultCursor(), _( "No tool selected" ) ); + SetToolID( id, m_canvas->GetDefaultCursor(), _( "No tool selected" ) ); break; case ID_HIERARCHY_PUSH_POP_BUTT: @@ -542,7 +542,7 @@ void SCH_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) wxPoint pos = data->GetPosition(); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); OnLeftClick( &dc, pos ); } } @@ -563,7 +563,7 @@ void SCH_EDIT_FRAME::DeleteConnection( bool aFullConnection ) if( screen->GetConnection( pos, pickList, aFullConnection ) != 0 ) { - DeleteItemsInList( DrawPanel, pickList ); + DeleteItemsInList( m_canvas, pickList ); OnModify(); } } @@ -585,7 +585,7 @@ bool SCH_EDIT_FRAME::DeleteItemAtCrossHair( wxDC* DC ) DeleteItem( item ); if( itemHasConnections ) - screen->TestDanglingEnds( DrawPanel, DC ); + screen->TestDanglingEnds( m_canvas, DC ); OnModify(); return true; @@ -676,18 +676,18 @@ void SCH_EDIT_FRAME::MoveItem( SCH_ITEM* aItem, wxDC* aDC ) aItem->SetFlags( IS_MOVED ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); if( aItem->Type() != SCH_SHEET_PIN_T ) GetScreen()->SetCrossHairPosition( aItem->GetPosition() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); OnModify(); - DrawPanel->SetMouseCapture( moveItem, abortMoveItem ); + m_canvas->SetMouseCapture( moveItem, abortMoveItem ); GetScreen()->SetCurItem( aItem ); - moveItem( DrawPanel, aDC, wxDefaultPosition, true ); - DrawPanel->CrossHairOn( aDC ); + moveItem( m_canvas, aDC, wxDefaultPosition, true ); + m_canvas->CrossHairOn( aDC ); } @@ -696,7 +696,7 @@ void SCH_EDIT_FRAME::OnRotate( wxCommandEvent& aEvent ) SCH_SCREEN* screen = GetScreen(); SCH_ITEM* item = screen->GetCurItem(); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); if( item == NULL ) { @@ -739,12 +739,12 @@ void SCH_EDIT_FRAME::OnRotate( wxCommandEvent& aEvent ) case SCH_LABEL_T: case SCH_GLOBAL_LABEL_T: case SCH_HIERARCHICAL_LABEL_T: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ChangeTextOrient( (SCH_TEXT*) item, &dc ); break; case SCH_FIELD_T: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); RotateField( (SCH_FIELD*) item, &dc ); break; @@ -768,7 +768,7 @@ void SCH_EDIT_FRAME::OnEditItem( wxCommandEvent& aEvent ) SCH_SCREEN* screen = GetScreen(); SCH_ITEM* item = screen->GetCurItem(); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); if( item == NULL ) { @@ -856,7 +856,7 @@ void SCH_EDIT_FRAME::OnDragItem( wxCommandEvent& aEvent ) SCH_SCREEN* screen = GetScreen(); SCH_ITEM* item = screen->GetCurItem(); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); if( item == NULL ) { @@ -889,7 +889,7 @@ void SCH_EDIT_FRAME::OnDragItem( wxCommandEvent& aEvent ) case SCH_GLOBAL_LABEL_T: case SCH_HIERARCHICAL_LABEL_T: case SCH_SHEET_T: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // The easiest way to handle a drag component or sheet command // is to simulate a block drag command @@ -920,7 +920,7 @@ void SCH_EDIT_FRAME::OnOrient( wxCommandEvent& aEvent ) SCH_SCREEN* screen = GetScreen(); SCH_ITEM* item = screen->GetCurItem(); - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); if( item == NULL ) { diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index f6876ce002..2daae5cf3f 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -362,7 +362,7 @@ void SCH_EDIT_FRAME::GetSchematicFromUndoList( wxCommandEvent& event ) SetSheetNumberAndCount(); GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -385,5 +385,5 @@ void SCH_EDIT_FRAME::GetSchematicFromRedoList( wxCommandEvent& event ) SetSheetNumberAndCount(); GetScreen()->TestDanglingEnds(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 462e11ec4b..a343686c78 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -224,8 +224,8 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( wxWindow* father, SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y ); - if( DrawPanel ) - DrawPanel->m_Block_Enable = true; + if( m_canvas ) + m_canvas->m_Block_Enable = true; ReCreateMenuBar(); ReCreateHToolbar(); @@ -260,8 +260,8 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( wxWindow* father, m_auimgr.AddPane( m_optionsToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() ); - if( DrawPanel ) - m_auimgr.AddPane( DrawPanel, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); + if( m_canvas ) + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); if( m_messagePanel ) m_auimgr.AddPane( m_messagePanel, wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom(). @@ -492,7 +492,7 @@ double SCH_EDIT_FRAME::BestZoom() dx = GetScreen()->m_CurrentSheetDesc->m_Size.x; dy = GetScreen()->m_CurrentSheetDesc->m_Size.y; - size = DrawPanel->GetClientSize(); + size = m_canvas->GetClientSize(); // Reserve no margin because best zoom shows the full page // and margins are already included in function that draws the sheet refernces @@ -545,6 +545,9 @@ void SCH_EDIT_FRAME::OnModify() GetScreen()->SetModify(); GetScreen()->SetSave(); + if( m_dlgFindReplace == NULL ) + m_foundItems.SetForceSearch(); + wxString date = GenDate(); SCH_SCREENS s_list; @@ -559,6 +562,7 @@ void SCH_EDIT_FRAME::OnModify() screen->m_Date = date; } + /***************************************************************************** * Enable or disable menu entry and toolbar buttons according to current * conditions. @@ -649,7 +653,7 @@ void SCH_EDIT_FRAME::OnFindItems( wxCommandEvent& aEvent ) wxCHECK_RET( m_findReplaceData != NULL, wxT( "Forgot to create find/replace data. Bad Programmer!" ) ); - this->DrawPanel->m_IgnoreMouseEvents = true; + this->GetCanvas()->m_IgnoreMouseEvents = true; if( m_dlgFindReplace ) { @@ -680,7 +684,6 @@ void SCH_EDIT_FRAME::OnFindItems( wxCommandEvent& aEvent ) m_dlgFindReplace->SetFindEntries( m_findStringHistoryList ); m_dlgFindReplace->SetReplaceEntries( m_replaceStringHistoryList ); - m_dlgFindReplace->SetMinSize( m_dlgFindReplace->GetBestSize() ); m_dlgFindReplace->Show( true ); } @@ -701,7 +704,7 @@ void SCH_EDIT_FRAME::OnFindDialogClose( wxFindDialogEvent& event ) m_dlgFindReplace = NULL; } - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->m_IgnoreMouseEvents = false; } @@ -719,7 +722,7 @@ void SCH_EDIT_FRAME::OnLoadFile( wxCommandEvent& event ) void SCH_EDIT_FRAME::OnLoadStuffFile( wxCommandEvent& event ) { ReadInputStuffFile(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -873,7 +876,7 @@ void SCH_EDIT_FRAME::SVG_Print( wxCommandEvent& event ) void SCH_EDIT_FRAME::PrintPage( wxDC* aDC, int aPrintMask, bool aPrintMirrorMode, void* aData ) { - GetScreen()->Draw( DrawPanel, aDC, GR_DEFAULT_DRAWMODE ); + GetScreen()->Draw( m_canvas, aDC, GR_DEFAULT_DRAWMODE ); TraceWorkSheet( aDC, GetScreen(), g_DrawDefaultLineThickness ); } @@ -887,7 +890,7 @@ void SCH_EDIT_FRAME::OnSelectItem( wxCommandEvent& aEvent ) && (index >= 0 && index < m_collectedItems.GetCount()) ) { SCH_ITEM* item = m_collectedItems[index]; - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; GetScreen()->SetCurItem( item ); } } diff --git a/eeschema/sheet.cpp b/eeschema/sheet.cpp index 5c1cd57b70..f82c5bfceb 100644 --- a/eeschema/sheet.cpp +++ b/eeschema/sheet.cpp @@ -163,8 +163,8 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) } } - aSheet->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); - DrawPanel->m_IgnoreMouseEvents = true; + aSheet->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); + m_canvas->m_IgnoreMouseEvents = true; if( isUndoable ) SaveCopyInUndoList( aSheet, UR_CHANGED ); @@ -203,9 +203,9 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) if( aSheet->GetName().IsEmpty() ) aSheet->SetName( wxString::Format( wxT( "Sheet%8.8lX" ), aSheet->GetTimeStamp() ) ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; - aSheet->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + aSheet->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); OnModify(); return true; @@ -320,12 +320,12 @@ SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC ) // also need to update the hierarchy, if we are adding // a sheet to a screen that already has multiple instances (!) GetScreen()->SetCurItem( sheet ); - DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, false ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, wxDefaultPosition, false ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( sheet->GetResizePosition() ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( aDC ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( aDC ); return sheet; } @@ -340,16 +340,16 @@ void SCH_EDIT_FRAME::ReSizeSheet( SCH_SHEET* aSheet, wxDC* aDC ) wxString::Format( wxT( "Cannot perform sheet resize on %s object." ), GetChars( aSheet->GetClass() ) ) ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( aSheet->GetResizePosition() ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( aDC ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( aDC ); SetUndoItem( aSheet ); aSheet->SetFlags( IS_RESIZED ); - DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true ); + m_canvas->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, wxDefaultPosition, true ); if( aSheet->IsNew() ) // not already in edit, save a copy for undo/redo SetUndoItem( aSheet ); @@ -361,15 +361,15 @@ void SCH_EDIT_FRAME::StartMoveSheet( SCH_SHEET* aSheet, wxDC* aDC ) if( ( aSheet == NULL ) || ( aSheet->Type() != SCH_SHEET_T ) ) return; - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( aSheet->GetPosition() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( !aSheet->IsNew() ) SetUndoItem( aSheet ); aSheet->SetFlags( IS_MOVED ); - DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->SetMouseCapture( MoveOrResizeSheet, ExitSheet ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, wxDefaultPosition, true ); + m_canvas->CrossHairOn( aDC ); } diff --git a/eeschema/sheetlab.cpp b/eeschema/sheetlab.cpp index 959eadb0d6..f2f36e6b3f 100644 --- a/eeschema/sheetlab.cpp +++ b/eeschema/sheetlab.cpp @@ -75,7 +75,7 @@ int SCH_EDIT_FRAME::EditSheetPin( SCH_SHEET_PIN* aSheetPin, wxDC* aDC ) return wxID_CANCEL; if( aDC ) - aSheetPin->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); + aSheetPin->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode ); if( !aSheetPin->IsNew() ) { @@ -89,7 +89,7 @@ int SCH_EDIT_FRAME::EditSheetPin( SCH_SHEET_PIN* aSheetPin, wxDC* aDC ) aSheetPin->SetShape( dlg.GetConnectionType() ); if( aDC ) - aSheetPin->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); + aSheetPin->Draw( m_canvas, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); return wxID_OK; } diff --git a/eeschema/symbdraw.cpp b/eeschema/symbdraw.cpp index 5fd26b99e8..e6a53f0492 100644 --- a/eeschema/symbdraw.cpp +++ b/eeschema/symbdraw.cpp @@ -94,7 +94,7 @@ void LIB_EDIT_FRAME::EditGraphicSymbol( wxDC* DC, LIB_ITEM* DrawItem ) OnModify( ); DrawItem->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -123,7 +123,7 @@ static void AbortSymbolTraceOn( EDA_DRAW_PANEL* Panel, wxDC* DC ) LIB_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC ) { - DrawPanel->SetMouseCapture( SymbolDisplayDraw, AbortSymbolTraceOn ); + m_canvas->SetMouseCapture( SymbolDisplayDraw, AbortSymbolTraceOn ); wxPoint drawPos = GetScreen()->GetCrossHairPosition( true ); // no temp copy -> the current version of component will be used for Undo @@ -155,10 +155,10 @@ LIB_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC ) Text->m_Orient = m_textOrientation; // Enter the graphic text info - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; EditSymbolText( NULL, Text ); - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); if( Text->m_Text.IsEmpty() ) { @@ -188,16 +188,16 @@ LIB_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC ) m_drawItem->SetConvert( m_convert ); // Draw initial symbol: - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } else { - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); return NULL; } - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = FALSE; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = FALSE; return m_drawItem; } @@ -214,7 +214,7 @@ void LIB_EDIT_FRAME::GraphicItemBeginDraw( wxDC* DC ) if( m_drawItem->ContinueEdit( pos ) ) { - m_drawItem->Draw( DrawPanel, DC, pos, -1, g_XorMode, NULL, DefaultTransform ); + m_drawItem->Draw( m_canvas, DC, pos, -1, g_XorMode, NULL, DefaultTransform ); return; } @@ -262,8 +262,8 @@ void LIB_EDIT_FRAME::StartMoveDrawSymbol( wxDC* DC ) TempCopyComponent(); m_drawItem->BeginEdit( IS_MOVED, GetScreen()->GetCrossHairPosition( true ) ); - DrawPanel->SetMouseCapture( RedrawWhileMovingCursor, AbortSymbolTraceOn ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, true ); + m_canvas->SetMouseCapture( RedrawWhileMovingCursor, AbortSymbolTraceOn ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, true ); } @@ -275,8 +275,8 @@ void LIB_EDIT_FRAME::StartModifyDrawSymbol( wxDC* DC ) TempCopyComponent(); m_drawItem->BeginEdit( IS_RESIZED, GetScreen()->GetCrossHairPosition( true ) ); - DrawPanel->SetMouseCapture( SymbolDisplayDraw, AbortSymbolTraceOn ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, true ); + m_canvas->SetMouseCapture( SymbolDisplayDraw, AbortSymbolTraceOn ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, true ); } @@ -308,7 +308,7 @@ void LIB_EDIT_FRAME::EndDrawGraphicItem( wxDC* DC ) if( GetToolId() != ID_NO_TOOL_SELECTED ) SetCursor( wxCURSOR_PENCIL ); else - SetCursor( DrawPanel->GetDefaultCursor() ); + SetCursor( m_canvas->GetDefaultCursor() ); if( GetTempCopyComponent() ) // used when editing an existing item SaveCopyInUndoList( GetTempCopyComponent() ); @@ -325,6 +325,6 @@ void LIB_EDIT_FRAME::EndDrawGraphicItem( wxDC* DC ) OnModify(); - DrawPanel->SetMouseCapture( NULL, NULL ); - DrawPanel->Refresh(); + m_canvas->SetMouseCapture( NULL, NULL ); + m_canvas->Refresh(); } diff --git a/eeschema/symbedit.cpp b/eeschema/symbedit.cpp index d036b85397..832dcd4c15 100644 --- a/eeschema/symbedit.cpp +++ b/eeschema/symbedit.cpp @@ -54,10 +54,10 @@ void LIB_EDIT_FRAME::LoadOneSymbol() CMP_LIBRARY* Lib; /* Exit if no library entry is selected or a command is in progress. */ - if( m_component == NULL || ( m_drawItem && m_drawItem->m_Flags ) ) + if( m_component == NULL || ( m_drawItem && m_drawItem->GetFlags() ) ) return; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; wxString default_path = wxGetApp().ReturnLastVisitedLibraryPath(); @@ -69,8 +69,8 @@ void LIB_EDIT_FRAME::LoadOneSymbol() return; GetScreen()->SetCrossHairPosition( wxPoint( 0, 0 ) ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = FALSE; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = FALSE; wxFileName fn = dlg.GetPath(); wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); @@ -115,8 +115,7 @@ void LIB_EDIT_FRAME::LoadOneSymbol() if( item.GetConvert() ) item.SetConvert( m_convert ); - item.m_Flags = IS_NEW; - item.m_Selected = IS_SELECTED; + item.SetFlags( IS_NEW | SELECTED ); LIB_ITEM* newItem = (LIB_ITEM*) item.Clone(); newItem->SetParent( m_component ); @@ -126,8 +125,8 @@ void LIB_EDIT_FRAME::LoadOneSymbol() m_component->RemoveDuplicateDrawItems(); m_component->ClearSelectedItems(); - OnModify( ); - DrawPanel->Refresh(); + OnModify(); + m_canvas->Refresh(); delete Lib; } @@ -251,5 +250,5 @@ void LIB_EDIT_FRAME::PlaceAnchor() /* Redraw the symbol */ RedrawScreen( wxPoint( 0 , 0 ), true ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/eeschema/tool_sch.cpp b/eeschema/tool_sch.cpp index cf2b0e616b..189d14c15f 100644 --- a/eeschema/tool_sch.cpp +++ b/eeschema/tool_sch.cpp @@ -302,6 +302,7 @@ void SCH_EDIT_FRAME::ReCreateOptToolbar() KiBitmap( lines90_xpm ), _( "HV orientation for wires and bus" ), wxITEM_CHECK ); + // set icon paddings m_optionsToolBar->SetToolBorderPadding(2); // padding m_optionsToolBar->SetToolSeparation(0); @@ -313,7 +314,7 @@ void SCH_EDIT_FRAME::ReCreateOptToolbar() void SCH_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) { - if( DrawPanel == NULL ) + if( m_canvas == NULL ) return; int id = event.GetId(); @@ -322,7 +323,7 @@ void SCH_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) { case ID_TB_OPTIONS_HIDDEN_PINS: m_showAllPins = m_optionsToolBar->GetToolToggled( id ); - DrawPanel->Refresh( ); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_BUS_WIRES_ORIENT: diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp index 3f30fe5b2e..29bdbdfef8 100644 --- a/eeschema/viewlib_frame.cpp +++ b/eeschema/viewlib_frame.cpp @@ -191,8 +191,8 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph DisplayLibInfos(); - if( DrawPanel ) - DrawPanel->SetAcceleratorTable( table ); + if( m_canvas ) + m_canvas->SetAcceleratorTable( table ); m_auimgr.SetManagedWindow( this ); @@ -227,7 +227,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph Left().Row( 1 ) ); // Manage the draw panel - m_auimgr.AddPane( DrawPanel, + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).Centre() ); // Manage the message panel @@ -354,7 +354,7 @@ double LIB_VIEW_FRAME::BestZoom() return bestzoom; } - wxSize size = DrawPanel->GetClientSize(); + wxSize size = m_canvas->GetClientSize(); EDA_RECT BoundaryBox = component->GetBoundingBox( m_unit, m_convert ); @@ -407,7 +407,7 @@ void LIB_VIEW_FRAME::ReCreateListLib() ReCreateListCmp(); ReCreateHToolbar(); DisplayLibInfos(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -462,7 +462,7 @@ void LIB_VIEW_FRAME::ClickOnLibList( wxCommandEvent& event ) m_libraryName = name; ReCreateListCmp(); - DrawPanel->Refresh(); + m_canvas->Refresh(); DisplayLibInfos(); ReCreateHToolbar(); } @@ -485,7 +485,7 @@ void LIB_VIEW_FRAME::ClickOnCmpList( wxCommandEvent& event ) m_convert = 1; Zoom_Automatique( false ); ReCreateHToolbar(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } } diff --git a/eeschema/viewlibs.cpp b/eeschema/viewlibs.cpp index 995cd60c3d..db2e591f3e 100644 --- a/eeschema/viewlibs.cpp +++ b/eeschema/viewlibs.cpp @@ -59,14 +59,14 @@ void LIB_VIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) m_mainToolBar->ToggleTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, true ); m_mainToolBar->ToggleTool( ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT, FALSE ); m_convert = 1; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT: m_mainToolBar->ToggleTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, FALSE ); m_mainToolBar->ToggleTool( ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT, true ); m_convert = 2; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_LIBVIEW_SELECT_PART_NUMBER: @@ -74,7 +74,7 @@ void LIB_VIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( ii < 0 ) return; m_unit = ii + 1; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; default: @@ -135,7 +135,7 @@ void LIB_VIEW_FRAME::SelectCurrentLibrary() if( m_LibList ) { ReCreateListCmp(); - DrawPanel->Refresh(); + m_canvas->Refresh(); DisplayLibInfos(); ReCreateHToolbar(); int id = m_LibList->FindString( m_libraryName.GetData() ); @@ -232,7 +232,7 @@ void LIB_VIEW_FRAME::ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag ) m_entryName = CmpName; DisplayLibInfos(); Zoom_Automatique( false ); - DrawPanel->Refresh( ); + m_canvas->Refresh( ); if( m_CmpList ) { @@ -269,7 +269,7 @@ void LIB_VIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) component = entry->GetComponent(); - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); if( !entry->IsRoot() ) { @@ -283,6 +283,7 @@ void LIB_VIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) if( m_unit < 1 ) m_unit = 1; + if( m_convert < 1 ) m_convert = 1; } @@ -291,10 +292,10 @@ void LIB_VIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) msg = _( "None" ); } - component->Draw( DrawPanel, DC, wxPoint( 0, 0 ), m_unit, m_convert, GR_DEFAULT_DRAWMODE ); + component->Draw( m_canvas, DC, wxPoint( 0, 0 ), m_unit, m_convert, GR_DEFAULT_DRAWMODE ); /* Redraw the cursor */ - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); if( !tmp.IsEmpty() ) component->SetName( tmp ); diff --git a/gerbview/block.cpp b/gerbview/block.cpp index b2576bee03..0c5375cf54 100644 --- a/gerbview/block.cpp +++ b/gerbview/block.cpp @@ -77,23 +77,23 @@ int GERBVIEW_FRAME::ReturnBlockCommand( int key ) void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC ) { - wxASSERT( DrawPanel->IsMouseCaptured() ); + wxASSERT( m_canvas->IsMouseCaptured() ); GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; switch( GetScreen()->m_BlockLocate.m_Command ) { case BLOCK_MOVE: /* Move */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); Block_Move( DC ); GetScreen()->m_BlockLocate.ClearItemsList(); break; case BLOCK_COPY: /* Copy */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); Block_Duplicate( DC ); GetScreen()->m_BlockLocate.ClearItemsList(); @@ -116,7 +116,7 @@ void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC ) break; } - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, false ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); GetScreen()->SetModify(); GetScreen()->ClearBlockCommand(); @@ -131,7 +131,7 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ) bool nextcmd = false; bool zoom_command = false; - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) switch( GetScreen()->m_BlockLocate.m_Command ) { @@ -139,14 +139,14 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ) case BLOCK_COPY: /* Copy */ GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; nextcmd = true; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); break; case BLOCK_DELETE: /* Delete */ GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); Block_Delete( DC ); break; @@ -172,8 +172,8 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ) if( ! nextcmd ) { GetScreen()->ClearBlockCommand(); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, - false ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, + false ); } if( zoom_command ) @@ -257,10 +257,10 @@ void GERBVIEW_FRAME::Block_Move( wxDC* DC ) wxPoint oldpos; oldpos = GetScreen()->GetCrossHairPosition(); - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; GetScreen()->SetCrossHairPosition( oldpos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); GetScreen()->SetModify(); GetScreen()->m_BlockLocate.Normalize(); @@ -276,7 +276,7 @@ void GERBVIEW_FRAME::Block_Move( wxDC* DC ) gerb_item->MoveAB( delta ); } - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -286,10 +286,10 @@ void GERBVIEW_FRAME::Block_Duplicate( wxDC* DC ) wxPoint oldpos; oldpos = GetScreen()->GetCrossHairPosition(); - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; GetScreen()->SetCrossHairPosition( oldpos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); GetScreen()->SetModify(); GetScreen()->m_BlockLocate.Normalize(); @@ -297,9 +297,11 @@ void GERBVIEW_FRAME::Block_Duplicate( wxDC* DC ) /* Copy items in block */ BOARD_ITEM* item = GetBoard()->m_Drawings; + for( ; item; item = item->Next() ) { GERBER_DRAW_ITEM* gerb_item = (GERBER_DRAW_ITEM*) item; + if( gerb_item->HitTest( GetScreen()->m_BlockLocate ) ) { /* this item must be duplicated */ @@ -309,5 +311,5 @@ void GERBVIEW_FRAME::Block_Duplicate( wxDC* DC ) } } - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/gerbview/class_gerbview_layer_widget.cpp b/gerbview/class_gerbview_layer_widget.cpp index 4abe922d68..6cddcf3cb0 100644 --- a/gerbview/class_gerbview_layer_widget.cpp +++ b/gerbview/class_gerbview_layer_widget.cpp @@ -176,7 +176,7 @@ void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event ) } myframe->GetBoard()->SetVisibleLayers( visibleLayers ); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); break; } } @@ -188,6 +188,7 @@ void GERBER_LAYER_WIDGET::ReFill() BOARD* brd = myframe->GetBoard(); int layer; ClearLayerRows(); + for( layer = 0; layer < LAYER_COUNT; layer++ ) { wxString msg; @@ -205,7 +206,7 @@ void GERBER_LAYER_WIDGET::OnLayerColorChange( int aLayer, int aColor ) { myframe->GetBoard()->SetLayerColor( aLayer, aColor ); myframe->m_SelLayerBox->ResyncBitmapOnly(); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } bool GERBER_LAYER_WIDGET::OnLayerSelect( int aLayer ) @@ -215,8 +216,9 @@ bool GERBER_LAYER_WIDGET::OnLayerSelect( int aLayer ) int layer = myframe->getActiveLayer( ); myframe->setActiveLayer( aLayer, false ); myframe->syncLayerBox(); + if( layer != myframe->getActiveLayer( ) ) - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); return true; } @@ -234,13 +236,13 @@ void GERBER_LAYER_WIDGET::OnLayerVisible( int aLayer, bool isVisible, bool isFin brd->SetVisibleLayers( visibleLayers ); if( isFinal ) - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } void GERBER_LAYER_WIDGET::OnRenderColorChange( int aId, int aColor ) { myframe->GetBoard()->SetVisibleElementColor( aId, aColor ); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } void GERBER_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) @@ -248,7 +250,7 @@ void GERBER_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) BOARD* brd = myframe->GetBoard(); brd->SetElementVisibility( aId, isEnabled ); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } //----------------------------------------------- diff --git a/gerbview/controle.cpp b/gerbview/controle.cpp index 9fc8128001..a0f66c734a 100644 --- a/gerbview/controle.cpp +++ b/gerbview/controle.cpp @@ -24,25 +24,25 @@ void GERBVIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -55,13 +55,13 @@ void GERBVIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH { pos = GetScreen()->GetCrossHairPosition(); GetScreen()->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); } } diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp b/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp index 1efcdf391a..5f14791481 100644 --- a/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp +++ b/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp @@ -37,8 +37,9 @@ void GERBVIEW_FRAME::InstallGerberOptionsDialog( wxCommandEvent& event ) { DIALOG_DISPLAY_OPTIONS dlg( this ); int opt = dlg.ShowModal(); + if (opt > 0 ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS( GERBVIEW_FRAME *parent) : diff --git a/gerbview/draw_gerber_screen.cpp b/gerbview/draw_gerber_screen.cpp index 1b245e972a..eb87c3fabf 100644 --- a/gerbview/draw_gerber_screen.cpp +++ b/gerbview/draw_gerber_screen.cpp @@ -56,11 +56,11 @@ void GERBVIEW_FRAME::PrintPage( wxDC* aDC, int aPrintMasklayer, DisplayOpt.DisplayZonesMode = 0; g_DisplayPolygonsModeSketch = 0; - DrawPanel->m_PrintIsMirrored = aPrintMirrorMode; + m_canvas->m_PrintIsMirrored = aPrintMirrorMode; - GetBoard()->Draw( DrawPanel, aDC, -1, wxPoint( 0, 0 ) ); + GetBoard()->Draw( m_canvas, aDC, -1, wxPoint( 0, 0 ) ); - DrawPanel->m_PrintIsMirrored = false; + m_canvas->m_PrintIsMirrored = false; // Restore draw options: GetBoard()->SetVisibleLayers( visiblemask ); @@ -96,22 +96,22 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) } // Draw according to the current setting. This needs to be GR_COPY or GR_OR. - GetBoard()->Draw( DrawPanel, DC, drawMode, wxPoint( 0, 0 ) ); + GetBoard()->Draw( m_canvas, DC, drawMode, wxPoint( 0, 0 ) ); // Draw the "background" now, i.e. grid and axis after gerber layers // because most of time the actual background is erased by successive drawings of each gerber // layer mainly in COPY mode - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); if( IsElementVisible( DCODES_VISIBLE ) ) DrawItemsDCodeID( DC, GR_COPY ); TraceWorkSheet( DC, screen, 0 ); - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); // Display the filename and the layer name (found in the gerber files, if any) // relative to the active layer @@ -406,7 +406,7 @@ void GERBVIEW_FRAME::DrawItemsDCodeID( wxDC* aDC, int aDrawMode ) int color = g_ColorsSettings.GetItemColor( DCODES_VISIBLE ); - DrawGraphicText( DrawPanel, aDC, pos, (EDA_Colors) color, Line, + DrawGraphicText( m_canvas, aDC, pos, (EDA_Colors) color, Line, orient, wxSize( width, width ), GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, 0, false, false ); diff --git a/gerbview/events_called_functions.cpp b/gerbview/events_called_functions.cpp index 457341bddd..1fcf1a6b59 100644 --- a/gerbview/events_called_functions.cpp +++ b/gerbview/events_called_functions.cpp @@ -127,7 +127,7 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_CANCEL_CURRENT_COMMAND: - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); if( GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE ) { @@ -138,26 +138,28 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) } if( GetToolId() == ID_NO_TOOL_SELECTED ) - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); else - DrawPanel->SetCursor( DrawPanel->GetCurrentCursor() ); + m_canvas->SetCursor( m_canvas->GetCurrentCursor() ); break; default: - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); break; } - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); switch( id ) { case ID_GERBVIEW_SET_PAGE_BORDER: { DIALOG_PAGE_SHOW_PAGE_BORDERS dlg( this ); + if (dlg.ShowModal() == wxID_OK ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } + break; case ID_GERBVIEW_GLOBAL_DELETE: @@ -166,11 +168,11 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_NO_TOOL_SELECTED: - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_POPUP_CLOSE_CURRENT_TOOL: - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_POPUP_CANCEL_CURRENT_COMMAND: @@ -182,7 +184,7 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PLACE_BLOCK: GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; - DrawPanel->m_AutoPAN_Request = FALSE; + m_canvas->m_AutoPAN_Request = FALSE; HandleBlockPlace( &dc ); break; @@ -211,13 +213,15 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) void GERBVIEW_FRAME::OnSelectActiveDCode( wxCommandEvent& event ) { GERBER_IMAGE* gerber_image = g_GERBER_List[getActiveLayer()]; + if( gerber_image ) { int tool = m_DCodeSelector->GetSelectedDCodeId(); + if( tool != gerber_image->m_Selected_Tool ) { gerber_image->m_Selected_Tool = tool; - DrawPanel->Refresh(); + m_canvas->Refresh(); } } } @@ -231,8 +235,9 @@ void GERBVIEW_FRAME::OnSelectActiveLayer( wxCommandEvent& event ) int layer = getActiveLayer(); setActiveLayer( event.GetSelection() ); + if( layer != getActiveLayer() ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -283,7 +288,7 @@ void GERBVIEW_FRAME::OnSelectDisplayMode( wxCommandEvent& event ) } if( GetDisplayMode() != oldMode ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } void GERBVIEW_FRAME::OnQuit( wxCommandEvent& event ) diff --git a/gerbview/files.cpp b/gerbview/files.cpp index 141eec6d1a..21d531a19e 100644 --- a/gerbview/files.cpp +++ b/gerbview/files.cpp @@ -56,18 +56,18 @@ void GERBVIEW_FRAME::Files_io( wxCommandEvent& event ) case ID_GERBVIEW_ERASE_ALL: Clear_Pcb( true ); Zoom_Automatique( false ); - DrawPanel->Refresh(); + m_canvas->Refresh(); ClearMsgPanel(); break; case ID_GERBVIEW_LOAD_DRILL_FILE: LoadExcellonFiles( wxEmptyString ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_GERBVIEW_LOAD_DCODE_FILE: LoadDCodeFile( wxEmptyString ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; default: diff --git a/gerbview/gerbview_frame.cpp b/gerbview/gerbview_frame.cpp index 3444a0e391..6650ba9261 100644 --- a/gerbview/gerbview_frame.cpp +++ b/gerbview/gerbview_frame.cpp @@ -75,8 +75,8 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* father, m_displayMode = 0; m_drillFileHistory.SetBaseId( ID_GERBVIEW_DRILL_FILE1 ); - if( DrawPanel ) - DrawPanel->m_Block_Enable = true; + if( m_canvas ) + m_canvas->m_Block_Enable = true; // Give an icon wxIcon icon; @@ -98,7 +98,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* father, if( screenHeight <= 900 ) pointSize = (pointSize * 8) / 10; - m_LayersManager = new GERBER_LAYER_WIDGET( this, DrawPanel, pointSize ); + m_LayersManager = new GERBER_LAYER_WIDGET( this, m_canvas, pointSize ); // LoadSettings() *after* creating m_LayersManager, because LoadSettings() // initialize parameters in m_LayersManager @@ -143,8 +143,8 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* father, m_auimgr.AddPane( m_optionsToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() ); - if( DrawPanel ) - m_auimgr.AddPane( DrawPanel, + if( m_canvas ) + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); if( m_messagePanel ) @@ -187,7 +187,7 @@ double GERBVIEW_FRAME::BestZoom() bbox.Merge( gerb_item->GetBoundingBox() ); } - wxSize size = DrawPanel->GetClientSize(); + wxSize size = m_canvas->GetClientSize(); double x = (double) bbox.GetWidth() / (double) size.x; double y = (double) bbox.GetHeight() / (double) size.y; diff --git a/gerbview/hotkeys.cpp b/gerbview/hotkeys.cpp index 08250ecb60..6e5fe42e07 100644 --- a/gerbview/hotkeys.cpp +++ b/gerbview/hotkeys.cpp @@ -136,15 +136,16 @@ void GERBVIEW_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct ) break; case HK_SWITCH_GBR_ITEMS_DISPLAY_MODE: - DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; - DrawPanel->Refresh(); + DisplayOpt.DisplayPcbTrackFill ^= 1; + DisplayOpt.DisplayPcbTrackFill &= 1; + m_canvas->Refresh(); break; case HK_SWITCH_LAYER_TO_PREVIOUS: if( getActiveLayer() > 0 ) { setActiveLayer( getActiveLayer() - 1 ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; @@ -152,7 +153,7 @@ void GERBVIEW_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct ) if( getActiveLayer() < 31 ) { setActiveLayer( getActiveLayer() + 1 ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; } diff --git a/gerbview/initpcb.cpp b/gerbview/initpcb.cpp index 4c0725d396..b3ed669e8b 100644 --- a/gerbview/initpcb.cpp +++ b/gerbview/initpcb.cpp @@ -111,7 +111,7 @@ void GERBVIEW_FRAME::Erase_Current_Layer( bool query ) } GetScreen()->SetModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); m_LayersManager->UpdateLayerIcons(); syncLayerBox(); } diff --git a/gerbview/menubar.cpp b/gerbview/menubar.cpp index 7ab03a0108..9c98b14370 100644 --- a/gerbview/menubar.cpp +++ b/gerbview/menubar.cpp @@ -106,7 +106,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar( void ) wxID_ANY, _( "Open Recent Dri&ll File" ), _( "Open a recent opened drill file" ), - KiBitmap( open_project_xpm ) ); + KiBitmap( gerbview_open_recent_drill_files_xpm ) ); // Separator fileMenu->AppendSeparator(); diff --git a/gerbview/onleftclick.cpp b/gerbview/onleftclick.cpp index 9c11ee2b55..a4442e545b 100644 --- a/gerbview/onleftclick.cpp +++ b/gerbview/onleftclick.cpp @@ -26,11 +26,11 @@ void GERBVIEW_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ) if( GetToolId() == ID_NO_TOOL_SELECTED ) { - if( DrawStruct && DrawStruct->m_Flags ) + if( DrawStruct && DrawStruct->GetFlags() ) { msg.Printf( wxT( "GERBVIEW_FRAME::OnLeftClick err: Struct %d, m_Flags = %X" ), (unsigned) DrawStruct->Type(), - (unsigned) DrawStruct->m_Flags ); + (unsigned) DrawStruct->GetFlags() ); wxFAIL_MSG( msg ); } else diff --git a/gerbview/onrightclick.cpp b/gerbview/onrightclick.cpp index 04270037c9..a262709c43 100644 --- a/gerbview/onrightclick.cpp +++ b/gerbview/onrightclick.cpp @@ -20,10 +20,10 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); // Do not initiate a start block validation on menu. - DrawPanel->m_CanStartBlock = -1; + m_canvas->m_CanStartBlock = -1; // Simple location of elements where possible. - if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) ) + if( ( DrawStruct == NULL ) || ( DrawStruct->GetFlags() == 0 ) ) { DrawStruct = Locate( aPosition, CURSEUR_OFF_GRILLE ); } @@ -31,7 +31,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) // If command in progress, end command. if( GetToolId() != ID_NO_TOOL_SELECTED ) { - if( DrawStruct && DrawStruct->m_Flags ) + if( DrawStruct && DrawStruct->GetFlags() ) AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) ); else @@ -42,7 +42,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) } else { - if( (DrawStruct && DrawStruct->m_Flags) || BlockActive ) + if( (DrawStruct && DrawStruct->GetFlags()) || BlockActive ) { if( BlockActive ) { diff --git a/gerbview/options.cpp b/gerbview/options.cpp index ed4b977ea1..9bebd0c498 100644 --- a/gerbview/options.cpp +++ b/gerbview/options.cpp @@ -43,7 +43,8 @@ void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) { DisplayOpt.DisplayPadFill = m_DisplayPadFill = true; } - DrawPanel->Refresh( true ); + + m_canvas->Refresh( true ); break; case ID_TB_OPTIONS_SHOW_LINES_SKETCH: @@ -57,7 +58,8 @@ void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) m_DisplayPcbTrackFill = true; DisplayOpt.DisplayPcbTrackFill = true; } - DrawPanel->Refresh( true ); + + m_canvas->Refresh( true ); break; case ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH: @@ -65,12 +67,13 @@ void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) g_DisplayPolygonsModeSketch = 1; else g_DisplayPolygonsModeSketch = 0; - DrawPanel->Refresh( true ); + + m_canvas->Refresh( true ); break; case ID_TB_OPTIONS_SHOW_DCODES: SetElementVisibility( DCODES_VISIBLE, state ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR: diff --git a/include/base_struct.h b/include/base_struct.h index a4c392296a..f286735f31 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -185,7 +185,7 @@ public: */ class EDA_RECT { -public: +private: wxPoint m_Pos; // Rectangle Origin wxSize m_Size; // Rectangle Size @@ -344,7 +344,7 @@ public: #define BEGIN_ONPAD (1 << 22) ///< Pcbnew: flag set for track segment starting on a pad #define END_ONPAD (1 << 23) ///< Pcbnew: flag set for track segment ending on a pad #define BUSY (1 << 24) ///< Pcbnew: flag indicating that the structure has - // already been edited, in some functions + ///< already been edited, in some functions #define EDA_ITEM_ALL_FLAGS -1 @@ -377,14 +377,12 @@ protected: /// Set to true to override the visibility setting of the item. bool m_forceVisible; -public: - int m_Flags; // flags for editing and other uses. + /// Flag bits for editing and other uses. + int m_Flags; - int m_Selected; /* Used by block commands, and selective editing */ + // Link to an copy of the item use to save the item's state for undo/redo feature. + EDA_ITEM* m_Image; - // member used in undo/redo function - EDA_ITEM* m_Image; // Link to an image copy to save a copy of - // old parameters values private: void InitVars(); @@ -462,6 +460,8 @@ public: void ClearFlags( int aMask = EDA_ITEM_ALL_FLAGS ) { m_Flags &= ~aMask; } int GetFlags() const { return m_Flags; } + void SetImage( EDA_ITEM* aItem ) { m_Image = aItem; } + /** * Function SetForceVisible * is used to set and cleag force visible flag used to force the item to be drawn @@ -661,9 +661,11 @@ public: * * @param aSearchData A reference to a wxFindReplaceData object containing the * search and replace criteria. + * @param aAuxData A pointer to optional data required for the search or NULL + * if not used. * @return True if the item text was modified, otherwise false. */ - virtual bool Replace( wxFindReplaceData& aSearchData ) { return false; } + virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) { return false; } /** * Function IsReplaceable diff --git a/include/bitmaps.h b/include/bitmaps.h index 06c0c7f34f..1fcaf9cfab 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -113,6 +113,7 @@ EXTERN_BITMAP( break_line_xpm ) EXTERN_BITMAP( browse_files_xpm ) EXTERN_BITMAP( cancel_tool_xpm ) EXTERN_BITMAP( cancel_xpm ) +EXTERN_BITMAP( change_entry_orient_xpm ) EXTERN_BITMAP( checked_ok_xpm ) EXTERN_BITMAP( component_select_alternate_shape_xpm ) EXTERN_BITMAP( component_select_unit_xpm ) @@ -200,6 +201,7 @@ EXTERN_BITMAP( gerber_file_xpm ) EXTERN_BITMAP( gerber_recent_files_xpm ) EXTERN_BITMAP( gerbview_clear_layers_xpm ) EXTERN_BITMAP( gerber_open_dcode_file_xpm ) +EXTERN_BITMAP( gerbview_open_recent_drill_files_xpm ) EXTERN_BITMAP( general_deletions_xpm ) EXTERN_BITMAP( general_ratsnest_xpm ) EXTERN_BITMAP( glabel2label_xpm ) @@ -470,6 +472,7 @@ EXTERN_BITMAP( unlocked_xpm ) EXTERN_BITMAP( unzip_xpm ) EXTERN_BITMAP( update_module_board_xpm ) EXTERN_BITMAP( up_xpm ) +EXTERN_BITMAP( via_xpm ) EXTERN_BITMAP( via_sketch_xpm ) EXTERN_BITMAP( viewlibs_icon_xpm ) EXTERN_BITMAP( warning_xpm ) diff --git a/include/class_drawpanel.h b/include/class_drawpanel.h index 6b3f1e1e26..ac6b14dd9a 100644 --- a/include/class_drawpanel.h +++ b/include/class_drawpanel.h @@ -1,3 +1,28 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2011 Wayne Stambaugh + * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * 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, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * @file class_drawpanel.h: * @brief EDA_DRAW_PANEL class definition. @@ -34,14 +59,13 @@ private: int m_defaultCursor; ///< The default mouse cursor shape id. bool m_showCrossHair; ///< Indicate if cross hair is to be shown. int m_cursorLevel; ///< Index for cursor redraw in XOR mode. + int m_scrollIncrementX; ///< X axis scroll increment in pixels per unit. + int m_scrollIncrementY; ///< Y axis scroll increment in pixels per unit. + wxPoint m_CursorStartPos; ///< Used for testing the cursor movement. public: EDA_RECT m_ClipBox; // the clipbox used in screen redraw (usually gives the // visible area in internal units) - wxPoint m_CursorStartPos; // useful in testing the cursor movement - int m_scrollIncrementX; // X axis scroll increment in pixels per unit. - int m_scrollIncrementY; // Y axis scroll increment in pixels per unit. - bool m_AbortRequest; // Flag to abort long commands bool m_AbortEnable; // true if abort button or menu to be displayed @@ -177,6 +201,7 @@ public: void OnMouseEvent( wxMouseEvent& event ); void OnMouseLeaving( wxMouseEvent& event ); void OnKeyEvent( wxKeyEvent& event ); + void OnCharHook( wxKeyEvent& event ); void OnPan( wxCommandEvent& event ); diff --git a/include/pad_shapes.h b/include/pad_shapes.h index c0a7f3acef..5aea6a5026 100644 --- a/include/pad_shapes.h +++ b/include/pad_shapes.h @@ -19,8 +19,8 @@ /* PADS attributes */ #define PAD_STANDARD 0 // Usual pad -#define PAD_SMD 1 // Smd pad, appears on the layer paste (default) -#define PAD_CONN 2 // Like smd, does not appear on the layer paste (default) +#define PAD_SMD 1 // Smd pad, appears on the solder paste layer (default) +#define PAD_CONN 2 // Like smd, does not appear on the solder paste layer (default) #define PAD_HOLE_NOT_PLATED 3 // like PAD_STANDARD, but not plated // mechanical used only // no connection allowed diff --git a/include/wxEeschemaStruct.h b/include/wxEeschemaStruct.h index 4f5144bea9..65f09de0bb 100644 --- a/include/wxEeschemaStruct.h +++ b/include/wxEeschemaStruct.h @@ -761,7 +761,6 @@ private: // Bus Entry SCH_BUS_ENTRY* CreateBusEntry( wxDC* DC, int entry_type ); void SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int entry_type ); - int GetBusEntryShape( SCH_BUS_ENTRY* BusEntry ); /** * Function AddNoConnect diff --git a/include/wxstruct.h b/include/wxstruct.h index a03eaa9ffb..41c9545160 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -366,22 +366,22 @@ class EDA_DRAW_FRAME : public EDA_BASE_FRAME ///< Id of active button on the vertical toolbar. int m_toolId; -public: - EDA_DRAW_PANEL* DrawPanel; // Draw area - protected: EDA_HOTKEY_CONFIG* m_HotkeysZoomAndGridList; int m_LastGridSizeId; bool m_DrawGrid; // hide/Show grid int m_GridColor; // Grid color + /// The area to draw on. + EDA_DRAW_PANEL* m_canvas; + /// Internal units count that is equivalent to 1 inch. Set to 1000 (0.001") for /// schematic drawing and 10000 (0.0001") for PCB drawing. int m_internalUnits; /// Tool ID of previously active draw tool bar button. int m_lastDrawToolId; - // on the vertical toolbar + /// The shape of the KiCad cursor. The default value (0) is the normal cross /// hair cursor. Set to non-zero value to draw the full screen cursor. /// @note This is not the system mouse cursor. @@ -473,6 +473,8 @@ public: int GetInternalUnits() const { return m_internalUnits; } + EDA_DRAW_PANEL* GetCanvas() { return m_canvas; } + virtual wxString GetScreenDesc(); /** diff --git a/pcbnew/attribut.cpp b/pcbnew/attribut.cpp index 34dc7faa61..2b757c47b3 100644 --- a/pcbnew/attribut.cpp +++ b/pcbnew/attribut.cpp @@ -51,10 +51,10 @@ void PCB_EDIT_FRAME::Attribut_Segment( TRACK* track, wxDC* DC, bool Flag_On ) return; OnModify(); - DrawPanel->CrossHairOff( DC ); // Erase cursor shape + m_canvas->CrossHairOff( DC ); // Erase cursor shape track->SetState( TRACK_LOCKED, Flag_On ); - track->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); - DrawPanel->CrossHairOn( DC ); // Display cursor shape + track->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); + m_canvas->CrossHairOn( DC ); // Display cursor shape track->DisplayInfo( this ); } @@ -68,9 +68,9 @@ void PCB_EDIT_FRAME::Attribut_Track( TRACK* track, wxDC* DC, bool Flag_On ) if( (track == NULL ) || (track->Type() == PCB_ZONE_T) ) return; - DrawPanel->CrossHairOff( DC ); // Erase cursor shape + m_canvas->CrossHairOff( DC ); // Erase cursor shape Track = GetBoard()->MarkTrace( track, &nb_segm, NULL, NULL, true ); - DrawTraces( DrawPanel, DC, Track, nb_segm, GR_OR | GR_HIGHLIGHT ); + DrawTraces( m_canvas, DC, Track, nb_segm, GR_OR | GR_HIGHLIGHT ); for( ; (Track != NULL) && (nb_segm > 0); nb_segm-- ) { @@ -79,7 +79,7 @@ void PCB_EDIT_FRAME::Attribut_Track( TRACK* track, wxDC* DC, bool Flag_On ) Track = Track->Next(); } - DrawPanel->CrossHairOn( DC ); // Display cursor shape + m_canvas->CrossHairOn( DC ); // Display cursor shape OnModify(); } @@ -103,7 +103,7 @@ void PCB_EDIT_FRAME::Attribut_net( wxDC* DC, int net_code, bool Flag_On ) } } - DrawPanel->CrossHairOff( DC ); // Erase cursor shape + m_canvas->CrossHairOff( DC ); // Erase cursor shape while( Track ) /* Flag change */ { @@ -112,10 +112,10 @@ void PCB_EDIT_FRAME::Attribut_net( wxDC* DC, int net_code, bool Flag_On ) OnModify(); Track->SetState( TRACK_LOCKED, Flag_On ); - Track->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); + Track->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); Track = Track->Next(); } - DrawPanel->CrossHairOn( DC ); // Display cursor shape + m_canvas->CrossHairOn( DC ); // Display cursor shape OnModify(); } diff --git a/pcbnew/automove.cpp b/pcbnew/automove.cpp index d948e24b93..94349b4045 100644 --- a/pcbnew/automove.cpp +++ b/pcbnew/automove.cpp @@ -69,7 +69,7 @@ void PCB_EDIT_FRAME::AutoPlace( wxCommandEvent& event ) if( m_mainToolBar == NULL ) return; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); switch( id ) { @@ -93,15 +93,15 @@ void PCB_EDIT_FRAME::AutoPlace( wxCommandEvent& event ) return; case ID_POPUP_CANCEL_CURRENT_COMMAND: - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_endMouseCaptureCallback( DrawPanel, &dc ); + m_canvas->m_endMouseCaptureCallback( m_canvas, &dc ); } break; default: // Abort a current command (if any) - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); break; } @@ -293,7 +293,7 @@ void PCB_EDIT_FRAME::AutoMoveModulesOnPcb( bool PlaceModulesHorsPcb ) if( newList.GetCount() ) SaveCopyInUndoList( newList, UR_CHANGED ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/pcbnew/autoplac.cpp b/pcbnew/autoplac.cpp index 7e60533cc2..c97c6706fe 100644 --- a/pcbnew/autoplac.cpp +++ b/pcbnew/autoplac.cpp @@ -117,8 +117,8 @@ void PCB_EDIT_FRAME::AutoPlaceModule( MODULE* Module, int place_mode, wxDC* DC ) if( GetBoard()->m_Modules == NULL ) return; - DrawPanel->m_AbortRequest = false; - DrawPanel->m_AbortEnable = true; + m_canvas->m_AbortRequest = false; + m_canvas->m_AbortEnable = true; switch( place_mode ) { @@ -247,7 +247,7 @@ void PCB_EDIT_FRAME::AutoPlaceModule( MODULE* Module, int place_mode, wxDC* DC ) if( Module->m_ModuleStatus & MODULE_to_PLACE ) // Erase from screen { NbModules++; - Module->Draw( DrawPanel, DC, GR_XOR ); + Module->Draw( m_canvas, DC, GR_XOR ); } else { @@ -390,8 +390,8 @@ end_of_tst: GetBoard()->m_Status_Pcb = 0; Compile_Ratsnest( DC, true ); - DrawPanel->ReDraw( DC, true ); - DrawPanel->m_AbortEnable = false; + m_canvas->ReDraw( DC, true ); + m_canvas->m_AbortEnable = false; } @@ -405,11 +405,11 @@ void PCB_EDIT_FRAME::DrawInfoPlace( wxDC* DC ) for( ii = 0; ii < Board.m_Nrows; ii++ ) { - oy = bbbox.m_Pos.y + ( ii * Board.m_GridRouting ); + oy = bbbox.GetY() + ( ii * Board.m_GridRouting ); for( jj = 0; jj < Board.m_Ncols; jj++ ) { - ox = bbbox.m_Pos.x + (jj * Board.m_GridRouting); + ox = bbbox.GetX() + (jj * Board.m_GridRouting); color = BLACK; top_state = GetCell( ii, jj, TOP ); @@ -431,7 +431,7 @@ void PCB_EDIT_FRAME::DrawInfoPlace( wxDC* DC ) color = DARKGRAY; } - GRPutPixel( &DrawPanel->m_ClipBox, DC, ox, oy, color ); + GRPutPixel( &m_canvas->m_ClipBox, DC, ox, oy, color ); } } } @@ -455,8 +455,8 @@ int PCB_EDIT_FRAME::GenPlaceBoard() } /* The boundary box must have its start point on placing grid: */ - bbbox.m_Pos.x -= bbbox.m_Pos.x % Board.m_GridRouting; - bbbox.m_Pos.y -= bbbox.m_Pos.y % Board.m_GridRouting; + bbbox.SetX( bbbox.GetX() - ( bbbox.GetX() % Board.m_GridRouting ) ); + bbbox.SetY( bbbox.GetY() - ( bbbox.GetY() % Board.m_GridRouting ) ); /* The boundary box must have its end point on placing grid: */ wxPoint end = bbbox.GetEnd(); @@ -566,31 +566,31 @@ void PCB_EDIT_FRAME::GenModuleOnBoard( MODULE* Module ) int layerMask; D_PAD* Pad; - ox = Module->m_BoundaryBox.m_Pos.x - marge; + ox = Module->m_BoundaryBox.GetX() - marge; fx = Module->m_BoundaryBox.GetRight() + marge; - oy = Module->m_BoundaryBox.m_Pos.y - marge; + oy = Module->m_BoundaryBox.GetY() - marge; fy = Module->m_BoundaryBox.GetBottom() + marge; - if( ox < bbbox.m_Pos.x ) - ox = bbbox.m_Pos.x; + if( ox < bbbox.GetX() ) + ox = bbbox.GetX(); if( ox > bbbox.GetRight() ) ox = bbbox.GetRight(); - if( fx < bbbox.m_Pos.x ) - fx = bbbox.m_Pos.x; + if( fx < bbbox.GetX() ) + fx = bbbox.GetX(); if( fx > bbbox.GetRight() ) fx = bbbox.GetRight(); - if( oy < bbbox.m_Pos.y ) - oy = bbbox.m_Pos.y; + if( oy < bbbox.GetY() ) + oy = bbbox.GetY(); if( oy > bbbox.GetBottom() ) oy = bbbox.GetBottom(); - if( fy < bbbox.m_Pos.y ) - fy = bbbox.m_Pos.y; + if( fy < bbbox.GetY() ) + fy = bbbox.GetY(); if( fy > bbbox.GetBottom() ) fy = bbbox.GetBottom(); @@ -636,17 +636,17 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC ) aModule->DisplayInfo( this ); - LastPosOK.x = bbbox.m_Pos.x; - LastPosOK.y = bbbox.m_Pos.y; + LastPosOK.x = bbbox.GetX(); + LastPosOK.y = bbbox.GetY(); cx = aModule->m_Pos.x; cy = aModule->m_Pos.y; - ox = aModule->m_BoundaryBox.m_Pos.x - cx; - fx = aModule->m_BoundaryBox.m_Size.x + ox; - oy = aModule->m_BoundaryBox.m_Pos.y - cy; - fy = aModule->m_BoundaryBox.m_Size.y + oy; + ox = aModule->m_BoundaryBox.GetX() - cx; + fx = aModule->m_BoundaryBox.GetWidth() + ox; + oy = aModule->m_BoundaryBox.GetY() - cy; + fy = aModule->m_BoundaryBox.GetHeight() + oy; - CurrPosition.x = bbbox.m_Pos.x - ox; - CurrPosition.y = bbbox.m_Pos.y - oy; + CurrPosition.x = bbbox.GetX() - ox; + CurrPosition.y = bbbox.GetY() - oy; /* Module placement on grid. */ CurrPosition.x -= CurrPosition.x % Board.m_GridRouting; @@ -680,7 +680,7 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC ) } } - DrawModuleOutlines( DrawPanel, aDC, aModule ); + DrawModuleOutlines( m_canvas, aDC, aModule ); mincout = -1.0; SetStatusText( wxT( "Score ??, pos ??" ) ); @@ -690,43 +690,43 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC ) { wxYield(); - if( DrawPanel->m_AbortRequest ) + if( m_canvas->m_AbortRequest ) { if( IsOK( this, _( "Ok to abort?" ) ) ) return ESC; else - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; } cx = aModule->m_Pos.x; cy = aModule->m_Pos.y; - aModule->m_BoundaryBox.m_Pos.x = ox + CurrPosition.x; - aModule->m_BoundaryBox.m_Pos.y = oy + CurrPosition.y; + aModule->m_BoundaryBox.SetX( ox + CurrPosition.x ); + aModule->m_BoundaryBox.SetY( oy + CurrPosition.y ); - DrawModuleOutlines( DrawPanel, aDC, aModule ); + DrawModuleOutlines( m_canvas, aDC, aModule ); g_Offset_Module.x = cx - CurrPosition.x; - CurrPosition.y = bbbox.m_Pos.y - oy; + CurrPosition.y = bbbox.GetY() - oy; /* Placement on grid. */ CurrPosition.y -= CurrPosition.y % Board.m_GridRouting; - DrawModuleOutlines( DrawPanel, aDC, aModule ); + DrawModuleOutlines( m_canvas, aDC, aModule ); for( ; CurrPosition.y < bbbox.GetBottom() - fy; CurrPosition.y += Board.m_GridRouting ) { /* Erase traces. */ - DrawModuleOutlines( DrawPanel, aDC, aModule ); + DrawModuleOutlines( m_canvas, aDC, aModule ); if( showRat ) Compute_Ratsnest_PlaceModule( aDC ); showRat = 0; - aModule->m_BoundaryBox.m_Pos.x = ox + CurrPosition.x; - aModule->m_BoundaryBox.m_Pos.y = oy + CurrPosition.y; + aModule->m_BoundaryBox.SetX( ox + CurrPosition.x ); + aModule->m_BoundaryBox.SetY( oy + CurrPosition.y ); g_Offset_Module.y = cy - CurrPosition.y; - DrawModuleOutlines( DrawPanel, aDC, aModule ); + DrawModuleOutlines( m_canvas, aDC, aModule ); keepOut = TstModuleOnBoard( GetBoard(), aModule, TstOtherSide ); if( keepOut >= 0 ) /* c a d if the module can be placed. */ @@ -757,14 +757,14 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC ) } } - DrawModuleOutlines( DrawPanel, aDC, aModule ); /* erasing the last traces */ + DrawModuleOutlines( m_canvas, aDC, aModule ); /* erasing the last traces */ if( showRat ) Compute_Ratsnest_PlaceModule( aDC ); /* Regeneration of the modified variable. */ - aModule->m_BoundaryBox.m_Pos.x = ox + cx; - aModule->m_BoundaryBox.m_Pos.y = oy + cy; + aModule->m_BoundaryBox.SetX( ox + cx ); + aModule->m_BoundaryBox.SetY( oy + cy ); CurrPosition = LastPosOK; GetBoard()->m_Status_Pcb &= ~( RATSNEST_ITEM_LOCAL_OK | LISTE_PAD_OK ); @@ -786,10 +786,10 @@ int TstRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1, int side ) int row_min, row_max, col_min, col_max; unsigned int data; - ux0 -= Pcb->GetBoundingBox().m_Pos.x; - uy0 -= Pcb->GetBoundingBox().m_Pos.y; - ux1 -= Pcb->GetBoundingBox().m_Pos.x; - uy1 -= Pcb->GetBoundingBox().m_Pos.y; + ux0 -= Pcb->GetBoundingBox().GetX(); + uy0 -= Pcb->GetBoundingBox().GetY(); + ux1 -= Pcb->GetBoundingBox().GetX(); + uy1 -= Pcb->GetBoundingBox().GetY(); row_max = uy1 / Board.m_GridRouting; col_max = ux1 / Board.m_GridRouting; @@ -843,10 +843,10 @@ unsigned int CalculateKeepOutArea( BOARD* Pcb, int ux0, int uy0, int ux1, int uy int row_min, row_max, col_min, col_max; unsigned int keepOut; - ux0 -= Pcb->GetBoundingBox().m_Pos.x; - uy0 -= Pcb->GetBoundingBox().m_Pos.y; - ux1 -= Pcb->GetBoundingBox().m_Pos.x; - uy1 -= Pcb->GetBoundingBox().m_Pos.y; + ux0 -= Pcb->GetBoundingBox().GetX(); + uy0 -= Pcb->GetBoundingBox().GetY(); + ux1 -= Pcb->GetBoundingBox().GetX(); + uy1 -= Pcb->GetBoundingBox().GetY(); row_max = uy1 / Board.m_GridRouting; col_max = ux1 / Board.m_GridRouting; @@ -902,9 +902,9 @@ int TstModuleOnBoard( BOARD* Pcb, MODULE* Module, bool TstOtherSide ) side = BOTTOM; otherside = TOP; } - ox = Module->m_BoundaryBox.m_Pos.x; + ox = Module->m_BoundaryBox.GetX(); fx = Module->m_BoundaryBox.GetRight(); - oy = Module->m_BoundaryBox.m_Pos.y; + oy = Module->m_BoundaryBox.GetY(); fy = Module->m_BoundaryBox.GetBottom(); error = TstRectangle( Pcb, ox, oy, fx, fy, side ); @@ -956,7 +956,7 @@ float PCB_EDIT_FRAME::Compute_Ratsnest_PlaceModule( wxDC* DC ) if( AutoPlaceShowAll ) { - GRLine( &DrawPanel->m_ClipBox, DC, ox, oy, fx, fy, 0, color ); + GRLine( &m_canvas->m_ClipBox, DC, ox, oy, fx, fy, 0, color ); } /* Cost of the ratsnest. */ @@ -1017,10 +1017,10 @@ static void CreateKeepOutRectangle( BOARD* Pcb, if( trace == 0 ) return; - ux0 -= Pcb->GetBoundingBox().m_Pos.x; - uy0 -= Pcb->GetBoundingBox().m_Pos.y; - ux1 -= Pcb->GetBoundingBox().m_Pos.x; - uy1 -= Pcb->GetBoundingBox().m_Pos.y; + ux0 -= Pcb->GetBoundingBox().GetX(); + uy0 -= Pcb->GetBoundingBox().GetY(); + ux1 -= Pcb->GetBoundingBox().GetX(); + uy1 -= Pcb->GetBoundingBox().GetY(); ux0 -= marge; ux1 += marge; uy0 -= marge; uy1 += marge; diff --git a/pcbnew/autorout.cpp b/pcbnew/autorout.cpp index 80d9cd29dc..7b02d43065 100644 --- a/pcbnew/autorout.cpp +++ b/pcbnew/autorout.cpp @@ -173,7 +173,7 @@ void PCB_EDIT_FRAME::Autoroute( wxDC* DC, int mode ) /* Construction of the track list for router. */ Build_Work( GetBoard() ); - // DisplayBoard(DrawPanel, DC); + // DisplayBoard(m_canvas, DC); if( Nb_Sides == TWO_SIDES ) Solve( DC, TWO_SIDES ); /* double face */ diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index c9f12d320c..3b5ca3356f 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -201,7 +201,7 @@ double PCB_BASE_FRAME::BestZoom( void ) dx = bbbox.GetWidth(); dy = bbbox.GetHeight(); - size = DrawPanel->GetClientSize(); + size = m_canvas->GetClientSize(); if( size.x ) ii = (double)(dx + ( size.x / 2) ) / (double) size.x; @@ -227,10 +227,10 @@ void PCB_BASE_FRAME::CursorGoto( const wxPoint& aPos ) PCB_SCREEN* screen = (PCB_SCREEN*)GetScreen(); - wxClientDC dc( DrawPanel ); + wxClientDC dc( m_canvas ); /* There may be need to reframe the drawing. */ - if( !DrawPanel->IsPointOnDisplay( aPos ) ) + if( !m_canvas->IsPointOnDisplay( aPos ) ) { screen->SetCrossHairPosition( aPos ); RedrawScreen( aPos, true ); @@ -238,10 +238,10 @@ void PCB_BASE_FRAME::CursorGoto( const wxPoint& aPos ) else { // Put cursor on item position - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); screen->SetCrossHairPosition( aPos ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->CrossHairOn( &dc ); + m_canvas->MoveCursorToCrossHair(); + m_canvas->CrossHairOn( &dc ); } } @@ -304,7 +304,7 @@ void PCB_BASE_FRAME::SwitchLayer( wxDC* DC, int layer ) GetScreen()->m_Active_Layer = layer; if( DisplayOpt.ContrastModeDisplay ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -319,7 +319,7 @@ void PCB_BASE_FRAME::OnTogglePolarCoords( wxCommandEvent& aEvent ) void PCB_BASE_FRAME::OnTogglePadDrawMode( wxCommandEvent& aEvent ) { m_DisplayPadFill = DisplayOpt.DisplayPadFill = !m_DisplayPadFill; - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -397,7 +397,7 @@ void PCB_BASE_FRAME::ProcessItemSelection( wxCommandEvent& aEvent ) if( id >= ID_POPUP_PCB_ITEM_SELECTION_START && id <= ID_POPUP_PCB_ITEM_SELECTION_END ) { BOARD_ITEM* item = (*m_Collector)[itemNdx]; - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; #if 0 && defined (DEBUG) item->Show( 0, std::cout ); @@ -481,8 +481,8 @@ void PCB_BASE_FRAME::SetToolID( int aId, int aCursor, const wxString& aToolMsg ) // must do this after the tool has been set, otherwise pad::Draw() does // not show proper color when DisplayOpt.ContrastModeDisplay is true. - if( redraw && DrawPanel) - DrawPanel->Refresh(); + if( redraw && m_canvas) + m_canvas->Refresh(); } diff --git a/pcbnew/block.cpp b/pcbnew/block.cpp index d1eff9213b..9b97410b5d 100644 --- a/pcbnew/block.cpp +++ b/pcbnew/block.cpp @@ -121,15 +121,15 @@ static bool InstallBlockCmdFrame( PCB_BASE_FRAME* parent, const wxString& title { wxPoint oldpos = parent->GetScreen()->GetCrossHairPosition(); - parent->DrawPanel->m_IgnoreMouseEvents = true; + parent->GetCanvas()->m_IgnoreMouseEvents = true; DIALOG_BLOCK_OPTIONS * dlg = new DIALOG_BLOCK_OPTIONS( parent, title ); int cmd = dlg->ShowModal(); dlg->Destroy(); parent->GetScreen()->SetCrossHairPosition( oldpos ); - parent->DrawPanel->MoveCursorToCrossHair(); - parent->DrawPanel->m_IgnoreMouseEvents = false; + parent->GetCanvas()->MoveCursorToCrossHair(); + parent->GetCanvas()->m_IgnoreMouseEvents = false; return cmd == wxID_OK; } @@ -219,7 +219,7 @@ int PCB_EDIT_FRAME::ReturnBlockCommand( int aKey ) void PCB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { - if( !DrawPanel->IsMouseCaptured() ) + if( !m_canvas->IsMouseCaptured() ) { DisplayError( this, wxT( "Error in HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } @@ -234,16 +234,16 @@ void PCB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) case BLOCK_DRAG: /* Drag */ case BLOCK_MOVE: /* Move */ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); Block_Move(); GetScreen()->m_BlockLocate.ClearItemsList(); break; case BLOCK_COPY: /* Copy */ - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); Block_Duplicate(); GetScreen()->m_BlockLocate.ClearItemsList(); @@ -259,7 +259,7 @@ void PCB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, false ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); GetScreen()->ClearBlockCommand(); if( GetScreen()->m_BlockLocate.GetCount() ) @@ -278,8 +278,8 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) // If coming here after cancel block, clean up and exit if( GetScreen()->m_BlockLocate.m_State == STATE_NO_BLOCK ) { - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, - false ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, + false ); GetScreen()->ClearBlockCommand(); return false; } @@ -293,11 +293,11 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) cancelCmd = true; // undraw block outline - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } else { - DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false ); + DrawAndSizingBlockOutlines( m_canvas, DC, wxDefaultPosition, false ); Block_SelectItems(); // Exit if no items found @@ -306,7 +306,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) } } - if( !cancelCmd && DrawPanel->IsMouseCaptured() ) + if( !cancelCmd && m_canvas->IsMouseCaptured() ) { switch( GetScreen()->m_BlockLocate.m_Command ) { @@ -320,24 +320,24 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; nextcmd = true; - DrawPanel->m_mouseCaptureCallback = drawMovingBlock; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback = drawMovingBlock; + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); break; case BLOCK_DELETE: /* Delete */ - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; Block_Delete(); break; case BLOCK_ROTATE: /* Rotation */ - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; Block_Rotate(); break; case BLOCK_FLIP: /* Flip */ - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; Block_Flip(); break; @@ -357,7 +357,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) // Turn off the redraw block routine now so it is not displayed // with one corner at the new center of the screen - DrawPanel->m_mouseCaptureCallback = NULL; + m_canvas->m_mouseCaptureCallback = NULL; Window_Zoom( GetScreen()->m_BlockLocate ); break; @@ -369,8 +369,8 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( ! nextcmd ) { GetScreen()->ClearBlockCommand(); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, - false ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, + false ); } return nextcmd; @@ -610,7 +610,7 @@ void PCB_EDIT_FRAME::Block_Delete() case PCB_MODULE_T: { MODULE* module = (MODULE*) item; - module->m_Flags = 0; + module->ClearFlags(); module->UnLink(); m_Pcb->m_Status_Pcb = 0; } @@ -647,7 +647,7 @@ void PCB_EDIT_FRAME::Block_Delete() SaveCopyInUndoList( *itemsList, UR_DELETED ); Compile_Ratsnest( NULL, true ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -675,7 +675,7 @@ void PCB_EDIT_FRAME::Block_Rotate() switch( item->Type() ) { case PCB_MODULE_T: - ( (MODULE*) item )->m_Flags = 0; + ( (MODULE*) item )->ClearFlags(); m_Pcb->m_Status_Pcb = 0; break; @@ -707,7 +707,7 @@ void PCB_EDIT_FRAME::Block_Rotate() SaveCopyInUndoList( *itemsList, UR_ROTATED, centre ); Compile_Ratsnest( NULL, true ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -736,7 +736,7 @@ void PCB_EDIT_FRAME::Block_Flip() switch( item->Type() ) { case PCB_MODULE_T: - item->m_Flags = 0; + item->ClearFlags(); m_Pcb->m_Status_Pcb = 0; break; @@ -768,7 +768,7 @@ void PCB_EDIT_FRAME::Block_Flip() SaveCopyInUndoList( *itemsList, UR_FLIPPED, center ); Compile_Ratsnest( NULL, true ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -791,7 +791,7 @@ void PCB_EDIT_FRAME::Block_Move() { case PCB_MODULE_T: m_Pcb->m_Status_Pcb = 0; - item->m_Flags = 0; + item->ClearFlags(); break; /* Move track segments */ @@ -822,7 +822,7 @@ void PCB_EDIT_FRAME::Block_Move() SaveCopyInUndoList( *itemsList, UR_MOVED, MoveVector ); Compile_Ratsnest( NULL, true ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -851,7 +851,7 @@ void PCB_EDIT_FRAME::Block_Duplicate() MODULE* module = (MODULE*) item; MODULE* new_module; m_Pcb->m_Status_Pcb = 0; - module->m_Flags = 0; + module->ClearFlags(); newitem = new_module = new MODULE( m_Pcb ); new_module->Copy( module ); new_module->SetTimeStamp( GetNewTimeStamp() ); @@ -937,5 +937,5 @@ void PCB_EDIT_FRAME::Block_Duplicate() SaveCopyInUndoList( newList, UR_NEW ); Compile_Ratsnest( NULL, true ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } diff --git a/pcbnew/block_module_editor.cpp b/pcbnew/block_module_editor.cpp index b877c61a4b..e3de67fd99 100644 --- a/pcbnew/block_module_editor.cpp +++ b/pcbnew/block_module_editor.cpp @@ -55,7 +55,6 @@ #define BLOCK_COLOR BROWN -#define IS_SELECTED 1 static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, @@ -123,13 +122,13 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) { BlockState state = GetScreen()->m_BlockLocate.m_State; CmdBlockType command = GetScreen()->m_BlockLocate.m_Command; - DrawPanel->m_endMouseCaptureCallback( DrawPanel, DC ); + m_canvas->m_endMouseCaptureCallback( m_canvas, DC ); GetScreen()->m_BlockLocate.m_State = state; GetScreen()->m_BlockLocate.m_Command = command; - DrawPanel->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); + m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( wxPoint( GetScreen()->m_BlockLocate.GetRight(), GetScreen()->m_BlockLocate.GetBottom() ) ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } switch( GetScreen()->m_BlockLocate.m_Command ) @@ -147,21 +146,21 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) { nextcmd = true; - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } break; case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ nextcmd = true; - DrawPanel->m_mouseCaptureCallback = DrawMovingBlockOutlines; + m_canvas->m_mouseCaptureCallback = DrawMovingBlockOutlines; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; break; @@ -219,9 +218,9 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) GetScreen()->ClearBlockCommand(); SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } return nextcmd; @@ -232,7 +231,7 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { MODULE* currentModule = GetBoard()->m_Modules; - if( !DrawPanel->IsMouseCaptured() ) + if( !m_canvas->IsMouseCaptured() ) { DisplayError( this, wxT( "HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } @@ -250,7 +249,7 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) GetScreen()->m_BlockLocate.ClearItemsList(); SaveCopyInUndoList( currentModule, UR_MODEDIT ); MoveMarkedItems( currentModule, GetScreen()->m_BlockLocate.m_MoveVector ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case BLOCK_COPY: /* Copy */ @@ -285,12 +284,12 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.m_Flags = 0; + GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; SetCurItem( NULL ); - DrawPanel->EndMouseCapture( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString, false ); - DrawPanel->Refresh( true ); + m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); + m_canvas->Refresh( true ); } @@ -322,7 +321,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx for( ; item != NULL; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; switch( item->Type() ) @@ -341,7 +340,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx for( ; pad != NULL; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; pad->Draw( aPanel, aDC, g_XorMode, move_offset ); @@ -361,7 +360,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx for( ; item != NULL; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; switch( item->Type() ) @@ -380,7 +379,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx for( ; pad != NULL; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; pad->Draw( aPanel, aDC, g_XorMode, move_offset ); @@ -398,22 +397,22 @@ void CopyMarkedItems( MODULE* module, wxPoint offset ) for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; - pad->m_Selected = 0; + pad->ClearFlags( SELECTED ); D_PAD* NewPad = new D_PAD( module ); NewPad->Copy( pad ); - NewPad->m_Selected = IS_SELECTED; + NewPad->SetFlags( SELECTED ); module->m_Pads.PushFront( NewPad ); } for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; - item->m_Selected = 0; + item->ClearFlags( SELECTED ); switch( item->Type() ) { @@ -421,7 +420,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset ) TEXTE_MODULE * textm; textm = new TEXTE_MODULE( module ); textm->Copy( (TEXTE_MODULE*) item ); - textm->m_Selected = IS_SELECTED; + textm->SetFlags( SELECTED ); module->m_Drawings.PushFront( textm ); break; @@ -429,7 +428,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset ) EDGE_MODULE * edge; edge = new EDGE_MODULE( module ); edge->Copy( (EDGE_MODULE*) item ); - edge->m_Selected = IS_SELECTED; + edge->SetFlags( SELECTED ); module->m_Drawings.PushFront( edge ); break; @@ -456,7 +455,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset ) for( ; pad != NULL; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; pad->SetPosition( pad->GetPosition() + offset ); @@ -467,7 +466,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset ) for( ; item != NULL; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; switch( item->Type() ) @@ -494,7 +493,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset ) ; } - item->m_Flags = item->m_Selected = 0; + item->ClearFlags(); } } @@ -517,7 +516,7 @@ void DeleteMarkedItems( MODULE* module ) { next_pad = pad->Next(); - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; pad->DeleteStructure(); @@ -529,7 +528,7 @@ void DeleteMarkedItems( MODULE* module ) { next_item = item->Next(); - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; item->DeleteStructure(); @@ -549,7 +548,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset ) for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( pad->IsSelected() ) continue; tmp = pad->GetPosition(); @@ -565,7 +564,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset ) for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; switch( item->Type() ) @@ -603,8 +602,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset ) break; } - item->m_Flags = 0; - item->m_Selected = 0; + item->ClearFlags(); } } @@ -620,7 +618,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset ) for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() ) { - if( pad->m_Selected == 0 ) + if( !pad->IsSelected() ) continue; wxPoint pos = pad->GetPosition(); @@ -634,43 +632,43 @@ void RotateMarkedItems( MODULE* module, wxPoint offset ) for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() ) { - if( item->m_Selected == 0 ) + if( !item->IsSelected() ) continue; switch( item->Type() ) { case PCB_MODULE_EDGE_T: - { - EDGE_MODULE* em = (EDGE_MODULE*) item; + { + EDGE_MODULE* em = (EDGE_MODULE*) item; - wxPoint tmp = em->GetStart(); - ROTATE( tmp ); - em->SetStart( tmp ); - em->SetStart0( tmp ); + wxPoint tmp = em->GetStart(); + ROTATE( tmp ); + em->SetStart( tmp ); + em->SetStart0( tmp ); - tmp = em->GetEnd(); - ROTATE( tmp ); - em->SetEnd( tmp ); - em->SetEnd0( tmp ); - } - break; + tmp = em->GetEnd(); + ROTATE( tmp ); + em->SetEnd( tmp ); + em->SetEnd0( tmp ); + } + break; case PCB_MODULE_TEXT_T: - { - TEXTE_MODULE* tm = (TEXTE_MODULE*) item; - wxPoint pos = tm->GetPosition(); - ROTATE( pos ); - tm->SetPosition( pos ); - tm->SetPos0( tm->GetPosition() ); - tm->SetOrientation( tm->GetOrientation() + 900 ); - } - break; + { + TEXTE_MODULE* tm = (TEXTE_MODULE*) item; + wxPoint pos = tm->GetPosition(); + ROTATE( pos ); + tm->SetPosition( pos ); + tm->SetPos0( tm->GetPosition() ); + tm->SetOrientation( tm->GetOrientation() + 900 ); + } + break; default: ; } - item->m_Flags = item->m_Selected = 0; + item->ClearFlags(); } } @@ -685,12 +683,16 @@ void ClearMarkItems( MODULE* module ) item = module->m_Drawings; for( ; item != NULL; item = item->Next() ) - item->m_Flags = item->m_Selected = 0; + { + item->ClearFlags(); + } item = module->m_Pads; for( ; item != NULL; item = item->Next() ) - item->m_Flags = item->m_Selected = 0; + { + item->ClearFlags(); + } } @@ -711,12 +713,12 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect ) for( ; pad != NULL; pad = pad->Next() ) { - pad->m_Selected = 0; + pad->ClearFlags( SELECTED ); pos = pad->GetPosition(); if( Rect.Contains( pos ) ) { - pad->m_Selected = IS_SELECTED; + pad->SetFlags( SELECTED ); ItemsCount++; } } @@ -725,14 +727,14 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect ) for( ; item != NULL; item = item->Next() ) { - item->m_Selected = 0; + item->ClearFlags( SELECTED ); switch( item->Type() ) { case PCB_MODULE_EDGE_T: if( ((EDGE_MODULE*)item )->HitTest( Rect ) ) { - item->m_Selected = IS_SELECTED; + item->SetFlags( SELECTED ); ItemsCount++; } @@ -743,7 +745,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect ) if( Rect.Contains( pos ) ) { - item->m_Selected = IS_SELECTED; + item->SetFlags( SELECTED ); ItemsCount++; } diff --git a/pcbnew/board.cpp b/pcbnew/board.cpp index 915ae1d4ae..499f161170 100644 --- a/pcbnew/board.cpp +++ b/pcbnew/board.cpp @@ -51,8 +51,7 @@ bool MATRIX_ROUTING_HEAD::ComputeMatrixSize( BOARD* aPcb ) // The boundary box must have its start point on routing grid: m_BrdBox = aPcb->GetBoundingBox(); - m_BrdBox.m_Pos.x -= m_BrdBox.m_Pos.x % m_GridRouting; - m_BrdBox.m_Pos.y -= m_BrdBox.m_Pos.y % m_GridRouting; + m_BrdBox.Offset( -(m_BrdBox.GetX() % m_GridRouting), -(m_BrdBox.GetY() % m_GridRouting) ); // The boundary box must have its end point on routing grid: wxPoint end = m_BrdBox.GetEnd(); @@ -63,15 +62,16 @@ bool MATRIX_ROUTING_HEAD::ComputeMatrixSize( BOARD* aPcb ) end.y -= end.y % m_GridRouting; end.y += m_GridRouting; - m_BrdBox.SetEnd(end); + m_BrdBox.SetEnd( end ); aPcb->SetBoundingBox( m_BrdBox ); - m_Nrows = Nrows = m_BrdBox.m_Size.y / m_GridRouting; - m_Ncols = Ncols = m_BrdBox.m_Size.x / m_GridRouting; + m_Nrows = Nrows = m_BrdBox.GetHeight() / m_GridRouting; + m_Ncols = Ncols = m_BrdBox.GetWidth() / m_GridRouting; /* get a small margin for memory allocation: */ - Ncols += 1; Nrows += 1; + Ncols += 1; + Nrows += 1; return true; } @@ -371,48 +371,45 @@ int Build_Work( BOARD* Pcb ) current_net_code = pt_pad->GetNet(); pt_ch = pt_rats; - r1 = ( pt_pad->GetPosition().y - bbbox.m_Pos.y - + demi_pas ) / Board.m_GridRouting; + r1 = ( pt_pad->GetPosition().y - bbbox.GetY() + demi_pas ) / Board.m_GridRouting; if( r1 < 0 || r1 >= Nrows ) { msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r1, - pt_pad->GetPosition().y, bbbox.m_Pos.y ); + pt_pad->GetPosition().y, bbbox.GetY() ); wxMessageBox( msg ); return 0; } - c1 = ( pt_pad->GetPosition().x - bbbox.m_Pos.x - + demi_pas ) / Board.m_GridRouting; + c1 = ( pt_pad->GetPosition().x - bbbox.GetX() + demi_pas ) / Board.m_GridRouting; if( c1 < 0 || c1 >= Ncols ) { msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c1, - pt_pad->GetPosition().x, bbbox.m_Pos.x ); + pt_pad->GetPosition().x, bbbox.GetX() ); wxMessageBox( msg ); return 0; } pt_pad = pt_rats->m_PadEnd; - r2 = ( pt_pad->GetPosition().y - bbbox.m_Pos.y + r2 = ( pt_pad->GetPosition().y - bbbox.GetY() + demi_pas ) / Board.m_GridRouting; if( r2 < 0 || r2 >= Nrows ) { msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r2, - pt_pad->GetPosition().y, bbbox.m_Pos.y ); + pt_pad->GetPosition().y, bbbox.GetY() ); wxMessageBox( msg ); return 0; } - c2 = ( pt_pad->GetPosition().x - bbbox.m_Pos.x - + demi_pas ) / Board.m_GridRouting; + c2 = ( pt_pad->GetPosition().x - bbbox.GetX() + demi_pas ) / Board.m_GridRouting; if( c2 < 0 || c2 >= Ncols ) { msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c2, - pt_pad->GetPosition().x, bbbox.m_Pos.x ); + pt_pad->GetPosition().x, bbbox.GetX() ); wxMessageBox( msg ); return 0; } diff --git a/pcbnew/board_undo_redo.cpp b/pcbnew/board_undo_redo.cpp index 4d6a48e4ff..3efc072509 100644 --- a/pcbnew/board_undo_redo.cpp +++ b/pcbnew/board_undo_redo.cpp @@ -569,7 +569,7 @@ void PCB_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed } } - item->m_Flags = 0; + item->ClearFlags(); // see if we must rebuild ratsnets and pointers lists switch( item->Type() ) @@ -662,7 +662,7 @@ void PCB_EDIT_FRAME::GetBoardFromUndoList( wxCommandEvent& event ) GetScreen()->PushCommandToRedoList( List ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -690,7 +690,7 @@ void PCB_EDIT_FRAME::GetBoardFromRedoList( wxCommandEvent& event ) GetScreen()->PushCommandToUndoList( List ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 7340ddca7f..651224eafc 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -1672,10 +1672,22 @@ static bool sortPadsByXthenYCoord( D_PAD* const & ref, D_PAD* const & comp ) } -void BOARD::GetSortedPadListByXthenYCoord( std::vector& aVector ) +void BOARD::GetSortedPadListByXthenYCoord( std::vector& aVector, int aNetCode ) { - aVector.insert( aVector.end(), m_NetInfo.m_PadsFullList.begin(), - m_NetInfo.m_PadsFullList.end() ); + if( aNetCode < 0 ) + { + aVector.insert( aVector.end(), m_NetInfo.m_PadsFullList.begin(), + m_NetInfo.m_PadsFullList.end() ); + } + else + { + const NETINFO_ITEM* net = m_NetInfo.GetNetItem( aNetCode ); + if( net ) + { + aVector.insert( aVector.end(), net->m_PadInNetList.begin(), + net->m_PadInNetList.end() ); + } + } sort( aVector.begin(), aVector.end(), sortPadsByXthenYCoord ); } diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h index 8d3755571a..8106f5b157 100644 --- a/pcbnew/class_board.h +++ b/pcbnew/class_board.h @@ -1210,8 +1210,11 @@ public: * those pointers are only references to pads which are owned by the BOARD * through other links. * @param aVector Where to put the pad pointers. + * @param aNetCode = the netcode filter: + * = -1 to build the full pad list. + * = a given netcode to build the pad list relative to the given net */ - void GetSortedPadListByXthenYCoord( std::vector& aVector ); + void GetSortedPadListByXthenYCoord( std::vector& aVector, int aNetCode = -1 ); /** * Function GetTrace diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 316cbb7e95..7f81a4e665 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -386,8 +386,8 @@ EDA_RECT DRAWSEGMENT::GetBoundingBox() const if( ii == 0 ) p_end = pt; - bbox.m_Pos.x = MIN( bbox.m_Pos.x, pt.x ); - bbox.m_Pos.y = MIN( bbox.m_Pos.y, pt.y ); + bbox.SetX( MIN( bbox.GetX(), pt.x ) ); + bbox.SetY( MIN( bbox.GetY(), pt.y ) ); p_end.x = MAX( p_end.x, pt.x ); p_end.y = MAX( p_end.y, pt.y ); } diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 3edb8e708a..39301a9213 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -213,12 +213,12 @@ void MODULE::Copy( MODULE* aModule ) */ void MODULE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoint& aOffset ) { - if( (m_Flags & DO_NOT_DRAW) || (m_Flags & IS_MOVED) ) + if( (m_Flags & DO_NOT_DRAW) || (IsMoving()) ) return; for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) { - if( pad->m_Flags & IS_MOVED ) + if( pad->IsMoving() ) continue; pad->Draw( aPanel, aDC, aDrawMode, aOffset ); @@ -232,19 +232,19 @@ void MODULE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoi /* Draw graphic items */ if( brd->IsElementVisible( MOD_REFERENCES_VISIBLE ) ) { - if( !(m_Reference->m_Flags & IS_MOVED) ) + if( !(m_Reference->IsMoving()) ) m_Reference->Draw( aPanel, aDC, aDrawMode, aOffset ); } if( brd->IsElementVisible( MOD_VALUES_VISIBLE ) ) { - if( !(m_Value->m_Flags & IS_MOVED) ) + if( !(m_Value->IsMoving()) ) m_Value->Draw( aPanel, aDC, aDrawMode, aOffset ); } for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() ) { - if( item->m_Flags & IS_MOVED ) + if( item->IsMoving() ) continue; switch( item->Type() ) @@ -303,7 +303,7 @@ EDA_RECT MODULE::GetFootPrintRect() const { EDA_RECT area; - area.m_Pos = m_Pos; + area.SetOrigin( m_Pos ); area.SetEnd( m_Pos ); area.Inflate( 50 ); // Give a min size @@ -425,10 +425,10 @@ bool MODULE::HitTest( const wxPoint& aRefPos ) bool MODULE::HitTest( EDA_RECT& aRefArea ) { - if( m_BoundaryBox.m_Pos.x < aRefArea.GetX() ) + if( m_BoundaryBox.GetX() < aRefArea.GetX() ) return false; - if( m_BoundaryBox.m_Pos.y < aRefArea.GetY() ) + if( m_BoundaryBox.GetY() < aRefArea.GetY() ) return false; if( m_BoundaryBox.GetRight() > aRefArea.GetRight() ) @@ -576,8 +576,8 @@ void MODULE::Show( int nestLevel, std::ostream& os ) const " layer=\"" << board->GetLayerName( m_Layer ).mb_str() << '"' << ">\n"; - NestedSpace( nestLevel + 1, os ) << - "\n"; + NestedSpace( nestLevel + 1, os ) << "\n"; NestedSpace( nestLevel + 1, os ) << "\n"; diff --git a/pcbnew/class_netinfo.h b/pcbnew/class_netinfo.h index 144450580a..ac4c7ba0fa 100644 --- a/pcbnew/class_netinfo.h +++ b/pcbnew/class_netinfo.h @@ -222,7 +222,7 @@ public: int m_Flag; // used in some calculations. Had no // special meaning - std::vector m_ListPad; // List of pads connected to this net + std::vector m_PadInNetList; // List of pads connected to this net unsigned m_RatsnestStartIdx; /* Starting point of ratsnests of this * net (included) in a general buffer of @@ -369,7 +369,7 @@ public: void SetNet( int aNetCode ) { m_NetCode = aNetCode; } - int GetNodesCount() const { return m_ListPad.size(); } + int GetNodesCount() const { return m_PadInNetList.size(); } /** * Function GetNetname diff --git a/pcbnew/class_netinfolist.cpp b/pcbnew/class_netinfolist.cpp index b82d00b395..d4a9f47362 100644 --- a/pcbnew/class_netinfolist.cpp +++ b/pcbnew/class_netinfolist.cpp @@ -115,7 +115,7 @@ void NETINFO_LIST::buildListOfNets() } pad->SetNet( netcode ); - net_item->m_ListPad.push_back( pad ); + net_item->m_PadInNetList.push_back( pad ); nodes_count ++; last_pad = pad; } diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index 1a699bd949..6012712d05 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -301,7 +301,7 @@ void PCB_LAYER_WIDGET::OnLayerColorChange( int aLayer, int aColor ) { myframe->GetBoard()->SetLayerColor( aLayer, aColor ); myframe->ReCreateLayerBox( NULL ); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } bool PCB_LAYER_WIDGET::OnLayerSelect( int aLayer ) @@ -311,7 +311,7 @@ bool PCB_LAYER_WIDGET::OnLayerSelect( int aLayer ) myframe->setActiveLayer( aLayer, false ); if(DisplayOpt.ContrastModeDisplay) - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); return true; } @@ -330,13 +330,13 @@ void PCB_LAYER_WIDGET::OnLayerVisible( int aLayer, bool isVisible, bool isFinal brd->SetVisibleLayers( visibleLayers ); if( isFinal ) - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } void PCB_LAYER_WIDGET::OnRenderColorChange( int aId, int aColor ) { myframe->GetBoard()->SetVisibleElementColor( aId, aColor ); - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) @@ -365,7 +365,7 @@ void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) brd->SetElementVisibility( aId, isEnabled ); } - myframe->DrawPanel->Refresh(); + myframe->GetCanvas()->Refresh(); } //----------------------------------------------- diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 9991be6405..4a1990f02c 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -58,7 +58,7 @@ static bool ShowClearance( const TRACK* aTrack ) return aTrack->GetLayer() <= LAST_COPPER_LAYER && ( aTrack->Type() == PCB_TRACE_T || aTrack->Type() == PCB_VIA_T ) && ( ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_NEW_AND_EDITED_TRACKS_AND_VIA_AREAS - && ( aTrack->m_Flags & IS_DRAGGED || aTrack->m_Flags & IS_MOVED || aTrack->m_Flags & IS_NEW ) ) + && ( aTrack->IsDragging() || aTrack->IsMoving() || aTrack->IsNew() ) ) || ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS ) ); diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 9ad384d210..bd31196f2c 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -451,7 +451,7 @@ bool ZONE_CONTAINER::HitTestForCorner( const wxPoint& refPos ) if( GetBoard() && GetBoard()->m_PcbFrame ) { // Use grid size because it is known - wxRealPoint grid = GetBoard()->m_PcbFrame->DrawPanel->GetGrid(); + wxRealPoint grid = GetBoard()->m_PcbFrame->GetCanvas()->GetGrid(); min_dist = wxRound( MIN( grid.x, grid.y ) ); } #endif @@ -497,7 +497,7 @@ bool ZONE_CONTAINER::HitTestForEdge( const wxPoint& refPos ) if( GetBoard() && GetBoard()->m_PcbFrame ) { // Use grid size because it is known - wxRealPoint grid = GetBoard()->m_PcbFrame->DrawPanel->GetGrid(); + wxRealPoint grid = GetBoard()->m_PcbFrame->GetCanvas()->GetGrid(); min_dist = wxRound( MIN( grid.x, grid.y ) ); } #endif diff --git a/pcbnew/clean.cpp b/pcbnew/clean.cpp index 7c5c96df72..94d3362277 100644 --- a/pcbnew/clean.cpp +++ b/pcbnew/clean.cpp @@ -68,7 +68,7 @@ void PCB_EDIT_FRAME::Clean_Pcb( wxDC* DC ) CleanupTracks( this, dlg.cleanVias, dlg.mergeSegments, dlg.deleteUnconnectedSegm, dlg.connectToPads ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } @@ -207,7 +207,7 @@ static void DeleteUnconnectedTracks( PCB_EDIT_FRAME* aFrame ) if( aFrame->GetBoard()->m_Track == NULL ) return; - aFrame->DrawPanel->m_AbortRequest = false; + aFrame->GetCanvas()->m_AbortRequest = false; // correct via m_End defects for( segment = aFrame->GetBoard()->m_Track; segment; segment = next ) @@ -231,7 +231,7 @@ static void DeleteUnconnectedTracks( PCB_EDIT_FRAME* aFrame ) { next = segment->Next(); - if( aFrame->DrawPanel->m_AbortRequest ) + if( aFrame->GetCanvas()->m_AbortRequest ) break; if( segment->GetNet() != oldnetcode ) @@ -412,7 +412,7 @@ static void clean_segments( PCB_EDIT_FRAME* aFrame ) int flag, no_inc; wxString msg; - aFrame->DrawPanel->m_AbortRequest = false; + aFrame->GetCanvas()->m_AbortRequest = false; // Delete null segments for( segment = aFrame->GetBoard()->m_Track; segment; segment = nextsegment ) @@ -475,7 +475,7 @@ static void clean_segments( PCB_EDIT_FRAME* aFrame ) nextsegment = segment->Next(); - if( aFrame->DrawPanel->m_AbortRequest ) + if( aFrame->GetCanvas()->m_AbortRequest ) return; if( segment->Type() != PCB_TRACE_T ) @@ -856,13 +856,13 @@ void ConnectDanglingEndToPad( PCB_EDIT_FRAME* aFrame ) int nb_new_trace = 0; wxString msg; - aFrame->DrawPanel->m_AbortRequest = false; + aFrame->GetCanvas()->m_AbortRequest = false; for( segment = aFrame->GetBoard()->m_Track; segment; segment = segment->Next() ) { D_PAD* pad; - if( aFrame->DrawPanel->m_AbortRequest ) + if( aFrame->GetCanvas()->m_AbortRequest ) return; pad = aFrame->GetBoard()->GetPad( segment, START ); diff --git a/pcbnew/connect.cpp b/pcbnew/connect.cpp index 30f211326c..5d44c7b19e 100644 --- a/pcbnew/connect.cpp +++ b/pcbnew/connect.cpp @@ -50,17 +50,32 @@ static void RebuildTrackChain( BOARD* pcb ); class CONNECTED_POINT { private: - TRACK * m_track; // a link to the parent item (track or via) - wxPoint m_point; // the connection point + BOARD_CONNECTED_ITEM * m_item; // a link to the parent item (track, via or pad) + wxPoint m_point; // the connection point public: - CONNECTED_POINT( TRACK * aTrack, wxPoint & aPoint) + CONNECTED_POINT( TRACK * aTrack, const wxPoint & aPoint) { - m_track = aTrack; + m_item = aTrack; m_point = aPoint; } - TRACK * GetTrack() const { return m_track; } + CONNECTED_POINT( D_PAD * aPad, const wxPoint & aPoint) + { + m_item = aPad; + m_point = aPoint; + } + + TRACK * GetTrack() const + { + return m_item->Type() != PCB_PAD_T ? (TRACK*) m_item : NULL ; + } + + D_PAD * GetPad() const + { + return m_item->Type() == PCB_PAD_T ? (D_PAD*) m_item : NULL; + } + const wxPoint & GetPoint() const { return m_point; } }; @@ -96,9 +111,8 @@ public: /** * Function Build_CurrNet_SubNets_Connections - * Connections to pads are assumed to be already initialized, - * and are not recalculated - * An be called after a track change (delete or add a track): + * should be called after a track change (delete or add a track): + * Connections to pads and to tracks are recalculated * If a track is deleted, the other pointers to pads do not change. * When a new track is added in track list, its pointers to pads are already initialized * Builds the subnets inside a net (tracks from aFirstTrack to aFirstTrack). @@ -115,10 +129,16 @@ public: * Function BuildTracksCandidatesList * Fills m_Candidates with all connecting points (track ends or via location) * with tracks from aBegin to aEnd. - * if aBegin == NULL, use first track in brd list - * if aEnd == NULL, uses all tracks from aBegin in brd list + * if aEnd == NULL, uses all tracks from aBegin */ - void BuildTracksCandidatesList( TRACK * aBegin = NULL, TRACK * aEnd = NULL); + void BuildTracksCandidatesList( TRACK * aBegin, TRACK * aEnd = NULL); + + /** + * Function BuildPadsCandidatesList + * Fills m_Candidates with all pads connecting points (pads position) + * m_sortedPads must be built + */ + void BuildPadsCandidatesList(); /** * function SearchConnectedTracks @@ -140,9 +160,21 @@ public: } /** - * function SearchTracksConnectedToPads + * function SearchConnectionsPadsToIntersectingPads * Explores the list of pads and adds to m_PadsConnected member - * of each track connected the pad(s) connected to + * of each pad pads connected to + * Here, connections are due to intersecting pads, not tracks + * m_sortedPads must be initialized + */ + void SearchConnectionsPadsToIntersectingPads(); + + /** + * function SearchTracksConnectedToPads + * Explores the list of pads. + * Adds to m_PadsConnected member of each track the pad(s) connected to + * Adds to m_TracksConnected member of each pad the track(s) connected to + * D_PAD::m_TracksConnected is cleared before adding items + * TRACK::m_PadsConnected is not cleared */ void SearchTracksConnectedToPads(); @@ -176,29 +208,39 @@ public: private: /** - * function searchEntryPoint + * function searchEntryPointInCandidatesList * Search an item in m_Connected connected to aPoint * note m_Connected containts usually more than one candidate - * and searchEntryPoint returns an index to one of these candidates + * and searchEntryPointInCandidatesList returns an index to one of these candidates * Others are neightbor of the indexed item. * @param aPoint is the reference coordinates * @return the index of item found or -1 if no candidate */ - int searchEntryPoint( const wxPoint & aPoint); + int searchEntryPointInCandidatesList( const wxPoint & aPoint); /** * Function Merge_SubNets - * Change a subnet value to a new value, for tracks ans pads which are connected to - * corresponding track for pads and tracks, this is the .m_Subnet member that is tested - * and modified these members are block numbers (or cluster numbers) for a given net - * The result is 2 cluster (or subnets) are merged into only one. - * Note: the resulting sub net value is the smallest between aOldSubNet et aNewSubNet + * Change a subnet old value to a new value, for tracks and pads which are connected to + * tracks from m_firstTrack to m_lastTrack and their connected pads. + * and modify the subnet parameter (change the old value to the new value). + * After that, 2 cluster (or subnets) are merged into only one. + * Note: the resulting sub net value is the smallest between aOldSubNet and aNewSubNet * @return modification count * @param aOldSubNet = subnet value to modify * @param aNewSubNet = new subnet value for each item which have old_val as subnet value */ int Merge_SubNets( int aOldSubNet, int aNewSubNet ); + /** + * Function Merge_PadsSubNets + * Change a subnet value to a new value, in m_sortedPads pad list + * After that, 2 cluster (or subnets) are merged into only one. + * Note: the resulting subnet value is the smallest between aOldSubNet et aNewSubNet + * @return modification count + * @param aOldSubNet = subnet value to modify + * @param aNewSubNet = new subnet value for each item which have old_val as subnet value + */ + int Merge_PadsSubNets( int aOldSubNet, int aNewSubNet ); }; @@ -216,28 +258,49 @@ void CONNECTIONS::BuildPadsList( int aNetcode ) { // Creates sorted pad list if not exists m_sortedPads.clear(); - if( aNetcode < 0 ) - m_brd->GetSortedPadListByXthenYCoord( m_sortedPads ); - else + m_brd->GetSortedPadListByXthenYCoord( m_sortedPads, aNetcode < 0 ? -1 : aNetcode ); +} + +/* Explores the list of pads and adds to m_PadsConnected member + * of each pad pads connected to + * Here, connections are due to intersecting pads, not tracks + */ +void CONNECTIONS::SearchConnectionsPadsToIntersectingPads() +{ + std::vector candidates; + + BuildPadsCandidatesList(); + + for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) { - std::vector buffer; - m_brd->GetSortedPadListByXthenYCoord( buffer ); - int icnt = 0; - for( unsigned ii = 0; ii < buffer.size(); ii++ ) + D_PAD * pad = m_sortedPads[ii]; + pad->m_PadsConnected.clear(); + candidates.clear(); + CollectItemsNearTo( candidates, pad->ReturnShapePos(), pad->m_ShapeMaxRadius ); + // add pads to pad.m_PadsConnected, if they are connected + for( unsigned jj = 0; jj < candidates.size(); jj++ ) { - if( buffer[ii]->GetNet() == aNetcode ) - icnt++; - } - m_sortedPads.reserve(icnt); - for( unsigned ii = 0; ii < buffer.size(); ii++ ) - { - if( buffer[ii]->GetNet() == aNetcode ) - m_sortedPads.push_back( buffer[ii] ); + CONNECTED_POINT * item = candidates[jj]; + D_PAD * candidate_pad = item->GetPad(); + if( pad == candidate_pad ) + continue; + + if( (pad->m_layerMask & candidate_pad->m_layerMask) == 0 ) + continue; + if( pad->HitTest( item->GetPoint() ) ) + { + pad->m_PadsConnected.push_back( candidate_pad ); + } } } } - +/* Explores the list of pads + * Adds to m_PadsConnected member of each track the pad(s) connected to + * Adds to m_TracksConnected member of each pad the track(s) connected to + * D_PAD::m_TracksConnected is cleared before adding items + * TRACK::m_PadsConnected is not cleared + */ void CONNECTIONS::SearchTracksConnectedToPads() { std::vector candidates; @@ -245,18 +308,21 @@ void CONNECTIONS::SearchTracksConnectedToPads() for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) { D_PAD * pad = m_sortedPads[ii]; + pad->m_TracksConnected.clear(); candidates.clear(); - CollectItemsNearTo( candidates, pad->ReturnShapePos(), pad->m_ShapeMaxRadius ); + + CollectItemsNearTo( candidates, pad->GetPosition(), pad->m_ShapeMaxRadius ); + // add this pad to track.m_PadsConnected, if it is connected for( unsigned jj = 0; jj < candidates.size(); jj++ ) { - CONNECTED_POINT * item = candidates[jj]; - if( (pad->m_layerMask & item->GetTrack()->ReturnMaskLayer()) == 0 ) + CONNECTED_POINT * cp_item = candidates[jj]; + if( (pad->m_layerMask & cp_item->GetTrack()->ReturnMaskLayer()) == 0 ) continue; - if( pad->HitTest( item->GetPoint() ) ) + if( pad->HitTest( cp_item->GetPoint() ) ) { - item->GetTrack()->m_PadsConnected.push_back( pad ); - pad->m_TracksConnected.push_back( item->GetTrack() ); + cp_item->GetTrack()->m_PadsConnected.push_back( pad ); + pad->m_TracksConnected.push_back( cp_item->GetTrack() ); } } } @@ -288,8 +354,11 @@ void CONNECTIONS::CollectItemsNearTo( std::vector& aList, CONNECTED_POINT& item = m_candidates[idx]; - if( item.GetPoint().x == aPosition.x ) + int dist = item.GetPoint().x - aPosition.x; + if( abs(dist) <= aDistMax ) + { break; // A good entry point is found. The list can be scanned from this point. + } else if( item.GetPoint().x < aPosition.x ) // We should search after this item { @@ -339,6 +408,19 @@ void CONNECTIONS::CollectItemsNearTo( std::vector& aList, } } + +void CONNECTIONS::BuildPadsCandidatesList() +{ + m_candidates.clear(); + m_candidates.reserve( m_sortedPads.size() ); + for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) + { + D_PAD * pad = m_sortedPads[ii]; + CONNECTED_POINT candidate( pad, pad->GetPosition() ); + m_candidates.push_back( candidate ); + } +} + /* sort function used to sort .m_Connected by X the Y values * items are sorted by X coordinate value, * and for same X value, by Y coordinate value. @@ -355,10 +437,10 @@ void CONNECTIONS::BuildTracksCandidatesList( TRACK * aBegin, TRACK * aEnd) { m_candidates.clear(); - if( aBegin == NULL ) - aBegin = m_brd->m_Track; +// if( aBegin == NULL ) +// aBegin = m_brd->m_Track; - m_firstTrack = aBegin; + m_firstTrack = m_lastTrack = aBegin; unsigned ii = 0; // Count candidates ( i.e. end points ) @@ -406,7 +488,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack ) wxPoint position = aTrack->m_Start; for( int kk = 0; kk < 2; kk++ ) { - int idx = searchEntryPoint( position ); + int idx = searchEntryPointInCandidatesList( position ); if ( idx >= 0 ) { // search after: @@ -441,7 +523,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack ) return count; } -int CONNECTIONS::searchEntryPoint( const wxPoint & aPoint) +int CONNECTIONS::searchEntryPointInCandidatesList( const wxPoint & aPoint) { // Search the aPoint coordinates in m_Candidates // m_Candidates is sorted by X then Y values, and a fast binary search is used @@ -498,25 +580,24 @@ int CONNECTIONS::searchEntryPoint( const wxPoint & aPoint) } /* Used after a track change (delete a track ou add a track) - * Connections to pads are assumed to be already initialized. - * and are not recalculated + * Connections to pads are recalculated + * Note also aFirstTrack (and aLastTrack ) can be NULL */ void CONNECTIONS::Build_CurrNet_SubNets_Connections( TRACK* aFirstTrack, TRACK* aLastTrack, int aNetcode ) { - m_firstTrack = aFirstTrack; // The first track used to build m_Candidates m_lastTrack = aLastTrack; // The last track used to build m_Candidates - TRACK* curr_track; - // Pads subnets are expected already cleared, because this function // does not know the full list of pads BuildTracksCandidatesList( aFirstTrack, aLastTrack ); + TRACK* curr_track; for( curr_track = aFirstTrack; curr_track != NULL; curr_track = curr_track->Next() ) { // Clear track subnet id (Pads subnets are cleared outside this function) curr_track->SetSubNet( 0 ); curr_track->m_TracksConnected.clear(); + curr_track->m_PadsConnected.clear(); // Update connections between tracks: SearchConnectedTracks( curr_track ); @@ -530,11 +611,43 @@ void CONNECTIONS::Build_CurrNet_SubNets_Connections( TRACK* aFirstTrack, TRACK* BuildPadsList( aNetcode ); SearchTracksConnectedToPads(); + // Update connections between intersecting pads (no tracks) + SearchConnectionsPadsToIntersectingPads(); + // Creates sub nets (clusters) for the current net: Propagate_SubNets(); } +/** + * Change a subnet value to a new value, in m_sortedPads pad list + * After that, 2 cluster (or subnets) are merged into only one. + * Note: the resulting subnet value is the smallest between aOldSubNet et aNewSubNet + */ +int CONNECTIONS::Merge_PadsSubNets( int aOldSubNet, int aNewSubNet ) +{ + int change_count = 0; + + if( aOldSubNet == aNewSubNet ) + return 0; + + if( (aOldSubNet > 0) && (aOldSubNet < aNewSubNet) ) + EXCHG( aOldSubNet, aNewSubNet ); + + // Examine connections between intersecting pads + for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) + { + D_PAD * curr_pad = m_sortedPads[ii]; + if( curr_pad->GetSubNet() != aOldSubNet ) + continue; + + change_count++; + curr_pad->SetSubNet( aNewSubNet ); + } + + return change_count; +} + /* * Change a subnet value to a new value, for tracks and pads which are connected to. * The result is merging 2 clusters (or subnets) into only one cluster. @@ -595,13 +708,54 @@ int CONNECTIONS::Merge_SubNets( int aOldSubNet, int aNewSubNet ) */ void CONNECTIONS::Propagate_SubNets() { - TRACK* curr_track; - int sub_netcode; + int sub_netcode = 0; - curr_track = (TRACK*)m_firstTrack; - sub_netcode = 1; - curr_track->SetSubNet( sub_netcode ); + // Examine connections between intersecting pads + for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) + { + D_PAD * curr_pad = m_sortedPads[ii]; + for( unsigned jj = 0; jj < curr_pad->m_PadsConnected.size(); jj++ ) + { + D_PAD * pad = curr_pad->m_PadsConnected[jj]; + if( curr_pad->GetSubNet() ) + { + if( pad->GetSubNet() > 0 ) + { + // The pad is already a cluster member, so we can merge the 2 clusters + Merge_PadsSubNets( pad->GetSubNet(), curr_pad->GetSubNet() ); + } + else + { + // The pad is not yet attached to a cluster, + // so we can add this pad to the cluster + pad->SetSubNet( curr_pad->GetSubNet() ); + } + } + else /* the track segment is not attached to a cluster */ + { + if( pad->GetSubNet() > 0 ) + { + // it is connected to a pad in a cluster, merge this pad + curr_pad->SetSubNet( pad->GetSubNet() ); + } + else + { + // it is connected to a pad not in a cluster, + // so we must create a new cluster (only with the 2 pads. + sub_netcode++; + curr_pad->SetSubNet( sub_netcode ); + pad->SetSubNet( curr_pad->GetSubNet() ); + } + } + } + } + sub_netcode++; + TRACK* curr_track = (TRACK*)m_firstTrack; + if( curr_track ) + curr_track->SetSubNet( sub_netcode ); + + // Examine connections between trcaks and pads for( ; curr_track != NULL; curr_track = curr_track->Next() ) { /* First: handling connections to pads */ @@ -683,6 +837,12 @@ void CONNECTIONS::Propagate_SubNets() } } +/* + * Test all connections of the board, + * and update subnet variable of pads and tracks + * TestForActiveLinksInRatsnest must be called after this function + * to update active/inactive ratsnest items status + */ void PCB_BASE_FRAME::TestConnections() { // Clear the cluster identifier for all pads @@ -697,21 +857,36 @@ void PCB_BASE_FRAME::TestConnections() m_Pcb->Test_Connections_To_Copper_Areas(); // Test existing connections net by net + // note some nets can have no tracks, and pads intersecting + // so Build_CurrNet_SubNets_Connections must be called for each net CONNECTIONS connections( m_Pcb ); + int last_net_tested = 0; + int current_net_code = 0; for( TRACK* track = m_Pcb->m_Track; track; ) { // At this point, track is the first track of a given net - int current_net_code = track->GetNet(); - + current_net_code = track->GetNet(); // Get last track of the current net TRACK* lastTrack = track->GetEndNetCode( current_net_code ); - if( current_net_code ) // do not spend time if net code = 0 ( dummy net ) + if( current_net_code > 0 ) // do not spend time if net code = 0 ( dummy net ) + { + // Test all previous nets having no tracks + for( int net = last_net_tested+1; net < current_net_code; net++ ) + connections.Build_CurrNet_SubNets_Connections( NULL, NULL, net ); + connections.Build_CurrNet_SubNets_Connections( track, lastTrack, current_net_code ); + last_net_tested = current_net_code; + } track = lastTrack->Next(); // this is now the first track of the next net } + // Test last nets without tracks, if any + int netsCount = m_Pcb->GetNetCount(); + for( int net = last_net_tested+1; net < netsCount; net++ ) + connections.Build_CurrNet_SubNets_Connections( NULL, NULL, net ); + Merge_SubNets_Connected_By_CopperAreas( m_Pcb ); return; @@ -816,7 +991,7 @@ void PCB_BASE_FRAME::RecalculateAllTracksNetcode() CONNECTIONS connections( m_Pcb ); connections.BuildPadsList(); - connections.BuildTracksCandidatesList(); + connections.BuildTracksCandidatesList(m_Pcb->m_Track); // First pass: build connections between track segments and pads. connections.SearchTracksConnectedToPads(); diff --git a/pcbnew/controle.cpp b/pcbnew/controle.cpp index 41036300e5..a161e12e49 100644 --- a/pcbnew/controle.cpp +++ b/pcbnew/controle.cpp @@ -234,18 +234,18 @@ BOARD_ITEM* PCB_BASE_FRAME::PcbGeneralLocateAndDisplay( int aHotKeyCode ) * a m_IgnoreMouseEvents++ ) * was not balanced with the -- (now m_IgnoreMouseEvents=false), so I had to revert. * Somebody should track down these and make them balanced. - * DrawPanel->m_IgnoreMouseEvents = true; + * m_canvas->m_IgnoreMouseEvents = true; */ // this menu's handler is void PCB_BASE_FRAME::ProcessItemSelection() // and it calls SetCurItem() which in turn calls DisplayInfo() on the item. - DrawPanel->m_AbortRequest = true; // changed in false if an item is selected + m_canvas->m_AbortRequest = true; // changed in false if an item is selected PopupMenu( &itemMenu ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // The function ProcessItemSelection() has set the current item, return it. - if( DrawPanel->m_AbortRequest ) // Nothing selected + if( m_canvas->m_AbortRequest ) // Nothing selected item = NULL; else item = GetCurItem(); @@ -270,25 +270,25 @@ void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -312,7 +312,7 @@ void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH EDA_ITEM* DrawStruct = GetScreen()->GetCurItem(); - if( DrawStruct && DrawStruct->m_Flags ) + if( DrawStruct && DrawStruct->GetFlags() ) keep_on_grid = true; if( keep_on_grid ) @@ -345,23 +345,25 @@ void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH { pos = GetScreen()->GetCrossHairPosition(); GetScreen()->SetCrossHairPosition( oldpos, false ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( pos, false ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { #ifdef USE_WX_OVERLAY - wxDCOverlay oDC( DrawPanel->m_overlay, (wxWindowDC*)aDC ); + wxDCOverlay oDC( m_canvas->m_overlay, (wxWindowDC*)aDC ); oDC.Clear(); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, false ); #else - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); #endif } #ifdef USE_WX_OVERLAY else - DrawPanel->m_overlay.Reset(); + { + m_canvas->m_overlay.Reset(); + } #endif } diff --git a/pcbnew/deltrack.cpp b/pcbnew/deltrack.cpp index 1e35528b71..f0e65c4330 100644 --- a/pcbnew/deltrack.cpp +++ b/pcbnew/deltrack.cpp @@ -57,7 +57,7 @@ TRACK* PCB_EDIT_FRAME::Delete_Segment( wxDC* DC, TRACK* aTrack ) D( g_CurrentTrackList.VerifyListIntegrity(); ) // Delete the current trace - ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, false ); + ShowNewTrackWhenMovingCursor( m_canvas, DC, wxDefaultPosition, false ); // delete the most recently entered delete g_CurrentTrackList.PopBack(); @@ -100,7 +100,7 @@ TRACK* PCB_EDIT_FRAME::Delete_Segment( wxDC* DC, TRACK* aTrack ) if( g_CurrentTrackList.GetCount() == 0 ) { - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); if( GetBoard()->IsHighLightNetON() ) HighLight( DC ); @@ -110,8 +110,8 @@ TRACK* PCB_EDIT_FRAME::Delete_Segment( wxDC* DC, TRACK* aTrack ) } else { - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); return g_CurrentTrackSegment; } @@ -126,7 +126,7 @@ TRACK* PCB_EDIT_FRAME::Delete_Segment( wxDC* DC, TRACK* aTrack ) container->Remove( aTrack ); // redraw the area where the track was - DrawPanel->RefreshDrawingRect( aTrack->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( aTrack->GetBoundingBox() ); SaveCopyInUndoList( aTrack, UR_DELETED ); OnModify(); @@ -176,7 +176,7 @@ void PCB_EDIT_FRAME::Delete_net( wxDC* DC, TRACK* aTrack ) GetBoard()->m_Track.Remove( segm ); // redraw the area where the track was - DrawPanel->RefreshDrawingRect( segm->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( segm->GetBoundingBox() ); picker.m_PickedItem = segm; picker.m_PickedItemType = segm->Type(); itemsList.PushItem( picker ); @@ -225,7 +225,7 @@ void PCB_EDIT_FRAME::Remove_One_Track( wxDC* DC, TRACK* pt_segm ) GetBoard()->m_Track.Remove( tracksegment ); // redraw the area where the track was - DrawPanel->RefreshDrawingRect( tracksegment->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( tracksegment->GetBoundingBox() ); picker.m_PickedItem = tracksegment; picker.m_PickedItemType = tracksegment->Type(); itemsList.PushItem( picker ); diff --git a/pcbnew/dialogs/dialog_SVG_print.cpp b/pcbnew/dialogs/dialog_SVG_print.cpp index fa40f29a69..e98a609d26 100644 --- a/pcbnew/dialogs/dialog_SVG_print.cpp +++ b/pcbnew/dialogs/dialog_SVG_print.cpp @@ -245,7 +245,7 @@ bool DIALOG_SVG_PRINT::DrawPage( const wxString& FullFileName, screen->SetScalingFactor( 1.0 ); float dpi = (float)m_Parent->GetInternalUnits(); - EDA_DRAW_PANEL* panel = m_Parent->DrawPanel; + EDA_DRAW_PANEL* panel = m_Parent->GetCanvas(); // paper pageSize is in internal units, either nanometers or deci-mils wxSize pageSize = m_Parent->GetPageSizeIU(); diff --git a/pcbnew/dialogs/dialog_display_options.cpp b/pcbnew/dialogs/dialog_display_options.cpp index faec7c714f..60725bad40 100644 --- a/pcbnew/dialogs/dialog_display_options.cpp +++ b/pcbnew/dialogs/dialog_display_options.cpp @@ -165,7 +165,7 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick(wxCommandEvent& event) DisplayOpt.DisplayDrawItems = m_OptDisplayDrawings->GetSelection(); DisplayOpt.DisplayNetNamesMode = m_ShowNetNamesOption->GetSelection(); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); EndModal( 1 ); } diff --git a/pcbnew/dialogs/dialog_drc.cpp b/pcbnew/dialogs/dialog_drc.cpp index 0803bea006..e375a49747 100644 --- a/pcbnew/dialogs/dialog_drc.cpp +++ b/pcbnew/dialogs/dialog_drc.cpp @@ -556,13 +556,11 @@ void DIALOG_DRC_CONTROL::OnUnconnectedSelectionEvent( wxCommandEvent& event ) void DIALOG_DRC_CONTROL::RedrawDrawPanel() { - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } -/*********************************************************/ void DIALOG_DRC_CONTROL::DelDRCMarkers() -/*********************************************************/ { m_Parent->SetCurItem( NULL ); // clear curr item, because it could be a DRC marker m_ClearanceListBox->DeleteAllItems(); @@ -611,6 +609,7 @@ void DIALOG_DRC_CONTROL::OnDeleteOneClick( wxCommandEvent& event ) if( curTab == 0 ) { selectedIndex = m_ClearanceListBox->GetSelection(); + if( selectedIndex != wxNOT_FOUND ) { m_ClearanceListBox->DeleteItem( selectedIndex ); @@ -622,6 +621,7 @@ void DIALOG_DRC_CONTROL::OnDeleteOneClick( wxCommandEvent& event ) else if( curTab == 1 ) { selectedIndex = m_UnconnectedListBox->GetSelection(); + if( selectedIndex != wxNOT_FOUND ) { m_UnconnectedListBox->DeleteItem( selectedIndex ); diff --git a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp index bda7bd1800..314dd7af15 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp @@ -451,14 +451,14 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) wxPoint modpos; wxString msg; - if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we + if( m_CurrentModule->GetFlags() == 0 ) // this is a simple edition, we // must create an undo entry m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED ); if( m_DC ) { - m_Parent->DrawPanel->CrossHairOff( m_DC ); - m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + m_Parent->GetCanvas()->CrossHairOff( m_DC ); + m_CurrentModule->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); } // Initialize masks clearances @@ -475,8 +475,10 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) // A margin ratio de -50% means no paste on a pad, the ratio must be >= 50% if( dtmp < -50 ) dtmp = -50; + if( dtmp > +100 ) dtmp = +100; + m_CurrentModule->m_LocalSolderPasteMarginRatio = dtmp / 100; // Set Module Position @@ -518,6 +520,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) long orient = 0; msg = m_OrientValue->GetValue(); msg.ToLong( &orient ); + if( m_CurrentModule->m_Orient != orient ) m_CurrentModule->Rotate( m_CurrentModule->m_Pos, orient - m_CurrentModule->m_Orient ); @@ -537,14 +540,19 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) /* Update 3D shape list */ int ii = m_3D_ShapeNameListBox->GetSelection(); + if( ii >= 0 ) TransfertDisplayTo3DValues( ii ); + S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; + for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) { S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii]; + if( draw3DCopy->m_Shape3DName.IsEmpty() ) continue; + if( draw3D == NULL ) { draw3D = new S3D_MASTER( draw3D ); @@ -561,6 +569,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) // Remove old extra 3D shapes S3D_MASTER* nextdraw3D; + for( ; draw3D != NULL; draw3D = nextdraw3D ) { nextdraw3D = (S3D_MASTER*) draw3D->Next(); @@ -580,8 +589,8 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) if( m_DC ) { - m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); - m_Parent->DrawPanel->CrossHairOn( m_DC ); + m_CurrentModule->Draw( m_Parent->GetCanvas(), m_DC, GR_OR ); + m_Parent->GetCanvas()->CrossHairOn( m_DC ); } } diff --git a/pcbnew/dialogs/dialog_edit_module_text.cpp b/pcbnew/dialogs/dialog_edit_module_text.cpp index 41472aee32..359dd23b16 100644 --- a/pcbnew/dialogs/dialog_edit_module_text.cpp +++ b/pcbnew/dialogs/dialog_edit_module_text.cpp @@ -45,14 +45,13 @@ private: void OnCancelClick( wxCommandEvent& event ); }; -/*************************************************************************************/ + void PCB_BASE_FRAME::InstallTextModOptionsFrame( TEXTE_MODULE* TextMod, wxDC* DC ) -/**************************************************************************************/ { - DrawPanel->m_IgnoreMouseEvents = TRUE; + m_canvas->m_IgnoreMouseEvents = TRUE; DialogEditModuleText dialog( this, TextMod, DC ); dialog.ShowModal(); - DrawPanel->m_IgnoreMouseEvents = FALSE; + m_canvas->m_IgnoreMouseEvents = FALSE; } @@ -85,9 +84,7 @@ void DialogEditModuleText::OnCancelClick( wxCommandEvent& event ) } -/********************************************************/ void DialogEditModuleText::initDlg( ) -/********************************************************/ { SetFocus(); @@ -97,13 +94,14 @@ void DialogEditModuleText::initDlg( ) { wxString format = m_ModuleInfoText->GetLabel(); msg.Printf( format, - GetChars( m_module->m_Reference->m_Text ), - GetChars( m_module->m_Value->m_Text ), - (float) m_module->m_Orient / 10 ); + GetChars( m_module->m_Reference->m_Text ), + GetChars( m_module->m_Value->m_Text ), + (float) m_module->m_Orient / 10 ); } - else + { msg.Empty(); + } m_ModuleInfoText->SetLabel( msg ); @@ -141,6 +139,7 @@ void DialogEditModuleText::initDlg( ) int text_orient = m_currentText->m_Orient; NORMALIZE_ANGLE_90(text_orient) + if( (text_orient != 0) ) m_Orient->SetSelection( 1 ); @@ -149,18 +148,17 @@ void DialogEditModuleText::initDlg( ) } -/*********************************************************************************/ void DialogEditModuleText::OnOkClick( wxCommandEvent& event ) -/*********************************************************************************/ { wxString msg; if ( m_module) m_parent->SaveCopyInUndoList( m_module, UR_CHANGED ); + if( m_dc ) //Erase old text on screen { - m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR, - (m_currentText->m_Flags & IS_MOVED) ? MoveVector : wxPoint( 0, 0 ) ); + m_currentText->Draw( m_parent->GetCanvas(), m_dc, GR_XOR, + (m_currentText->IsMoving()) ? MoveVector : wxPoint( 0, 0 ) ); } m_currentText->m_Text = m_Name->GetValue(); @@ -195,12 +193,16 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event ) // Test for a reasonnable width: if( width <= 1 ) width = 1; + int maxthickness = Clamp_Text_PenSize(width, m_currentText->m_Size ); + if( width > maxthickness ) { - DisplayError(NULL, _("The text thickness is too large for the text size. It will be clamped")); + DisplayError( NULL, + _( "The text thickness is too large for the text size. It will be clamped" ) ); width = maxthickness; } + m_currentText->SetThickness( width ); m_currentText->SetVisible( m_Show->GetSelection() == 0 ); @@ -209,12 +211,15 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event ) m_currentText->m_Orient = text_orient; m_currentText->SetDrawCoord(); + if( m_dc ) // Display new text { - m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR, - (m_currentText->m_Flags & IS_MOVED) ? MoveVector : wxPoint( 0, 0 ) ); + m_currentText->Draw( m_parent->GetCanvas(), m_dc, GR_XOR, + (m_currentText->IsMoving()) ? MoveVector : wxPoint( 0, 0 ) ); } + m_parent->OnModify(); + if( m_module ) m_module->m_LastEdit_Time = time( NULL ); diff --git a/pcbnew/dialogs/dialog_general_options.cpp b/pcbnew/dialogs/dialog_general_options.cpp index 59c87f76d1..4be3c567cd 100644 --- a/pcbnew/dialogs/dialog_general_options.cpp +++ b/pcbnew/dialogs/dialog_general_options.cpp @@ -88,7 +88,7 @@ void Dialog_GeneralOptions::init() m_TrackAutodel->SetValue( g_AutoDeleteOldTrack ); m_Track_45_Only_Ctrl->SetValue( g_Track_45_Only_Allowed ); m_Segments_45_Only_Ctrl->SetValue( Segments_45_Only ); - m_AutoPANOpt->SetValue( GetParent()->DrawPanel->m_AutoPAN_Enable ); + m_AutoPANOpt->SetValue( GetParent()->GetCanvas()->m_AutoPAN_Enable ); m_Segments_45_Only_Ctrl->SetValue( Segments_45_Only ); m_Track_DoubleSegm_Ctrl->SetValue( g_TwoSegmentTrackBuild ); @@ -126,14 +126,14 @@ void Dialog_GeneralOptions::OnOkClick( wxCommandEvent& event ) if( m_Board->IsElementVisible(RATSNEST_VISIBLE) != m_ShowGlobalRatsnest->GetValue() ) { GetParent()->SetElementVisibility(RATSNEST_VISIBLE, m_ShowGlobalRatsnest->GetValue() ); - GetParent()->DrawPanel->Refresh( ); + GetParent()->GetCanvas()->Refresh( ); } g_Show_Module_Ratsnest = m_ShowModuleRatsnest->GetValue(); g_AutoDeleteOldTrack = m_TrackAutodel->GetValue(); Segments_45_Only = m_Segments_45_Only_Ctrl->GetValue(); g_Track_45_Only_Allowed = m_Track_45_Only_Ctrl->GetValue(); - GetParent()->DrawPanel->m_AutoPAN_Enable = m_AutoPANOpt->GetValue(); + GetParent()->GetCanvas()->m_AutoPAN_Enable = m_AutoPANOpt->GetValue(); g_TwoSegmentTrackBuild = m_Track_DoubleSegm_Ctrl->GetValue(); g_MagneticPadOption = m_MagneticPadOptCtrl->GetSelection(); @@ -159,9 +159,9 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) if( GetToolId() == ID_TRACK_BUTT ) { if( Drc_On ) - DrawPanel->SetCursor( wxCURSOR_PENCIL ); + m_canvas->SetCursor( wxCURSOR_PENCIL ); else - DrawPanel->SetCursor( wxCURSOR_QUESTION_ARROW ); + m_canvas->SetCursor( wxCURSOR_QUESTION_ARROW ); } break; @@ -174,7 +174,7 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) Compile_Ratsnest( NULL, true ); } - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST: @@ -187,32 +187,32 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) case ID_TB_OPTIONS_SHOW_ZONES: DisplayOpt.DisplayZonesMode = 0; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_ZONES_DISABLE: DisplayOpt.DisplayZonesMode = 1; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY: DisplayOpt.DisplayZonesMode = 2; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_VIAS_SKETCH: m_DisplayViaFill = DisplayOpt.DisplayViaFill = !state; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_TRACKS_SKETCH: m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = !state; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE: DisplayOpt.ContrastModeDisplay = state; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR_MICROWAVE: diff --git a/pcbnew/dialogs/dialog_global_deletion.cpp b/pcbnew/dialogs/dialog_global_deletion.cpp index b5838b4cbf..1906a578fd 100644 --- a/pcbnew/dialogs/dialog_global_deletion.cpp +++ b/pcbnew/dialogs/dialog_global_deletion.cpp @@ -145,7 +145,7 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( ) m_Parent->Compile_Ratsnest( NULL, true ); } - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); m_Parent->OnModify(); EndModal( 1 ); diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp index f9ac29a994..6ee9556fa3 100644 --- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp +++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp @@ -200,8 +200,9 @@ void DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::OnOkClick( wxCommandEvent& event ) } EndModal( 1 ); + if( change ) - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } diff --git a/pcbnew/dialogs/dialog_graphic_item_properties.cpp b/pcbnew/dialogs/dialog_graphic_item_properties.cpp index 6cb8513770..34f5d9994b 100644 --- a/pcbnew/dialogs/dialog_graphic_item_properties.cpp +++ b/pcbnew/dialogs/dialog_graphic_item_properties.cpp @@ -70,12 +70,13 @@ void PCB_EDIT_FRAME::InstallGraphicItemPropertiesDialog(DRAWSEGMENT * aItem, wxD DisplayError(this, wxT("InstallGraphicItemPropertiesDialog() error: NULL item")); return; } - DrawPanel->m_IgnoreMouseEvents = TRUE; + + m_canvas->m_IgnoreMouseEvents = TRUE; DialogGraphicItemProperties* dialog = new DialogGraphicItemProperties( this, - aItem, aDC ); + aItem, aDC ); dialog->ShowModal(); dialog->Destroy(); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = FALSE; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = FALSE; } /**************************************************************************/ @@ -188,8 +189,9 @@ void DialogGraphicItemProperties::OnOkClick( wxCommandEvent& event ) m_Parent->SaveCopyInUndoList( m_Item, UR_CHANGED ); wxString msg; + if( m_DC ) - m_Item->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + m_Item->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); msg = m_Center_StartXCtrl->GetValue(); m_Item->SetStartX( ReturnValueFromString( g_UserUnit, msg, m_Parent->GetInternalUnits() )); @@ -225,8 +227,10 @@ void DialogGraphicItemProperties::OnOkClick( wxCommandEvent& event ) } m_Parent->OnModify(); + if( m_DC ) - m_Item->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); + m_Item->Draw( m_Parent->GetCanvas(), m_DC, GR_OR ); + m_Item->DisplayInfo( m_Parent ); m_Parent->GetBoard()->SetDesignSettings( m_BrdSettings ); diff --git a/pcbnew/dialogs/dialog_orient_footprints.cpp b/pcbnew/dialogs/dialog_orient_footprints.cpp index 1e5dc148eb..2cafc222bc 100644 --- a/pcbnew/dialogs/dialog_orient_footprints.cpp +++ b/pcbnew/dialogs/dialog_orient_footprints.cpp @@ -102,9 +102,10 @@ void PCB_EDIT_FRAME::OnOrientFootprints( wxCommandEvent& event ) return; wxString text = dlg.GetFilter(); + if( ReOrientModules( text, dlg.GetOrientation(), dlg.ApplyToLockedModules() ) ) { - DrawPanel->Refresh(); + m_canvas->Refresh(); Compile_Ratsnest( NULL, true ); } } diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index a0661700ce..f6d02fdab2 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -599,13 +599,14 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) Module->m_LastEdit_Time = time( NULL ); // redraw the area where the pad was, without pad (delete pad on screen) - m_CurrentPad->m_Flags |= DO_NOT_DRAW; - m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() ); - m_CurrentPad->m_Flags &= ~DO_NOT_DRAW; + m_CurrentPad->SetFlags( DO_NOT_DRAW ); + m_Parent->GetCanvas()->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() ); + m_CurrentPad->ClearFlags( DO_NOT_DRAW ); // Update values m_CurrentPad->m_PadShape = g_Pad_Master.m_PadShape; m_CurrentPad->m_Attribut = g_Pad_Master.m_Attribut; + if( m_CurrentPad->m_Pos != g_Pad_Master.m_Pos ) { m_CurrentPad->m_Pos = g_Pad_Master.m_Pos; @@ -672,7 +673,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) m_CurrentPad->DisplayInfo( m_Parent ); // redraw the area where the pad was - m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() ); + m_Parent->GetCanvas()->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() ); m_Parent->OnModify(); } diff --git a/pcbnew/dialogs/dialog_pcb_text_properties.cpp b/pcbnew/dialogs/dialog_pcb_text_properties.cpp index 4043e3c506..e11caf3e62 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties.cpp +++ b/pcbnew/dialogs/dialog_pcb_text_properties.cpp @@ -68,11 +68,11 @@ DIALOG_PCB_TEXT_PROPERTIES::DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, */ void PCB_EDIT_FRAME::InstallTextPCBOptionsFrame( TEXTE_PCB* TextPCB, wxDC* DC ) { - DrawPanel->m_IgnoreMouseEvents = TRUE; + m_canvas->m_IgnoreMouseEvents = TRUE; DIALOG_PCB_TEXT_PROPERTIES dlg( this, TextPCB, DC ); dlg.ShowModal(); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = FALSE; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = FALSE; } @@ -102,6 +102,7 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit() m_Parent->GetInternalUnits() ); int enabledLayers = m_Parent->GetBoard()->GetEnabledLayers(); + for( int layer = 0; layer < NB_LAYERS; ++layer ) { if( enabledLayers & (1 << layer) ) @@ -109,6 +110,7 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit() layerList.push_back( layer ); int itemIndex = m_LayerSelectionCtrl->Append( m_Parent->GetBoard()->GetLayerName( layer ) ); + if( m_SelectedPCBText->GetLayer() == layer ) m_LayerSelectionCtrl->SetSelection( itemIndex ); } @@ -119,14 +121,17 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit() default: m_OrientationCtrl->SetSelection( 0 ); break; + case 900: case -2700: m_OrientationCtrl->SetSelection( 1 ); break; + case 1800: case -1800: m_OrientationCtrl->SetSelection( 2 ); break; + case 2700: case -900: m_OrientationCtrl->SetSelection( 3 ); @@ -172,20 +177,20 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event ) // If no other command in progress, prepare undo command // (for a command in progress, will be made later, at the completion of command) - if( m_SelectedPCBText->m_Flags == 0 ) + if( m_SelectedPCBText->GetFlags() == 0 ) m_Parent->SaveCopyInUndoList( m_SelectedPCBText, UR_CHANGED ); /* set flag in edit to force undo/redo/abort proper operation, * and avoid new calls to SaveCopyInUndoList for the same text * this can occurs when a text is moved, and then rotated, edited .. */ - if( m_SelectedPCBText->m_Flags != 0 ) - m_SelectedPCBText->m_Flags |= IN_EDIT; + if( m_SelectedPCBText->GetFlags() != 0 ) + m_SelectedPCBText->SetFlags( IN_EDIT ); // Erase old text on screen if context is available if( m_DC ) { - m_SelectedPCBText->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + m_SelectedPCBText->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); } // Set the new text content @@ -195,32 +200,45 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event ) } // Set PCB Text position - newPosition.x = ReturnValueFromString( g_UserUnit, m_PositionXCtrl->GetValue(), m_Parent->GetInternalUnits() ); - newPosition.y = ReturnValueFromString( g_UserUnit, m_PositionYCtrl->GetValue(), m_Parent->GetInternalUnits() ); + newPosition.x = ReturnValueFromString( g_UserUnit, m_PositionXCtrl->GetValue(), + m_Parent->GetInternalUnits() ); + newPosition.y = ReturnValueFromString( g_UserUnit, m_PositionYCtrl->GetValue(), + m_Parent->GetInternalUnits() ); m_SelectedPCBText->m_Pos = newPosition; // Check constraints and set PCB Text size - newSize.x = ReturnValueFromString( g_UserUnit, m_SizeXCtrl->GetValue(), m_Parent->GetInternalUnits() ); - newSize.y = ReturnValueFromString( g_UserUnit, m_SizeYCtrl->GetValue(), m_Parent->GetInternalUnits() ); + newSize.x = ReturnValueFromString( g_UserUnit, m_SizeXCtrl->GetValue(), + m_Parent->GetInternalUnits() ); + newSize.y = ReturnValueFromString( g_UserUnit, m_SizeYCtrl->GetValue(), + m_Parent->GetInternalUnits() ); if( newSize.x < TEXTS_MIN_SIZE ) newSize.x = TEXTS_MIN_SIZE; + if( newSize.y < TEXTS_MIN_SIZE ) newSize.y = TEXTS_MIN_SIZE; + if( newSize.x > TEXTS_MAX_WIDTH ) newSize.x = TEXTS_MAX_WIDTH; + if( newSize.y > TEXTS_MAX_WIDTH ) newSize.y = TEXTS_MAX_WIDTH; + m_SelectedPCBText->m_Size = newSize; // Set the new thickness - m_SelectedPCBText->m_Thickness = ReturnValueFromString( g_UserUnit, m_ThicknessCtrl->GetValue(), m_Parent->GetInternalUnits() ); + m_SelectedPCBText->m_Thickness = ReturnValueFromString( g_UserUnit, + m_ThicknessCtrl->GetValue(), + m_Parent->GetInternalUnits() ); // Test for acceptable values for thickness and size and clamp if fails - int maxthickness = Clamp_Text_PenSize( m_SelectedPCBText->m_Thickness, m_SelectedPCBText->m_Size ); + int maxthickness = Clamp_Text_PenSize( m_SelectedPCBText->m_Thickness, + m_SelectedPCBText->m_Size ); + if( m_SelectedPCBText->m_Thickness > maxthickness ) { - DisplayError(NULL, _("The text thickness is too large for the text size. It will be clamped")); + DisplayError( NULL, + _( "The text thickness is too large for the text size. It will be clamped" ) ); m_SelectedPCBText->m_Thickness = maxthickness; } @@ -255,8 +273,9 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event ) // Finally, display new text if there is a context to do so if( m_DC ) { - m_SelectedPCBText->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); + m_SelectedPCBText->Draw( m_Parent->GetCanvas(), m_DC, GR_OR ); } + m_Parent->OnModify(); EndModal( 1 ); } diff --git a/pcbnew/dimension.cpp b/pcbnew/dimension.cpp index d18b8dd7a8..a2097da7d6 100644 --- a/pcbnew/dimension.cpp +++ b/pcbnew/dimension.cpp @@ -134,7 +134,7 @@ void DIALOG_DIMENSION_EDITOR::OnOKClick( wxCommandEvent& event ) { if( m_DC ) // Delete old text. { - CurrentDimension->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + CurrentDimension->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); } m_Parent->SaveCopyInUndoList(CurrentDimension, UR_CHANGED); @@ -184,7 +184,7 @@ void DIALOG_DIMENSION_EDITOR::OnOKClick( wxCommandEvent& event ) if( m_DC ) // Display new text { - CurrentDimension->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); + CurrentDimension->Draw( m_Parent->GetCanvas(), m_DC, GR_OR ); } m_Parent->OnModify(); @@ -224,7 +224,7 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC ) pos = GetScreen()->GetCrossHairPosition(); aDimension = new DIMENSION( GetBoard() ); - aDimension->m_Flags = IS_NEW; + aDimension->SetFlags( IS_NEW ); aDimension->SetLayer( getActiveLayer() ); @@ -262,9 +262,9 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC ) aDimension->AdjustDimensionDetails( ); - aDimension->Draw( DrawPanel, aDC, GR_XOR ); + aDimension->Draw( m_canvas, aDC, GR_XOR ); - DrawPanel->SetMouseCapture( BuildDimension, AbortBuildDimension ); + m_canvas->SetMouseCapture( BuildDimension, AbortBuildDimension ); return aDimension; } @@ -275,8 +275,8 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC ) return aDimension; } - aDimension->Draw( DrawPanel, aDC, GR_OR ); - aDimension->m_Flags = 0; + aDimension->Draw( m_canvas, aDC, GR_OR ); + aDimension->ClearFlags(); /* ADD this new item in list */ GetBoard()->Add( aDimension ); @@ -285,7 +285,7 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC ) SaveCopyInUndoList( aDimension, UR_NEW ); OnModify(); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); return NULL; } @@ -361,7 +361,7 @@ void PCB_EDIT_FRAME::DeleteDimension( DIMENSION* aDimension, wxDC* aDC ) return; if( aDC ) - aDimension->Draw( DrawPanel, aDC, GR_XOR ); + aDimension->Draw( m_canvas, aDC, GR_XOR ); SaveCopyInUndoList( aDimension, UR_DELETED ); aDimension->UnLink(); @@ -379,16 +379,16 @@ void PCB_EDIT_FRAME::BeginMoveDimensionText( DIMENSION* aItem, wxDC* DC ) // Store the initial position for undo/abort command initialTextPosition = aItem->m_Text.m_Pos; - aItem->Draw( DrawPanel, DC, GR_XOR ); - aItem->m_Flags |= IS_MOVED; + aItem->Draw( m_canvas, DC, GR_XOR ); + aItem->SetFlags( IS_MOVED ); aItem->DisplayInfo( this ); GetScreen()->SetCrossHairPosition( aItem->m_Text.m_Pos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); - DrawPanel->SetMouseCapture( MoveDimensionText, AbortMoveDimensionText ); + m_canvas->SetMouseCapture( MoveDimensionText, AbortMoveDimensionText ); SetCurItem( aItem ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -426,7 +426,7 @@ void AbortMoveDimensionText( EDA_DRAW_PANEL* aPanel, wxDC* aDC ) dimension->Draw( aPanel, aDC, GR_XOR ); dimension->m_Text.m_Pos = initialTextPosition; - dimension->m_Flags = 0; + dimension->ClearFlags(); dimension->Draw( aPanel, aDC, GR_OR ); } @@ -435,18 +435,18 @@ void AbortMoveDimensionText( EDA_DRAW_PANEL* aPanel, wxDC* aDC ) */ void PCB_EDIT_FRAME::PlaceDimensionText( DIMENSION* aItem, wxDC* DC ) { - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); if( aItem == NULL ) return; - aItem->Draw( DrawPanel, DC, GR_OR ); + aItem->Draw( m_canvas, DC, GR_OR ); OnModify(); EXCHG( aItem->m_Text.m_Pos, initialTextPosition ); SaveCopyInUndoList( aItem, UR_CHANGED ); EXCHG( aItem->m_Text.m_Pos, initialTextPosition ); - aItem->m_Flags = 0; + aItem->ClearFlags(); } diff --git a/pcbnew/dragsegm.cpp b/pcbnew/dragsegm.cpp index f20c389b43..61d2d912a5 100644 --- a/pcbnew/dragsegm.cpp +++ b/pcbnew/dragsegm.cpp @@ -148,10 +148,10 @@ void AddSegmentToDragList( EDA_DRAW_PANEL* panel, wxDC* DC, int flag, TRACK* Tra Track->SetState( IN_EDIT, ON ); if( (flag & STARTPOINT) ) - Track->m_Flags |= STARTPOINT; + Track->SetFlags( STARTPOINT ); if( (flag & ENDPOINT) ) - Track->m_Flags |= ENDPOINT; + Track->SetFlags( ENDPOINT ); Track->Draw( panel, DC, GR_XOR ); g_DragSegmentList.push_back( wrapper ); @@ -177,15 +177,15 @@ void Collect_TrackSegmentsToDrag( EDA_DRAW_PANEL* panel, wxDC* DC, if( ( LayerMask & track->ReturnMaskLayer() ) == 0 ) continue; // Cannot be connected, not on the same layer - if( track->m_Flags & IS_DRAGGED ) + if( track->IsDragging() ) continue; // already put in list int flag = 0; - if( (track->m_Start == aRefPos) && ((track->m_Flags & STARTPOINT) == 0) ) + if( (track->m_Start == aRefPos) && ((track->GetFlags() & STARTPOINT) == 0) ) flag |= STARTPOINT; - if( track->m_End == aRefPos && ((track->m_Flags & ENDPOINT) == 0) ) + if( track->m_End == aRefPos && ((track->GetFlags() & ENDPOINT) == 0) ) flag |= ENDPOINT; // Note: vias will be flagged with both STARTPOINT and ENDPOINT @@ -213,7 +213,7 @@ void Collect_TrackSegmentsToDrag( EDA_DRAW_PANEL* panel, wxDC* DC, void EraseDragList() { for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ ) - g_DragSegmentList[ii].m_Segm->m_Flags = 0; + g_DragSegmentList[ii].m_Segm->ClearFlags(); g_DragSegmentList.clear(); } diff --git a/pcbnew/drc.cpp b/pcbnew/drc.cpp index 2f99cdfc3c..3c17c76976 100644 --- a/pcbnew/drc.cpp +++ b/pcbnew/drc.cpp @@ -501,7 +501,7 @@ void DRC::testUnconnected() { if( (m_pcb->m_Status_Pcb & LISTE_RATSNEST_ITEM_OK) == 0 ) { - wxClientDC dc( m_mainWindow->DrawPanel ); + wxClientDC dc( m_mainWindow->GetCanvas() ); m_mainWindow->Compile_Ratsnest( &dc, true ); } diff --git a/pcbnew/edgemod.cpp b/pcbnew/edgemod.cpp index 0481700c02..0d65e350a3 100644 --- a/pcbnew/edgemod.cpp +++ b/pcbnew/edgemod.cpp @@ -39,13 +39,13 @@ void FOOTPRINT_EDIT_FRAME::Start_Move_EdgeMod( EDGE_MODULE* Edge, wxDC* DC ) if( Edge == NULL ) return; - Edge->Draw( DrawPanel, DC, GR_XOR ); - Edge->m_Flags |= IS_MOVED; + Edge->Draw( m_canvas, DC, GR_XOR ); + Edge->SetFlags( IS_MOVED ); MoveVector.x = MoveVector.y = 0; CursorInitialPosition = GetScreen()->GetCrossHairPosition(); - DrawPanel->SetMouseCapture( ShowCurrentOutlineWhileMoving, Abort_Move_ModuleOutline ); + m_canvas->SetMouseCapture( ShowCurrentOutlineWhileMoving, Abort_Move_ModuleOutline ); SetCurItem( Edge ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -60,15 +60,15 @@ void FOOTPRINT_EDIT_FRAME::Place_EdgeMod( EDGE_MODULE* aEdge ) aEdge->SetStart0( aEdge->GetStart0() - MoveVector ); aEdge->SetEnd0( aEdge->GetEnd0() - MoveVector ); - aEdge->m_Flags = 0; - DrawPanel->SetMouseCapture( NULL, NULL ); + aEdge->ClearFlags(); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); OnModify(); MODULE* module = (MODULE*) aEdge->GetParent(); module->CalculateBoundingBox(); - DrawPanel->Refresh( ); + m_canvas->Refresh( ); } @@ -278,7 +278,7 @@ static void Abort_Move_ModuleOutline( EDA_DRAW_PANEL* Panel, wxDC* DC ) else // On aborting, move existing outline to its initial position. { Edge->Draw( Panel, DC, GR_XOR, MoveVector ); - Edge->m_Flags = 0; + Edge->ClearFlags(); Edge->Draw( Panel, DC, GR_OR ); } } @@ -308,7 +308,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* Edge, module->m_Drawings.PushFront( Edge ); // Update characteristics of the segment or arc. - Edge->m_Flags = IS_NEW; + Edge->SetFlags( IS_NEW ); Edge->SetAngle( angle ); Edge->SetShape( type_edge ); @@ -337,7 +337,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* Edge, Edge->m_End0 = Edge->m_Start0; module->CalculateBoundingBox(); - DrawPanel->SetMouseCapture( ShowNewEdgeModule, Abort_Move_ModuleOutline ); + m_canvas->SetMouseCapture( ShowNewEdgeModule, Abort_Move_ModuleOutline ); } /* Segment creation in progress. * The ending coordinate is updated by the function @@ -350,18 +350,18 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* Edge, { if( Edge->m_Start0 != Edge->m_End0 ) { - Edge->Draw( DrawPanel, DC, GR_OR ); + Edge->Draw( m_canvas, DC, GR_OR ); EDGE_MODULE* newedge = new EDGE_MODULE( module ); newedge->Copy( Edge ); // insert _after_ Edge, which is the same as inserting before Edge->Next() module->m_Drawings.Insert( newedge, Edge->Next() ); - Edge->m_Flags = 0; + Edge->ClearFlags(); Edge = newedge; // point now new item - Edge->m_Flags = IS_NEW; + Edge->SetFlags( IS_NEW ); Edge->SetWidth( g_ModuleSegmentWidth ); Edge->SetStart( GetScreen()->GetCrossHairPosition() ); Edge->SetEnd( Edge->GetStart() ); @@ -398,7 +398,7 @@ void FOOTPRINT_EDIT_FRAME::End_Edge_Module( EDGE_MODULE* Edge ) if( Edge ) { - Edge->m_Flags = 0; + Edge->ClearFlags(); /* If last segment length is 0: remove it */ if( Edge->GetStart() == Edge->GetEnd() ) @@ -408,5 +408,5 @@ void FOOTPRINT_EDIT_FRAME::End_Edge_Module( EDGE_MODULE* Edge ) Module->CalculateBoundingBox(); Module->m_LastEdit_Time = time( NULL ); OnModify(); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); } diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index c7a5b005de..f50e8e9a0e 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -62,10 +62,10 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) wxPoint pos; int itmp; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); MODULE* module; - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); wxGetMousePosition( &pos.x, &pos.y ); @@ -143,9 +143,9 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_CANCEL_CURRENT_COMMAND: - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { - DrawPanel->EndMouseCapture(); + m_canvas->EndMouseCapture(); } /* Should not be executed, just in case */ @@ -157,22 +157,22 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } if( GetToolId() == ID_NO_TOOL_SELECTED ) - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); else - SetCursor( DrawPanel->GetDefaultCursor() ); + SetCursor( m_canvas->GetDefaultCursor() ); break; default: // Finish (abort) the command - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_endMouseCaptureCallback( DrawPanel, &dc ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_endMouseCaptureCallback( m_canvas, &dc ); if( GetToolId() != id ) { if( m_lastDrawToolId != GetToolId() ) m_lastDrawToolId = GetToolId(); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } break; } @@ -213,14 +213,14 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PLACE_BLOCK: GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; HandleBlockPlace( &dc ); break; case ID_POPUP_COPY_BLOCK: GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; GetScreen()->m_BlockLocate.SetMessageBlock( this ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; HandleBlockPlace( &dc ); break; @@ -267,14 +267,14 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_CLOSE_CURRENT_TOOL: - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_POPUP_CANCEL_CURRENT_COMMAND: break; case ID_POPUP_PCB_END_LINE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // EndSegment(&dc); break; @@ -283,7 +283,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( GetCurItem() == NULL ) break; Edit_Track_Width( &dc, (TRACK*) GetCurItem() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); OnModify(); break; @@ -291,7 +291,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( GetCurItem() == NULL ) break; Edit_TrackSegm_Width( &dc, (TRACK*) GetCurItem() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); OnModify(); break; @@ -309,20 +309,22 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } } - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_END_TRACK: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); End_Route( (TRACK*) GetCurItem(), &dc ); break; case ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE: - DrawPanel->MoveCursorToCrossHair(); - if( GetCurItem()->m_Flags & IS_DRAGGED ) + m_canvas->MoveCursorToCrossHair(); + + if( GetCurItem()->IsDragging() ) { PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc ); } + break; case ID_POPUP_PCB_SWITCH_TRACK_POSTURE: @@ -330,13 +332,13 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) * switch from _/ to -\ . * If a track is in progress, it will be redrawn */ - if( DrawPanel->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) - ShowNewTrackWhenMovingCursor( DrawPanel, &dc, wxDefaultPosition, false ); + if( m_canvas->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( m_canvas, &dc, wxDefaultPosition, false ); g_Alternate_Track_Posture = !g_Alternate_Track_Posture; - if( DrawPanel->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) - ShowNewTrackWhenMovingCursor( DrawPanel, &dc, wxDefaultPosition, false ); + if( m_canvas->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( m_canvas, &dc, wxDefaultPosition, false ); break; @@ -345,8 +347,9 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_PLACE_VIA: - DrawPanel->MoveCursorToCrossHair(); - if( GetCurItem()->m_Flags & IS_DRAGGED ) + m_canvas->MoveCursorToCrossHair(); + + if( GetCurItem()->IsDragging() ) { PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc ); } @@ -362,7 +365,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) GetBoard()->GetDesignSettings().m_CurrentViaType = v_type; if( DisplayOpt.ContrastModeDisplay ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; @@ -370,7 +373,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( GetCurItem() == NULL ) break; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SetCurItem( Delete_Segment( &dc, (TRACK*) GetCurItem() ) ); OnModify(); break; @@ -378,14 +381,14 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_DELETE_TRACK: if( GetCurItem() == NULL ) break; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Delete_Track( &dc, (TRACK*) GetCurItem() ); SetCurItem( NULL ); OnModify(); break; case ID_POPUP_PCB_DELETE_TRACKNET: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Delete_net( &dc, (TRACK*) GetCurItem() ); SetCurItem( NULL ); OnModify(); @@ -419,7 +422,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_DELETE_ZONE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( GetCurItem() == NULL ) break; @@ -441,20 +444,20 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE: - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_AutoPAN_Request = true; Add_Similar_Zone( &dc, (ZONE_CONTAINER*) GetCurItem() ); break; case ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE: - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_AutoPAN_Request = true; Add_Zone_Cutout( &dc, (ZONE_CONTAINER*) GetCurItem() ); break; case ID_POPUP_PCB_DELETE_ZONE_CONTAINER: case ID_POPUP_PCB_DELETE_ZONE_CUTOUT: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); { int netcode = ( (ZONE_CONTAINER*) GetCurItem() )->GetNet(); Delete_Zone_Contour( &dc, (ZONE_CONTAINER*) GetCurItem() ); @@ -471,34 +474,34 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_MOVE_ZONE_CORNER: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Start_Move_Zone_Corner( &dc, zone_cont, zone_cont->m_CornerSelection, false ); break; } case ID_POPUP_PCB_DRAG_ZONE_OUTLINE_SEGMENT: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Start_Move_Zone_Drag_Outline_Edge( &dc, zone_cont, zone_cont->m_CornerSelection ); break; } case ID_POPUP_PCB_MOVE_ZONE_OUTLINES: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Start_Move_Zone_Outlines( &dc, zone_cont ); break; } case ID_POPUP_PCB_ADD_ZONE_CORNER: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); wxPoint pos = GetScreen()->GetCrossHairPosition(); @@ -506,11 +509,11 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) * and zone_cont->m_CornerSelection+1 * and start move the new corner */ - zone_cont->Draw( DrawPanel, &dc, GR_XOR ); + zone_cont->Draw( m_canvas, &dc, GR_XOR ); zone_cont->m_Poly->InsertCorner( zone_cont->m_CornerSelection, pos.x, pos.y ); zone_cont->m_CornerSelection++; - zone_cont->Draw( DrawPanel, &dc, GR_XOR ); - DrawPanel->m_AutoPAN_Request = true; + zone_cont->Draw( m_canvas, &dc, GR_XOR ); + m_canvas->m_AutoPAN_Request = true; Start_Move_Zone_Corner( &dc, zone_cont, zone_cont->m_CornerSelection, true ); break; } @@ -518,17 +521,17 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_PLACE_ZONE_OUTLINES: case ID_POPUP_PCB_PLACE_ZONE_CORNER: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); End_Move_Zone_Corner_Or_Outlines( &dc, zone_cont ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; break; } case ID_POPUP_PCB_FILL_ALL_ZONES: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Fill_All_Zones( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); GetBoard()->DisplayInfo( this ); break; @@ -540,7 +543,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) TestNetConnection( NULL, zone_container->GetNet() ); OnModify(); GetBoard()->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } SetCurItem( NULL ); break; @@ -560,20 +563,20 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) TestForActiveLinksInRatsnest( 0 ); // Recalculate the active ratsnest, i.e. the unconnected links OnModify(); GetBoard()->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_FILL_ZONE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Fill_Zone( (ZONE_CONTAINER*) GetCurItem() ); TestNetConnection( NULL, ( (ZONE_CONTAINER*) GetCurItem() )->GetNet() ); GetBoard()->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_MOVE_TEXTEPCB_REQUEST: StartMoveTextePcb( (TEXTE_PCB*) GetCurItem(), &dc ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; break; case ID_POPUP_PCB_DRAG_MODULE_REQUEST: @@ -606,7 +609,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SendMessageToEESCHEMA( module ); GetScreen()->SetCrossHairPosition( module->m_Pos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMove_Module( module, &dc ); break; @@ -627,12 +630,12 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } SendMessageToEESCHEMA( module ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMove_Module( module, &dc ); break; case ID_POPUP_PCB_DELETE_MODULE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // If the current Item is a pad, text module ...: Get its parent if( GetCurItem()->Type() != PCB_MODULE_T ) @@ -660,7 +663,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // If the current Item is a pad, text module ...: Get its parent if( GetCurItem()->Type() != PCB_MODULE_T ) @@ -681,14 +684,14 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } /* This is a simple rotation, no other editing in progress */ - if( !(GetCurItem()->m_Flags & IS_MOVED) ) + if( !GetCurItem()->IsMoving() ) SaveCopyInUndoList(GetCurItem(), UR_ROTATED, ((MODULE*)GetCurItem())->m_Pos); Rotate_Module( &dc, (MODULE*) GetCurItem(), g_RotationAngle, true ); break; case ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // If the current Item is a pad, text module ...: Get its parent if( GetCurItem()->Type() != PCB_MODULE_T ) @@ -709,7 +712,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } /* This is a simple rotation, no other editing in progress */ - if( !(GetCurItem()->m_Flags & IS_MOVED) ) + if( !GetCurItem()->IsMoving() ) SaveCopyInUndoList( GetCurItem(), UR_ROTATED_CLOCKWISE, ((MODULE*)GetCurItem())->m_Pos ); @@ -717,7 +720,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_CHANGE_SIDE_MODULE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // If the current Item is a pad, text module ...: Get its parent if( GetCurItem()->Type() != PCB_MODULE_T ) @@ -738,7 +741,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } /* This is a simple flip, no other editing in progress */ - if( !(GetCurItem()->m_Flags & IS_MOVED) ) + if( !GetCurItem()->IsMoving() ) SaveCopyInUndoList(GetCurItem(), UR_FLIPPED, ((MODULE*)GetCurItem())->m_Pos); Change_Side_Module( (MODULE*) GetCurItem(), &dc ); @@ -754,7 +757,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; InstallModuleOptionsFrame( (MODULE*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DRAG_PAD_REQUEST: @@ -773,7 +776,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } g_Drag_Pistes_On = true; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMovePad( (D_PAD*) GetCurItem(), &dc ); break; @@ -793,28 +796,28 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } g_Drag_Pistes_On = false; - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMovePad( (D_PAD*) GetCurItem(), &dc ); break; case ID_POPUP_PCB_EDIT_PAD: InstallPadOptionsFrame( (D_PAD*) GetCurItem() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_IMPORT_PAD_SETTINGS: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); SaveCopyInUndoList( GetCurItem()->GetParent(), UR_CHANGED ); Import_Pad_Settings( (D_PAD*) GetCurItem(), true ); break; case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Global_Import_Pad_Settings( (D_PAD*) GetCurItem(), true ); break; case ID_POPUP_PCB_EXPORT_PAD_SETTINGS: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Export_Pad_Settings( (D_PAD*) GetCurItem() ); break; @@ -822,12 +825,12 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( GetCurItem()->GetParent(), UR_CHANGED ); DeletePad( (D_PAD*) GetCurItem() ); SetCurItem( NULL ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_EDIT_TEXTMODULE: InstallTextModOptionsFrame( (TEXTE_MODULE*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_RESET_TEXT_SIZE: @@ -835,20 +838,20 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMoveTexteModule( (TEXTE_MODULE*) GetCurItem(), &dc ); break; case ID_POPUP_PCB_ROTATE_TEXTMODULE: RotateTextModule( (TEXTE_MODULE*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DELETE_TEXTMODULE: DeleteTextModule( (TEXTE_MODULE*) GetCurItem() ); SetCurItem( NULL ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_SELECT_LAYER: @@ -857,7 +860,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( itmp >= 0 ) setActiveLayer( itmp ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR: @@ -870,7 +873,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( itmp >= 0 ) setActiveLayer( itmp ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_SELECT_CU_LAYER: @@ -883,57 +886,57 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_SELECT_LAYER_PAIR: SelectLayerPair(); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_TOOLBARH_PCB_SELECT_LAYER: setActiveLayer( (size_t) m_SelLayerBox->GetLayerSelection()); if( DisplayOpt.ContrastModeDisplay ) - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); break; case ID_POPUP_PCB_EDIT_TEXTEPCB: InstallTextPCBOptionsFrame( (TEXTE_PCB*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_ROTATE_TEXTEPCB: Rotate_Texte_Pcb( (TEXTE_PCB*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DELETE_TEXTEPCB: Delete_Texte_Pcb( (TEXTE_PCB*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_MOVE_MIRE_REQUEST: BeginMoveTarget( (PCB_TARGET*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_EDIT_MIRE: ShowTargetOptionsDialog( (PCB_TARGET*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DELETE_MIRE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); DeleteTarget( (PCB_TARGET*) GetCurItem(), &dc ); SetCurItem( NULL ); break; case ID_POPUP_PCB_DELETE_DIMENSION: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); DeleteDimension( (DIMENSION*) GetCurItem(), &dc ); SetCurItem( NULL ); break; case ID_POPUP_PCB_EDIT_DIMENSION: ShowDimensionPropertyDialog( (DIMENSION*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_MOVE_TEXT_DIMENSION_REQUEST: @@ -942,43 +945,43 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_DELETE_DRAWING: Delete_Segment_Edge( (DRAWSEGMENT*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DELETE_MARKER: RemoveStruct( GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_GETINFO_MARKER: if( GetCurItem() && GetCurItem()->Type() == PCB_MARKER_T ) ( (MARKER_PCB*) GetCurItem() )->DisplayMarkerInfo( this ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_DELETE_DRAWING_LAYER: - if( GetCurItem()->m_Flags != 0 ) + if( GetCurItem()->GetFlags() != 0 ) break; Delete_Drawings_All_Layer( GetCurItem()->GetLayer() ); SetCurItem( NULL ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->Refresh(); + m_canvas->MoveCursorToCrossHair(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_EDIT_DRAWING: InstallGraphicItemPropertiesDialog( (DRAWSEGMENT*) GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_MOVE_DRAWING_REQUEST: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Start_Move_DrawItem( (DRAWSEGMENT*) GetCurItem(), &dc ); break; case ID_POPUP_PCB_STOP_CURRENT_DRAWING: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( GetCurItem() && (GetCurItem()->IsNew()) ) { @@ -989,7 +992,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( GetCurItem() && (GetCurItem()->IsNew()) ) { @@ -997,11 +1000,11 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( NULL ); } - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; break; case ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( GetCurItem() && (GetCurItem()->IsNew()) ) { @@ -1013,32 +1016,32 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_MOVE_TRACK_SEGMENT: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMoveOneNodeOrSegment( (TRACK*) GetScreen()->GetCurItem(), &dc, id ); break; case ID_POPUP_PCB_DRAG_TRACK_SEGMENT: case ID_POPUP_PCB_MOVE_TRACK_NODE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMoveOneNodeOrSegment( (TRACK*) GetScreen()->GetCurItem(), &dc, id ); break; case ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Start_DragTrackSegmentAndKeepSlope( (TRACK*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_PCB_BREAK_TRACK: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); { TRACK* track = (TRACK*) GetScreen()->GetCurItem(); wxPoint pos = GetScreen()->GetCrossHairPosition(); - track->Draw( DrawPanel, &dc, GR_XOR ); + track->Draw( m_canvas, &dc, GR_XOR ); PICKED_ITEMS_LIST itemsListPicker; TRACK* newtrack = GetBoard()->CreateLockPoint( pos, track, &itemsListPicker ); SaveCopyInUndoList( itemsListPicker, UR_UNSPECIFIED ); - track->Draw( DrawPanel, &dc, GR_XOR ); - newtrack->Draw( DrawPanel, &dc, GR_XOR ); + track->Draw( m_canvas, &dc, GR_XOR ); + newtrack->Draw( m_canvas, &dc, GR_XOR ); /* compute the new ratsnest, because connectivity could change */ TestNetConnection( &dc, track->GetNet() ); } @@ -1088,8 +1091,8 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; } - DrawPanel->CrossHairOn( &dc ); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->CrossHairOn( &dc ); + m_canvas->m_IgnoreMouseEvents = false; } @@ -1152,7 +1155,7 @@ void PCB_EDIT_FRAME::RemoveStruct( BOARD_ITEM* Item, wxDC* DC ) if( Item == GetCurItem() ) SetCurItem( NULL ); - ( (MARKER_PCB*) Item )->Draw( DrawPanel, DC, GR_XOR ); + ( (MARKER_PCB*) Item )->Draw( m_canvas, DC, GR_XOR ); // delete the marker, and free memory. Don't use undo stack. GetBoard()->Delete( Item ); @@ -1239,7 +1242,7 @@ void PCB_EDIT_FRAME::SwitchLayer( wxDC* DC, int layer ) if( Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC ) ) { if( DisplayOpt.ContrastModeDisplay ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } // if the via was allowed by DRC, then the layer swap has already @@ -1258,7 +1261,7 @@ void PCB_EDIT_FRAME::SwitchLayer( wxDC* DC, int layer ) setActiveLayer( layer ); if( DisplayOpt.ContrastModeDisplay ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -1269,15 +1272,15 @@ void PCB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) if( GetToolId() == id ) return; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); // Stop the current command and deselect the current tool. - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); switch( id ) { case ID_NO_TOOL_SELECTED: - SetToolID( id, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( id, m_canvas->GetDefaultCursor(), wxEmptyString ); break; case ID_TRACK_BUTT: diff --git a/pcbnew/edit_pcb_text.cpp b/pcbnew/edit_pcb_text.cpp index f9c8a25815..7cead2ac97 100644 --- a/pcbnew/edit_pcb_text.cpp +++ b/pcbnew/edit_pcb_text.cpp @@ -51,7 +51,7 @@ void Abort_Edit_Pcb_Text( EDA_DRAW_PANEL* Panel, wxDC* DC ) SwapData(TextePcb, &s_TextCopy); - TextePcb->m_Flags = 0; + TextePcb->ClearFlags(); TextePcb->Draw( Panel, DC, GR_OR ); } @@ -61,24 +61,26 @@ void Abort_Edit_Pcb_Text( EDA_DRAW_PANEL* Panel, wxDC* DC ) */ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) { - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); if( TextePcb == NULL ) return; - TextePcb->Draw( DrawPanel, DC, GR_OR ); + TextePcb->Draw( m_canvas, DC, GR_OR ); OnModify(); if( TextePcb->IsNew() ) // If new: prepare undo command { SaveCopyInUndoList( TextePcb, UR_NEW ); - TextePcb->m_Flags = 0; + TextePcb->ClearFlags(); return; } - if( TextePcb->m_Flags == IS_MOVED ) // If moved only + if( TextePcb->IsMoving() ) // If moved only + { SaveCopyInUndoList( TextePcb, UR_MOVED, TextePcb->m_Pos - s_TextCopy.m_Pos ); + } else { // Restore initial params @@ -89,7 +91,7 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) // Restore current params } - TextePcb->m_Flags = 0; + TextePcb->ClearFlags(); } @@ -104,16 +106,16 @@ void PCB_EDIT_FRAME::StartMoveTextePcb( TEXTE_PCB* TextePcb, wxDC* DC ) if( !TextePcb->IsNew() ) s_TextCopy.Copy( TextePcb ); - TextePcb->Draw( DrawPanel, DC, GR_XOR ); - TextePcb->m_Flags |= IS_MOVED; + TextePcb->Draw( m_canvas, DC, GR_XOR ); + TextePcb->SetFlags( IS_MOVED ); TextePcb->DisplayInfo( this ); GetScreen()->SetCrossHairPosition( TextePcb->GetPosition() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); - DrawPanel->SetMouseCapture( Move_Texte_Pcb, Abort_Edit_Pcb_Text ); + m_canvas->SetMouseCapture( Move_Texte_Pcb, Abort_Edit_Pcb_Text ); SetCurItem( TextePcb ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -140,11 +142,11 @@ void PCB_EDIT_FRAME::Delete_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) if( TextePcb == NULL ) return; - TextePcb->Draw( DrawPanel, DC, GR_XOR ); + TextePcb->Draw( m_canvas, DC, GR_XOR ); SaveCopyInUndoList( TextePcb, UR_DELETED ); TextePcb->UnLink(); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); } @@ -159,7 +161,7 @@ TEXTE_PCB* PCB_EDIT_FRAME::Create_Texte_Pcb( wxDC* DC ) GetBoard()->Add( TextePcb ); /* Update text properties. */ - TextePcb->m_Flags = IS_NEW; + TextePcb->SetFlags( IS_NEW ); TextePcb->SetLayer( ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer ); TextePcb->m_Mirror = false; @@ -195,19 +197,19 @@ void PCB_EDIT_FRAME::Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) return; /* Erase previous text. */ - TextePcb->Draw( DrawPanel, DC, GR_XOR ); + TextePcb->Draw( m_canvas, DC, GR_XOR ); TextePcb->m_Orient += angle; NORMALIZE_ANGLE_POS( TextePcb->m_Orient ); /* Redraw text in new position. */ - TextePcb->Draw( DrawPanel, DC, drawmode ); + TextePcb->Draw( m_canvas, DC, drawmode ); TextePcb->DisplayInfo( this ); - if( TextePcb->m_Flags == 0 ) // i.e. not edited, or moved + if( TextePcb->GetFlags() == 0 ) // i.e. not edited, or moved SaveCopyInUndoList( TextePcb, UR_ROTATED, TextePcb->m_Pos ); else // set flag edit, to show it was a complex command - TextePcb->m_Flags |= IN_EDIT; + TextePcb->SetFlags( IN_EDIT ); OnModify(); } diff --git a/pcbnew/edit_track_width.cpp b/pcbnew/edit_track_width.cpp index 23bb72ad57..2c71502384 100644 --- a/pcbnew/edit_track_width.cpp +++ b/pcbnew/edit_track_width.cpp @@ -134,7 +134,7 @@ void PCB_EDIT_FRAME::Edit_TrackSegm_Width( wxDC* aDC, TRACK* aTrackItem ) PICKED_ITEMS_LIST itemsListPicker; bool change = SetTrackSegmentWidth( aTrackItem, &itemsListPicker, false ); - if( change == 0 || aTrackItem->m_Flags ) + if( change == 0 || aTrackItem->GetFlags() ) return; // No change // The segment has changed: redraw it and save it in undo list @@ -142,10 +142,10 @@ void PCB_EDIT_FRAME::Edit_TrackSegm_Width( wxDC* aDC, TRACK* aTrackItem ) { TRACK* oldsegm = (TRACK*) itemsListPicker.GetPickedItemLink( 0 ); wxASSERT( oldsegm ); - DrawPanel->CrossHairOff( aDC ); // Erase cursor shape - oldsegm->Draw( DrawPanel, aDC, GR_XOR ); // Erase old track shape - aTrackItem->Draw( DrawPanel, aDC, GR_OR ); // Display new track shape - DrawPanel->CrossHairOn( aDC ); // Display cursor shape + m_canvas->CrossHairOff( aDC ); // Erase cursor shape + oldsegm->Draw( m_canvas, aDC, GR_XOR ); // Erase old track shape + aTrackItem->Draw( m_canvas, aDC, GR_OR ); // Display new track shape + m_canvas->CrossHairOn( aDC ); // Display cursor shape } SaveCopyInUndoList( itemsListPicker, UR_CHANGED ); @@ -187,17 +187,17 @@ void PCB_EDIT_FRAME::Edit_Track_Width( wxDC* aDC, TRACK* aTrackSegment ) // Some segment have changed: redraw them and save in undo list if( aDC ) { - DrawPanel->CrossHairOff( aDC ); // Erase cursor shape + m_canvas->CrossHairOff( aDC ); // Erase cursor shape for( unsigned ii = 0; ii < itemsListPicker.GetCount(); ii++ ) { TRACK* segm = (TRACK*) itemsListPicker.GetPickedItemLink( ii ); - segm->Draw( DrawPanel, aDC, GR_XOR ); // Erase old track shape + segm->Draw( m_canvas, aDC, GR_XOR ); // Erase old track shape segm = (TRACK*) itemsListPicker.GetPickedItem( ii ); - segm->Draw( DrawPanel, aDC, GR_OR ); // Display new track shape + segm->Draw( m_canvas, aDC, GR_OR ); // Display new track shape } - DrawPanel->CrossHairOn( aDC ); // Display cursor shape + m_canvas->CrossHairOn( aDC ); // Display cursor shape } SaveCopyInUndoList( itemsListPicker, UR_CHANGED ); diff --git a/pcbnew/editedge.cpp b/pcbnew/editedge.cpp index 584fec62db..c7cbd3ebb4 100644 --- a/pcbnew/editedge.cpp +++ b/pcbnew/editedge.cpp @@ -32,13 +32,13 @@ void PCB_EDIT_FRAME::Start_Move_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC ) if( drawitem == NULL ) return; - drawitem->Draw( DrawPanel, DC, GR_XOR ); - drawitem->m_Flags |= IS_MOVED; + drawitem->Draw( m_canvas, DC, GR_XOR ); + drawitem->SetFlags( IS_MOVED ); s_InitialPosition = s_LastPosition = GetScreen()->GetCrossHairPosition(); drawitem->DisplayInfo( this ); - DrawPanel->SetMouseCapture( Move_Segment, Abort_EditEdge ); + m_canvas->SetMouseCapture( Move_Segment, Abort_EditEdge ); SetCurItem( drawitem ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -50,10 +50,10 @@ void PCB_EDIT_FRAME::Place_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC ) if( drawitem == NULL ) return; - drawitem->m_Flags = 0; + drawitem->ClearFlags(); SaveCopyInUndoList(drawitem, UR_MOVED, s_LastPosition - s_InitialPosition); - drawitem->Draw( DrawPanel, DC, GR_OR ); - DrawPanel->SetMouseCapture( NULL, NULL ); + drawitem->Draw( m_canvas, DC, GR_OR ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); OnModify(); } @@ -96,7 +96,7 @@ void PCB_EDIT_FRAME::Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC ) { /* Delete current segment. */ DisplayOpt.DisplayDrawItems = SKETCH; - Segment->Draw( DrawPanel, DC, GR_XOR ); + Segment->Draw( m_canvas, DC, GR_XOR ); PtStruct = Segment->Back(); Segment ->DeleteStructure(); @@ -106,10 +106,10 @@ void PCB_EDIT_FRAME::Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC ) DisplayOpt.DisplayDrawItems = track_fill_copy; SetCurItem( NULL ); } - else if( Segment->m_Flags == 0 ) + else if( Segment->GetFlags() == 0 ) { - Segment->Draw( DrawPanel, DC, GR_XOR ); - Segment->m_Flags = 0; + Segment->Draw( m_canvas, DC, GR_XOR ); + Segment->ClearFlags(); SaveCopyInUndoList(Segment, UR_DELETED); Segment->UnLink(); SetCurItem( NULL ); @@ -195,7 +195,7 @@ static void Abort_EditEdge( EDA_DRAW_PANEL* Panel, wxDC* DC ) Panel->GetScreen()->SetCrossHairPosition( s_InitialPosition ); Panel->m_mouseCaptureCallback( Panel, DC, wxDefaultPosition, true ); Panel->GetScreen()->SetCrossHairPosition( pos ); - Segment->m_Flags = 0; + Segment->ClearFlags(); Segment->Draw( Panel, DC, GR_OR ); } @@ -221,14 +221,14 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape, if( Segment == NULL ) /* Create new trace. */ { SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) ); - Segment->m_Flags = IS_NEW; + Segment->SetFlags( IS_NEW ); Segment->SetLayer( getActiveLayer() ); Segment->SetWidth( s_large ); Segment->SetShape( shape ); Segment->SetAngle( 900 ); Segment->SetStart( GetScreen()->GetCrossHairPosition() ); Segment->SetEnd( GetScreen()->GetCrossHairPosition() ); - DrawPanel->SetMouseCapture( DrawSegment, Abort_EditEdge ); + m_canvas->SetMouseCapture( DrawSegment, Abort_EditEdge ); } else /* The ending point ccordinate Segment->m_End was updated by he function * DrawSegment() called on a move mouse event @@ -243,15 +243,15 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape, GetBoard()->Add( Segment ); OnModify(); - Segment->m_Flags = 0; + Segment->ClearFlags(); - Segment->Draw( DrawPanel, DC, GR_OR ); + Segment->Draw( m_canvas, DC, GR_OR ); DrawItem = Segment; SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) ); - Segment->m_Flags = IS_NEW; + Segment->SetFlags( IS_NEW ); Segment->SetLayer( DrawItem->GetLayer() ); Segment->SetWidth( s_large ); Segment->SetShape( DrawItem->GetShape() ); @@ -259,7 +259,7 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape, Segment->SetAngle( DrawItem->GetAngle() ); Segment->SetStart( DrawItem->GetEnd() ); Segment->SetEnd( DrawItem->GetEnd() ); - DrawSegment( DrawPanel, DC, wxDefaultPosition, false ); + DrawSegment( m_canvas, DC, wxDefaultPosition, false ); } else { @@ -278,7 +278,7 @@ void PCB_EDIT_FRAME::End_Edge( DRAWSEGMENT* Segment, wxDC* DC ) if( Segment == NULL ) return; - Segment->Draw( DrawPanel, DC, GR_OR ); + Segment->Draw( m_canvas, DC, GR_OR ); // Delete if segment length is zero. if( Segment->GetStart() == Segment->GetEnd() ) @@ -287,13 +287,13 @@ void PCB_EDIT_FRAME::End_Edge( DRAWSEGMENT* Segment, wxDC* DC ) } else { - Segment->m_Flags = 0; + Segment->ClearFlags(); GetBoard()->Add( Segment ); OnModify(); SaveCopyInUndoList( Segment, UR_NEW ); } - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); } diff --git a/pcbnew/editmod.cpp b/pcbnew/editmod.cpp index c642a9c646..c436879eae 100644 --- a/pcbnew/editmod.cpp +++ b/pcbnew/editmod.cpp @@ -147,7 +147,7 @@ void FOOTPRINT_EDIT_FRAME::RemoveStruct( EDA_ITEM* Item ) case PCB_MODULE_EDGE_T: Delete_Edge_Module( (EDGE_MODULE*) Item ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case PCB_MODULE_T: diff --git a/pcbnew/editrack-part2.cpp b/pcbnew/editrack-part2.cpp index 60fdd5af4a..dadf5ec6d1 100644 --- a/pcbnew/editrack-part2.cpp +++ b/pcbnew/editrack-part2.cpp @@ -92,11 +92,11 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC ) itmp = g_CurrentTrackList.GetCount(); Begin_Route( g_CurrentTrackSegment, DC ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); /* create the via */ SEGVIA* via = new SEGVIA( GetBoard() ); - via->m_Flags = IS_NEW; + via->SetFlags( IS_NEW ); via->m_Shape = GetBoard()->GetDesignSettings().m_CurrentViaType; via->m_Width = GetBoard()->GetCurrentViaSize(); via->SetNet( GetBoard()->GetHighLightNetCode() ); @@ -153,7 +153,7 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC ) /* DRC fault: the Via cannot be placed here ... */ delete via; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); // delete the track(s) added in Begin_Route() while( g_CurrentTrackList.GetCount() > itmp ) @@ -207,7 +207,7 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC ) g_CurrentTrackList.PushBack( g_CurrentTrackSegment->Copy() ); } - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); via->DisplayInfo( this ); UpdateStatusBar(); @@ -253,7 +253,7 @@ void PCB_EDIT_FRAME::Show_1_Ratsnest( EDA_ITEM* item, wxDC* DC ) if( ( net->m_Status & CH_ACTIF ) == 0 ) continue; - net->Draw( DrawPanel, DC, GR_XOR, wxPoint( 0, 0 ) ); + net->Draw( m_canvas, DC, GR_XOR, wxPoint( 0, 0 ) ); } } } @@ -290,7 +290,7 @@ void PCB_EDIT_FRAME::Show_1_Ratsnest( EDA_ITEM* item, wxDC* DC ) if( (net->m_Status & CH_ACTIF) == 0 ) continue; - net->Draw( DrawPanel, DC, GR_XOR, wxPoint( 0, 0 ) ); + net->Draw( m_canvas, DC, GR_XOR, wxPoint( 0, 0 ) ); } } } @@ -320,7 +320,7 @@ void PCB_EDIT_FRAME::HighlightUnconnectedPads( wxDC* DC ) if( (net->m_Status & CH_ACTIF) == 0 ) continue; - net->m_PadStart->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); - net->m_PadEnd->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); + net->m_PadStart->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); + net->m_PadEnd->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); } } diff --git a/pcbnew/editrack.cpp b/pcbnew/editrack.cpp index b625a2bb8a..21803f750f 100644 --- a/pcbnew/editrack.cpp +++ b/pcbnew/editrack.cpp @@ -102,7 +102,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) if( aTrack == NULL ) /* Starting a new track segment */ { - DrawPanel->SetMouseCapture( ShowNewTrackWhenMovingCursor, Abort_Create_Track ); + m_canvas->SetMouseCapture( ShowNewTrackWhenMovingCursor, Abort_Create_Track ); // Prepare the undo command info s_ItemsListPicker.ClearListAndDeleteItems(); // Should not be necessary, but... @@ -114,7 +114,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) HighLight( aDC ); g_CurrentTrackList.PushBack( new TRACK( GetBoard() ) ); - g_CurrentTrackSegment->m_Flags = IS_NEW; + g_CurrentTrackSegment->SetFlags( IS_NEW ); GetBoard()->SetHighLightNet( 0 ); @@ -157,7 +157,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) D( g_CurrentTrackList.VerifyListIntegrity(); ); GetBoard()->HighLightON(); - GetBoard()->DrawHighLight( DrawPanel, aDC, GetBoard()->GetHighLightNetCode() ); + GetBoard()->DrawHighLight( m_canvas, aDC, GetBoard()->GetHighLightNetCode() ); // Display info about track Net class, and init track and vias sizes: g_CurrentTrackSegment->SetNet( GetBoard()->GetHighLightNetCode() ); @@ -176,7 +176,12 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) g_CurrentTrackSegment->m_End = pos; if( pad ) + { g_CurrentTrackSegment->m_PadsConnected.push_back( pad ); + // Useful to display track length, if the pad has a die length: + g_CurrentTrackSegment->SetState( BEGIN_ONPAD, ON ); + g_CurrentTrackSegment->start = pad; + } if( g_TwoSegmentTrackBuild ) { @@ -195,7 +200,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) g_CurrentTrackSegment->DisplayInfoBase( this ); SetCurItem( g_CurrentTrackSegment, false ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, wxDefaultPosition, false ); if( Drc_On ) { @@ -240,7 +245,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) /* Erase old track on screen */ D( g_CurrentTrackList.VerifyListIntegrity(); ); - ShowNewTrackWhenMovingCursor( DrawPanel, aDC, wxDefaultPosition, false ); + ShowNewTrackWhenMovingCursor( m_canvas, aDC, wxDefaultPosition, false ); D( g_CurrentTrackList.VerifyListIntegrity(); ); @@ -251,7 +256,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) TRACK* newTrack = g_CurrentTrackSegment->Copy(); g_CurrentTrackList.PushBack( newTrack ); - newTrack->m_Flags = IS_NEW; + newTrack->SetFlags( IS_NEW ); newTrack->SetState( BEGIN_ONPAD | END_ONPAD, OFF ); @@ -277,7 +282,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC ) D( g_CurrentTrackList.VerifyListIntegrity(); ); /* Show the new position */ - ShowNewTrackWhenMovingCursor( DrawPanel, aDC, wxDefaultPosition, false ); + ShowNewTrackWhenMovingCursor( m_canvas, aDC, wxDefaultPosition, false ); } } @@ -419,8 +424,8 @@ bool PCB_EDIT_FRAME::End_Route( TRACK* aTrack, wxDC* aDC ) if( Begin_Route( aTrack, aDC ) == NULL ) return false; - ShowNewTrackWhenMovingCursor( DrawPanel, aDC, wxDefaultPosition, true ); - ShowNewTrackWhenMovingCursor( DrawPanel, aDC, wxDefaultPosition, false ); + ShowNewTrackWhenMovingCursor( m_canvas, aDC, wxDefaultPosition, true ); + ShowNewTrackWhenMovingCursor( m_canvas, aDC, wxDefaultPosition, false ); TraceAirWiresToTargets( aDC ); /* cleanup @@ -489,7 +494,7 @@ bool PCB_EDIT_FRAME::End_Route( TRACK* aTrack, wxDC* aDC ) for( track = firstTrack; track && i < newCount; ++i, track = track->Next() ) { - track->m_Flags = 0; + track->ClearFlags(); track->SetState( BUSY, OFF ); } @@ -508,7 +513,7 @@ bool PCB_EDIT_FRAME::End_Route( TRACK* aTrack, wxDC* aDC ) GetBoard()->DisplayInfo( this ); // Redraw the entire new track. - DrawTraces( DrawPanel, aDC, firstTrack, newCount, GR_OR ); + DrawTraces( m_canvas, aDC, firstTrack, newCount, GR_OR ); } wxASSERT( g_FirstTrackSegment == NULL ); @@ -521,9 +526,9 @@ bool PCB_EDIT_FRAME::End_Route( TRACK* aTrack, wxDC* aDC ) GetBoard()->PopHighLight(); if( GetBoard()->IsHighLightNetON() ) - GetBoard()->DrawHighLight( DrawPanel, aDC, GetBoard()->GetHighLightNetCode() ); + GetBoard()->DrawHighLight( m_canvas, aDC, GetBoard()->GetHighLightNetCode() ); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); return true; diff --git a/pcbnew/edtxtmod.cpp b/pcbnew/edtxtmod.cpp index 1a3218af61..09d0dcf8af 100644 --- a/pcbnew/edtxtmod.cpp +++ b/pcbnew/edtxtmod.cpp @@ -48,7 +48,7 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC ) if( Module ) Module->m_Drawings.PushFront( Text ); - Text->m_Flags = IS_NEW; + Text->SetFlags( IS_NEW ); Text->m_Text = wxT( "text" ); @@ -60,12 +60,12 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC ) Text->SetLocalCoord(); InstallTextModOptionsFrame( Text, NULL ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); - Text->m_Flags = 0; + Text->ClearFlags(); if( DC ) - Text->Draw( DrawPanel, DC, GR_OR ); + Text->Draw( m_canvas, DC, GR_OR ); Text->DisplayInfo( this ); @@ -82,21 +82,21 @@ void PCB_BASE_FRAME::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ) MODULE* module = (MODULE*) Text->GetParent(); - if( module && module->m_Flags == 0 && Text->m_Flags == 0 ) // prepare undo command + if( module && module->GetFlags() == 0 && Text->GetFlags() == 0 ) // prepare undo command { if( this->m_Ident == PCB_FRAME ) SaveCopyInUndoList( module, UR_CHANGED ); } // we expect MoveVector to be (0,0) if there is no move in progress - Text->Draw( DrawPanel, DC, GR_XOR, MoveVector ); + Text->Draw( m_canvas, DC, GR_XOR, MoveVector ); Text->m_Orient += 900; while( Text->m_Orient >= 1800 ) Text->m_Orient -= 1800; - Text->Draw( DrawPanel, DC, GR_XOR, MoveVector ); + Text->Draw( m_canvas, DC, GR_XOR, MoveVector ); Text->DisplayInfo( this ); if( module ) @@ -120,7 +120,7 @@ void PCB_BASE_FRAME::DeleteTextModule( TEXTE_MODULE* Text ) if( Text->GetType() == TEXT_is_DIVERS ) { - DrawPanel->RefreshDrawingRect( Text->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( Text->GetBoundingBox() ); Text->DeleteStructure(); OnModify(); Module->m_LastEdit_Time = time( NULL ); @@ -151,7 +151,7 @@ static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC ) // If the text was moved (the move does not change internal data) // it could be rotated while moving. So set old value for orientation - if( (Text->m_Flags & IS_MOVED) ) + if( Text->IsMoving() ) Text->m_Orient = TextInitialOrientation; /* Redraw the text */ @@ -160,8 +160,8 @@ static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC ) // leave it at (0,0) so we can use it Rotate when not moving. MoveVector.x = MoveVector.y = 0; - Text->m_Flags = 0; - Module->m_Flags = 0; + Text->ClearFlags(); + Module->ClearFlags(); screen->SetCurItem( NULL ); } @@ -178,8 +178,8 @@ void PCB_BASE_FRAME::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC ) Module = (MODULE*) Text->GetParent(); - Text->m_Flags |= IS_MOVED; - Module->m_Flags |= IN_EDIT; + Text->SetFlags( IS_MOVED ); + Module->SetFlags( IN_EDIT ); MoveVector.x = MoveVector.y = 0; @@ -188,13 +188,13 @@ void PCB_BASE_FRAME::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC ) // Center cursor on initial position of text GetScreen()->SetCrossHairPosition( TextInitialPosition ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Text->DisplayInfo( this ); SetCurItem( Text ); - DrawPanel->SetMouseCapture( Show_MoveTexte_Module, AbortMoveTextModule ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, true ); + m_canvas->SetMouseCapture( Show_MoveTexte_Module, AbortMoveTextModule ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, true ); } @@ -204,8 +204,8 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ) { if( Text != NULL ) { - DrawPanel->RefreshDrawingRect( Text->GetBoundingBox() ); - Text->DrawUmbilical( DrawPanel, DC, GR_XOR, -MoveVector ); + m_canvas->RefreshDrawingRect( Text->GetBoundingBox() ); + Text->DrawUmbilical( m_canvas, DC, GR_XOR, -MoveVector ); /* Update the coordinates for anchor. */ MODULE* Module = (MODULE*) Text->GetParent(); @@ -227,13 +227,13 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ) wxPoint textRelPos = Text->m_Pos - Module->m_Pos; RotatePoint( &textRelPos, -Module->m_Orient ); Text->SetPos0( textRelPos ); - Text->m_Flags = 0; - Module->m_Flags = 0; + Text->ClearFlags(); + Module->ClearFlags(); Module->m_LastEdit_Time = time( NULL ); OnModify(); /* Redraw text. */ - DrawPanel->RefreshDrawingRect( Text->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( Text->GetBoundingBox() ); } else { @@ -244,7 +244,7 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ) // leave it at (0,0) so we can use it Rotate when not moving. MoveVector.x = MoveVector.y = 0; - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); } @@ -328,7 +328,7 @@ void PCB_BASE_FRAME::ResetTextSize( BOARD_ITEM* aItem, wxDC* aDC ) text->SetThickness( newThickness ); if( aDC ) - DrawPanel->Refresh(); + m_canvas->Refresh(); OnModify(); } @@ -433,7 +433,7 @@ void PCB_BASE_FRAME::ResetModuleTextSizes( int aType, wxDC* aDC ) } if( aDC ) - DrawPanel->Refresh(); + m_canvas->Refresh(); OnModify(); } diff --git a/pcbnew/event_handlers_tracks_vias_sizes.cpp b/pcbnew/event_handlers_tracks_vias_sizes.cpp index 5126756535..4e93e02048 100644 --- a/pcbnew/event_handlers_tracks_vias_sizes.cpp +++ b/pcbnew/event_handlers_tracks_vias_sizes.cpp @@ -30,7 +30,7 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event ) /* Note: none of these events require aborting the current command (if any) * (like move, edit or block command) * so we do not test for a current command in progress and call - * DrawPanel->m_endMouseCaptureCallback( DrawPanel, &dc ); + * m_canvas->m_endMouseCaptureCallback( m_canvas, &dc ); */ switch( id ) { @@ -46,7 +46,7 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event ) break; case ID_POPUP_PCB_SELECT_AUTO_WIDTH: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); GetBoard()->GetDesignSettings().m_UseConnectedTrackWidth = true; break; @@ -58,7 +58,7 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event ) case ID_POPUP_PCB_SELECT_WIDTH6: case ID_POPUP_PCB_SELECT_WIDTH7: case ID_POPUP_PCB_SELECT_WIDTH8: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); GetBoard()->GetDesignSettings().m_UseConnectedTrackWidth = false; ii = id - ID_POPUP_PCB_SELECT_WIDTH1; GetBoard()->m_TrackWidthSelector = ii; @@ -72,7 +72,7 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event ) case ID_POPUP_PCB_SELECT_VIASIZE6: case ID_POPUP_PCB_SELECT_VIASIZE7: case ID_POPUP_PCB_SELECT_VIASIZE8: // select the new current value for via size (via diameter) - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ii = id - ID_POPUP_PCB_SELECT_VIASIZE1; GetBoard()->m_ViaSizeSelector = ii; break; diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index 179061ccdd..a5e32a6a3d 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -62,7 +62,7 @@ void PCB_EDIT_FRAME::OnFileHistory( wxCommandEvent& event ) if( fn != wxEmptyString ) { - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); ::wxSetWorkingDirectory( ::wxPathOnly( fn ) ); LoadOnePcbFile( fn ); } @@ -77,9 +77,9 @@ void PCB_EDIT_FRAME::Files_io( wxCommandEvent& event ) // If an edition is in progress, stop it. // For something else than save, get rid of current tool. if( id == ID_SAVE_BOARD ) - DrawPanel->EndMouseCapture( -1, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( -1, m_canvas->GetDefaultCursor() ); else - DrawPanel->EndMouseCapture( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor() ); + m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); switch( id ) { @@ -299,10 +299,10 @@ this file again." ) ); } } catch( IO_ERROR ioe ) - { + {wxMessageBox("catch"); wxString msg = wxString::Format( _( "Error loading board.\n%s" ), ioe.errorText.GetData() ); - wxMessageBox( msg, _( "Open Board File" ), wxICON_ERROR ); + wxMessageBox( msg, _( "Open Board File" ), wxOK | wxICON_ERROR ); } if( !aAppend ) @@ -490,7 +490,7 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF { wxString msg = wxString::Format( _( "Error saving board.\n%s" ), ioe.errorText.GetData() ); - wxMessageBox( msg, _( "Save Board File" ), wxICON_ERROR ); + wxMessageBox( msg, _( "Save Board File" ), wxICON_ERROR | wxOK ); saveok = false; } diff --git a/pcbnew/find.cpp b/pcbnew/find.cpp index 0424a359d8..bc760e3fce 100644 --- a/pcbnew/find.cpp +++ b/pcbnew/find.cpp @@ -60,8 +60,7 @@ void WinEDA_PcbFindFrame::FindItem( wxCommandEvent& event ) s_OldStringFound = m_NewText->GetValue(); - m_Parent->DrawPanel->GetViewStart( &screen->m_StartVisu.x, - &screen->m_StartVisu.y ); + m_Parent->GetCanvas()->GetViewStart( &screen->m_StartVisu.x, &screen->m_StartVisu.y ); if( FindMarker ) { diff --git a/pcbnew/globaleditpad.cpp b/pcbnew/globaleditpad.cpp index 51c77339dc..6eec000c31 100644 --- a/pcbnew/globaleditpad.cpp +++ b/pcbnew/globaleditpad.cpp @@ -203,9 +203,9 @@ void PCB_BASE_FRAME::Global_Import_Pad_Settings( D_PAD* aPad, bool aDraw ) /* Erase module on screen */ if( aDraw ) { - Module->m_Flags |= DO_NOT_DRAW; - DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() ); - Module->m_Flags &= ~DO_NOT_DRAW; + Module->SetFlags( DO_NOT_DRAW ); + m_canvas->RefreshDrawingRect( Module->GetBoundingBox() ); + Module->ClearFlags( DO_NOT_DRAW ); } D_PAD* pt_pad = (D_PAD*) Module->m_Pads; @@ -279,7 +279,7 @@ void PCB_BASE_FRAME::Global_Import_Pad_Settings( D_PAD* aPad, bool aDraw ) Module->CalculateBoundingBox(); if( aDraw ) - DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( Module->GetBoundingBox() ); } OnModify(); diff --git a/pcbnew/gpcb_exchange.cpp b/pcbnew/gpcb_exchange.cpp index ad56e20662..b9b602b257 100644 --- a/pcbnew/gpcb_exchange.cpp +++ b/pcbnew/gpcb_exchange.cpp @@ -251,16 +251,17 @@ bool MODULE::Read_GPCB_Descr( const wxString& CmpFullFileName ) pos.y = wxRound( ibuf[idx+1] * conv_unit ); m_Reference->SetPos( pos ); m_Reference->SetPos0( pos ); - m_Reference->m_Orient = ibuf[idx+2] ? 900 : 0; + m_Reference->SetOrientation( ibuf[idx+2] ? 900 : 0 ); // Calculate size: default is 40 mils (400 pcb units) // real size is: default * ibuf[idx+3] / 100 (size in gpcb is given in percent of default size int tsize = ( ibuf[idx+3] * TEXT_DEFAULT_SIZE ) / 100; int thickness = m_Reference->m_Size.x / 6; - m_Reference->m_Size.x = m_Reference->m_Size.y = MAX( 40, tsize ); + tsize = MAX( 40, tsize ); + m_Reference->SetSize( wxSize( tsize, tsize ) ); m_Reference->m_Thickness = thickness; - m_Value->m_Orient = m_Reference->m_Orient; - m_Value->m_Size = m_Reference->m_Size; + m_Value->SetOrientation( m_Reference->GetOrientation() ); + m_Value->SetSize( m_Reference->GetSize() ); m_Value->m_Thickness = m_Reference->m_Thickness; pos.y += tsize + thickness; m_Value->SetPos( pos ); @@ -421,11 +422,14 @@ bool MODULE::Read_GPCB_Descr( const wxString& CmpFullFileName ) // Negate angle (due to Y reversed axis) and convert it to internal units angle = - angle * 1800.0 / M_PI; Pad->SetOrientation( wxRound( angle ) ); - Pad->m_Pos.x = (ibuf[0] + ibuf[2]) / 2; - Pad->m_Pos.y = (ibuf[1] + ibuf[3]) / 2; + wxPoint padPos; + padPos.x = (ibuf[0] + ibuf[2]) / 2; + padPos.y = (ibuf[1] + ibuf[3]) / 2; Pad->m_Size.x = wxRound( hypot( (double)delta.x, (double)delta.y ) ) + ibuf[4]; Pad->m_Size.y = ibuf[4]; - Pad->m_Pos += m_Pos; + padPos += m_Pos; + Pad->SetPos0( padPos ); + Pad->SetPosition( padPos ); if( !TestFlags( params[iflgidx], 0x0100, wxT( "square" ) ) ) { @@ -478,13 +482,14 @@ bool MODULE::Read_GPCB_Descr( const wxString& CmpFullFileName ) { Pad->SetPadName( params[9] ); } - - Pad->m_Pos.x = ibuf[0]; - Pad->m_Pos.y = ibuf[1]; + wxPoint padPos; + padPos.x = ibuf[0]; + padPos.y = ibuf[1]; Pad->m_Drill.x = Pad->m_Drill.y = ibuf[5]; Pad->m_Size.x = Pad->m_Size.y = ibuf[3] + Pad->m_Drill.x; - Pad->m_Pos.x += m_Pos.x; - Pad->m_Pos.y += m_Pos.y; + padPos += m_Pos; + Pad->SetPos0( padPos ); + Pad->SetPosition( padPos ); if( (Pad->m_PadShape == PAD_ROUND) && (Pad->m_Size.x != Pad->m_Size.y) ) Pad->m_PadShape = PAD_OVAL; diff --git a/pcbnew/graphpcb.cpp b/pcbnew/graphpcb.cpp index b66cc347ba..d7c92c8b03 100644 --- a/pcbnew/graphpcb.cpp +++ b/pcbnew/graphpcb.cpp @@ -197,8 +197,8 @@ void TraceFilledCircle( BOARD* Pcb, break; } - cx -= Pcb->GetBoundingBox().m_Pos.x; - cy -= Pcb->GetBoundingBox().m_Pos.y; + cx -= Pcb->GetBoundingBox().GetX(); + cy -= Pcb->GetBoundingBox().GetY(); distmin = radius; @@ -298,10 +298,10 @@ void TraceSegmentPcb( BOARD* Pcb, TRACK* pt_segm, int color, int marge, int op_l half_width = ( pt_segm->m_Width / 2 ) + marge; /* Calculate the bounding rectangle of the segment (if H, V or Via) */ - ux0 = pt_segm->m_Start.x - Pcb->GetBoundingBox().m_Pos.x; - uy0 = pt_segm->m_Start.y - Pcb->GetBoundingBox().m_Pos.y; - ux1 = pt_segm->m_End.x - Pcb->GetBoundingBox().m_Pos.x; - uy1 = pt_segm->m_End.y - Pcb->GetBoundingBox().m_Pos.y; + ux0 = pt_segm->m_Start.x - Pcb->GetBoundingBox().GetX(); + uy0 = pt_segm->m_Start.y - Pcb->GetBoundingBox().GetY(); + ux1 = pt_segm->m_End.x - Pcb->GetBoundingBox().GetX(); + uy1 = pt_segm->m_End.y - Pcb->GetBoundingBox().GetY(); /* Test if VIA (filled circle was drawn) */ if( pt_segm->Type() == PCB_VIA_T ) @@ -558,10 +558,10 @@ void TraceFilledRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1, break; } - ux0 -= Pcb->GetBoundingBox().m_Pos.x; - uy0 -= Pcb->GetBoundingBox().m_Pos.y; - ux1 -= Pcb->GetBoundingBox().m_Pos.x; - uy1 -= Pcb->GetBoundingBox().m_Pos.y; + ux0 -= Pcb->GetBoundingBox().GetX(); + uy0 -= Pcb->GetBoundingBox().GetY(); + ux1 -= Pcb->GetBoundingBox().GetX(); + uy1 -= Pcb->GetBoundingBox().GetY(); /* Calculating limits coord cells belonging to the rectangle. */ row_max = uy1 / Board.m_GridRouting; @@ -650,10 +650,10 @@ void TraceFilledRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1, break; } - ux0 -= Pcb->GetBoundingBox().m_Pos.x; - uy0 -= Pcb->GetBoundingBox().m_Pos.y; - ux1 -= Pcb->GetBoundingBox().m_Pos.x; - uy1 -= Pcb->GetBoundingBox().m_Pos.y; + ux0 -= Pcb->GetBoundingBox().GetX(); + uy0 -= Pcb->GetBoundingBox().GetY(); + ux1 -= Pcb->GetBoundingBox().GetX(); + uy1 -= Pcb->GetBoundingBox().GetY(); cx = (ux0 + ux1) / 2; cy = (uy0 + uy1) / 2; diff --git a/pcbnew/highlight.cpp b/pcbnew/highlight.cpp index b543436f2e..ef0a4660ad 100644 --- a/pcbnew/highlight.cpp +++ b/pcbnew/highlight.cpp @@ -101,7 +101,7 @@ void PCB_EDIT_FRAME::ListNetsAndSelect( wxCommandEvent& event ) if( found ) { - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); if( GetBoard()->IsHighLightNetON() ) HighLight( &dc ); @@ -177,5 +177,5 @@ void PCB_EDIT_FRAME::HighLight( wxDC* DC ) else GetBoard()->HighLightON(); - GetBoard()->DrawHighLight( DrawPanel, DC, GetBoard()->GetHighLightNetCode() ); + GetBoard()->DrawHighLight( m_canvas, DC, GetBoard()->GetHighLightNetCode() ); } diff --git a/pcbnew/hotkeys_board_editor.cpp b/pcbnew/hotkeys_board_editor.cpp index 5cdc0890d9..65152f962e 100644 --- a/pcbnew/hotkeys_board_editor.cpp +++ b/pcbnew/hotkeys_board_editor.cpp @@ -62,7 +62,7 @@ void PCB_EDIT_FRAME::CallMacros( wxDC* aDC, const wxPoint& aPosition, int aNumbe tPosition = screen->GetNearestGridPosition( aPosition ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); screen->SetMousePosition( tPosition ); GeneralControl( aDC, tPosition ); @@ -80,7 +80,7 @@ void PCB_EDIT_FRAME::CallMacros( wxDC* aDC, const wxPoint& aPosition, int aNumbe cmd.SetId( ID_ZOOM_REDRAW ); GetEventHandler()->ProcessEvent( cmd ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); } @@ -90,8 +90,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit if( aHotkeyCode == 0 ) return; - wxPoint pos; - bool itemCurrentlyEdited = (GetCurItem() && GetCurItem()->m_Flags); + bool itemCurrentlyEdited = (GetCurItem() && GetCurItem()->GetFlags()); MODULE* module = NULL; int evt_type = 0; //Used to post a wxCommandEvent on demand PCB_SCREEN* screen = GetScreen(); @@ -107,6 +106,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit if( HK_Descr == NULL ) HK_Descr = GetDescriptorFromHotkey( aHotkeyCode, board_edit_Hotkey_List ); + if( HK_Descr == NULL ) return; @@ -144,8 +144,6 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetEventObject( this ); - - int ll; unsigned int cnt; @@ -237,15 +235,29 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit break; case HK_SWITCH_TRACK_WIDTH_TO_NEXT: + if( GetCanvas()->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( GetCanvas(), aDC, wxDefaultPosition, false ); + GetBoard()->m_TrackWidthSelector = ( GetBoard()->m_TrackWidthSelector + 1 ) % GetBoard()->m_TrackWidthList.size(); + + if( GetCanvas()->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( GetCanvas(), aDC, wxDefaultPosition, false ); + break; case HK_SWITCH_TRACK_WIDTH_TO_PREVIOUS: + if( GetCanvas()->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( GetCanvas(), aDC, wxDefaultPosition, false ); + if( GetBoard()->m_TrackWidthSelector == 0 ) GetBoard()->m_TrackWidthSelector = GetBoard()->m_TrackWidthList.size(); GetBoard()->m_TrackWidthSelector--; + + if( GetCanvas()->m_mouseCaptureCallback == ShowNewTrackWhenMovingCursor ) + ShowNewTrackWhenMovingCursor( GetCanvas(), aDC, wxDefaultPosition, false ); + break; case HK_SWITCH_GRID_TO_FASTGRID1: @@ -410,7 +422,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill; - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case HK_DELETE: @@ -453,7 +465,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit if( itemCurrentlyEdited && GetCurItem()->IsTrack() && GetCurItem()->IsNew() ) { // A new track is in progress: call to End_Route() - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); End_Route( (TRACK*) GetCurItem(), aDC ); } @@ -555,7 +567,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit SetCurItem( track ); if( track ) - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else if( GetCurItem()->IsNew() ) { @@ -566,7 +578,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit if( track ) // A new segment was created SetCurItem( track, false ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } break; @@ -580,7 +592,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit // get any module, locked or not locked and toggle its locked status if( !itemCurrentlyEdited ) { - pos = screen->RefPos( true ); + wxPoint pos = screen->RefPos( true ); module = GetBoard()->GetFootprint( pos, screen->m_Active_Layer, true ); } else if( GetCurItem()->Type() == PCB_MODULE_T ) @@ -627,7 +639,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit bool PCB_EDIT_FRAME::OnHotkeyDeleteItem( wxDC* aDC ) { BOARD_ITEM* item = GetCurItem(); - bool ItemFree = (item == NULL) || (item->m_Flags == 0); + bool ItemFree = (item == NULL) || (item->GetFlags() == 0); switch( GetToolId() ) { @@ -698,7 +710,7 @@ bool PCB_EDIT_FRAME::OnHotkeyDeleteItem( wxDC* aDC ) bool PCB_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); if( itemCurrentlyEdited ) return false; @@ -793,7 +805,7 @@ bool PCB_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand ) bool PCB_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); if( itemCurrentlyEdited ) return false; @@ -904,20 +916,20 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC ) { BOARD_ITEM* item = GetCurItem(); bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED; - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; if( itemCurrentlyEdited ) { - DrawPanel->m_IgnoreMouseEvents = true; - DrawPanel->CrossHairOff( aDC ); + m_canvas->m_IgnoreMouseEvents = true; + m_canvas->CrossHairOff( aDC ); switch( item->Type() ) { case PCB_TRACE_T: case PCB_VIA_T: - if( item->m_Flags & IS_DRAGGED ) + if( item->IsDragging() ) PlaceDraggedOrMovedTrackSegment( (TRACK*) item, aDC ); break; @@ -952,8 +964,8 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC ) break; } - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->CrossHairOn( aDC ); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->CrossHairOn( aDC ); return true; } @@ -965,7 +977,7 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC ) bool PCB_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); int evt_type = 0; // Used to post a wxCommandEvent on demand if( !itemCurrentlyEdited ) diff --git a/pcbnew/hotkeys_module_editor.cpp b/pcbnew/hotkeys_module_editor.cpp index cb9a2c75fa..a99f4afe5f 100644 --- a/pcbnew/hotkeys_module_editor.cpp +++ b/pcbnew/hotkeys_module_editor.cpp @@ -27,7 +27,7 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; BOARD_ITEM* item = GetCurItem(); - bool ItemFree = (item == 0) || (item->m_Flags == 0); + bool ItemFree = (item == 0) || (item->GetFlags() == 0); wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetEventObject( this ); @@ -119,7 +119,7 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) @@ -174,7 +174,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand ) bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) @@ -229,8 +229,8 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand ) bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool itemCurrentlyEdited = item && item->GetFlags(); + bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) return false; @@ -284,7 +284,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand ) bool FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); - bool itemCurrentlyEdited = item && item->m_Flags; + bool itemCurrentlyEdited = item && item->GetFlags(); int evt_type = 0; // Used to post a wxCommandEvent on demand bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 220f2cd80d..06afc0d921 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -349,7 +349,7 @@ int PCB_BASE_FRAME::ReadSetup( LINE_READER* aReader ) msg.Printf( _( "Error reading PcbPlotParams from %s:\n%s" ), aReader->GetSource().GetData(), e.errorText.GetData() ); - wxMessageBox( msg, _( "Open Board File" ), wxICON_ERROR ); + wxMessageBox( msg, _( "Open Board File" ), wxOK | wxICON_ERROR ); } continue; diff --git a/pcbnew/librairi.cpp b/pcbnew/librairi.cpp index 3156972c2b..6dc624851f 100644 --- a/pcbnew/librairi.cpp +++ b/pcbnew/librairi.cpp @@ -387,7 +387,7 @@ void PCB_BASE_FRAME::Archive_Modules( const wxString& LibName, bool NewModulesOn return; } - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; // Create a new, empty library if no old lib, or if archive all modules if( !NewModulesOnly || !file_exists ) @@ -430,7 +430,7 @@ void PCB_BASE_FRAME::Archive_Modules( const wxString& LibName, bool NewModulesOn DisplayActivity( (int) ( ii * step ), wxEmptyString ); /* Check for request to stop backup (ESCAPE key actuated) */ - if( DrawPanel->m_AbortRequest ) + if( m_canvas->m_AbortRequest ) break; } } diff --git a/pcbnew/loadcmp.cpp b/pcbnew/loadcmp.cpp index 63721e1af2..4cccee89e3 100644 --- a/pcbnew/loadcmp.cpp +++ b/pcbnew/loadcmp.cpp @@ -84,7 +84,7 @@ bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule ) GetBoard()->Add( aModule ); - aModule->m_Flags = 0; + aModule->ClearFlags(); GetBoard()->BuildListOfNets(); @@ -125,7 +125,7 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* if( moduleName.IsEmpty() ) /* Cancel command */ { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; } @@ -139,7 +139,7 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* if( moduleName.IsEmpty() ) /* Cancel command */ { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; } } @@ -148,9 +148,10 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* { AllowWildSeach = false; moduleName = Select_1_Module_From_List( this, library, moduleName, wxEmptyString ); + if( moduleName.IsEmpty() ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; /* Cancel command. */ } } @@ -166,7 +167,7 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* if( moduleName.IsEmpty() ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; /* Cancel command. */ } else @@ -176,14 +177,14 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* } GetScreen()->SetCrossHairPosition( curspos ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( module ) { lastCommponentName = moduleName; AddHistoryComponentName( HistoryList, moduleName ); - module->m_Flags = IS_NEW; + module->SetFlags( IS_NEW ); module->m_Link = 0; module->SetTimeStamp( GetNewTimeStamp() ); GetBoard()->m_Status_Pcb = 0; @@ -200,7 +201,7 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC* RecalculateAllTracksNetcode(); if( DC ) - module->Draw( DrawPanel, DC, GR_OR ); + module->Draw( m_canvas, DC, GR_OR ); } return module; diff --git a/pcbnew/magnetic_tracks_functions.cpp b/pcbnew/magnetic_tracks_functions.cpp index 59ce1ab391..bc3a3f3bb8 100644 --- a/pcbnew/magnetic_tracks_functions.cpp +++ b/pcbnew/magnetic_tracks_functions.cpp @@ -120,7 +120,7 @@ bool Magnetize( BOARD* m_Pcb, PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize gr // D( printf( "currTrack=%p currItem=%p currTrack->Type()=%d currItem->Type()=%d\n", currTrack, currItem, currTrack ? currTrack->Type() : 0, currItem ? currItem->Type() : 0 ); ) - if( !currTrack && currItem && currItem->Type()==PCB_VIA_T && currItem->m_Flags ) + if( !currTrack && currItem && currItem->Type()==PCB_VIA_T && currItem->GetFlags() ) { // moving a VIA currTrack = (TRACK*) currItem; diff --git a/pcbnew/mirepcb.cpp b/pcbnew/mirepcb.cpp index 6f68bf62ed..47b1f12615 100644 --- a/pcbnew/mirepcb.cpp +++ b/pcbnew/mirepcb.cpp @@ -136,22 +136,22 @@ void TARGET_PROPERTIES_DIALOG_EDITOR::OnCancelClick( wxCommandEvent& event ) */ void TARGET_PROPERTIES_DIALOG_EDITOR::OnOkClick( wxCommandEvent& event ) { - m_Target->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + m_Target->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); // Save old item in undo list, if is is not currently edited (will be later if so) - if( m_Target->m_Flags == 0 ) + if( m_Target->GetFlags() == 0 ) m_Parent->SaveCopyInUndoList( m_Target, UR_CHANGED ); - if( m_Target->m_Flags != 0 ) // other edition in progress (MOVE, NEW ..) - m_Target->m_Flags |= IN_EDIT; // set flag in edit to force - // undo/redo/abort proper operation + if( m_Target->GetFlags() != 0 ) // other edition in progress (MOVE, NEW ..) + m_Target->SetFlags( IN_EDIT ); // set flag in edit to force + // undo/redo/abort proper operation m_Target->SetWidth( m_MireWidthCtrl->GetValue() ); MireDefaultSize = m_MireSizeCtrl->GetValue(); m_Target->SetSize( m_MireSizeCtrl->GetValue() ); m_Target->SetShape( m_MireShape->GetSelection() ? 1 : 0 ); - m_Target->Draw( m_Parent->DrawPanel, m_DC, ( m_Target->m_Flags & IS_MOVED ) ? GR_XOR : GR_OR ); + m_Target->Draw( m_Parent->GetCanvas(), m_DC, ( m_Target->IsMoving() ) ? GR_XOR : GR_OR ); m_Parent->OnModify(); EndModal( 1 ); @@ -163,7 +163,7 @@ void PCB_EDIT_FRAME::DeleteTarget( PCB_TARGET* aTarget, wxDC* DC ) if( aTarget == NULL ) return; - aTarget->Draw( DrawPanel, DC, GR_XOR ); + aTarget->Draw( m_canvas, DC, GR_XOR ); SaveCopyInUndoList( aTarget, UR_DELETED ); aTarget->UnLink(); } @@ -191,14 +191,14 @@ static void AbortMoveAndEditTarget( EDA_DRAW_PANEL* Panel, wxDC* DC ) } else // it is an existing item: retrieve initial values of parameters { - if( ( target->m_Flags & (IN_EDIT | IS_MOVED) ) ) + if( ( target->GetFlags() & (IN_EDIT | IS_MOVED) ) ) { target->SetPosition( s_TargetCopy.GetPosition() ); target->SetWidth( s_TargetCopy.GetWidth() ); target->SetSize( s_TargetCopy.GetSize() ); target->SetShape( s_TargetCopy.GetShape() ); } - target->m_Flags = 0; + target->ClearFlags(); target->Draw( Panel, DC, GR_OR ); } } @@ -210,14 +210,14 @@ PCB_TARGET* PCB_EDIT_FRAME::CreateTarget( wxDC* DC ) { PCB_TARGET* target = new PCB_TARGET( GetBoard() ); - target->m_Flags = IS_NEW; + target->SetFlags( IS_NEW ); GetBoard()->Add( target ); target->SetLayer( EDGE_N ); target->SetWidth( GetBoard()->GetDesignSettings().m_EdgeSegmentWidth ); target->SetSize( MireDefaultSize ); - target->SetPosition( DrawPanel->GetScreen()->GetCrossHairPosition() ); + target->SetPosition( m_canvas->GetScreen()->GetCrossHairPosition() ); PlaceTarget( target, DC ); @@ -233,8 +233,8 @@ void PCB_EDIT_FRAME::BeginMoveTarget( PCB_TARGET* aTarget, wxDC* DC ) return; s_TargetCopy = *aTarget; - aTarget->m_Flags |= IS_MOVED; - DrawPanel->SetMouseCapture( ShowTargetShapeWhileMovingMouse, AbortMoveAndEditTarget ); + aTarget->SetFlags( IS_MOVED ); + m_canvas->SetMouseCapture( ShowTargetShapeWhileMovingMouse, AbortMoveAndEditTarget ); SetCurItem( aTarget ); } @@ -244,33 +244,34 @@ void PCB_EDIT_FRAME::PlaceTarget( PCB_TARGET* aTarget, wxDC* DC ) if( aTarget == NULL ) return; - aTarget->Draw( DrawPanel, DC, GR_OR ); - DrawPanel->SetMouseCapture( NULL, NULL ); + aTarget->Draw( m_canvas, DC, GR_OR ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); OnModify(); if( aTarget->IsNew() ) { SaveCopyInUndoList( aTarget, UR_NEW ); - aTarget->m_Flags = 0; + aTarget->ClearFlags(); return; } - if( aTarget->m_Flags == IS_MOVED ) + if( aTarget->GetFlags() == IS_MOVED ) { - SaveCopyInUndoList( aTarget, UR_MOVED, aTarget->GetPosition() - s_TargetCopy.GetPosition() ); - aTarget->m_Flags = 0; + SaveCopyInUndoList( aTarget, UR_MOVED, + aTarget->GetPosition() - s_TargetCopy.GetPosition() ); + aTarget->ClearFlags(); return; } - if( (aTarget->m_Flags & IN_EDIT) ) + if( (aTarget->GetFlags() & IN_EDIT) ) { SwapData( aTarget, &s_TargetCopy ); SaveCopyInUndoList( aTarget, UR_CHANGED ); SwapData( aTarget, &s_TargetCopy ); } - aTarget->m_Flags = 0; + aTarget->ClearFlags(); } diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index 9c79593d52..aec181830a 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -110,12 +110,12 @@ BOARD_ITEM* FOOTPRINT_EDIT_FRAME::ModeditLocateAndDisplay( int aHotKeyCode ) // PCB_BASE_FRAME::ProcessItemSelection() // and it calls SetCurItem() which in turn calls DisplayInfo() on the // item. - DrawPanel->m_AbortRequest = true; // changed in false if an item + m_canvas->m_AbortRequest = true; // changed in false if an item PopupMenu( &itemMenu ); // m_AbortRequest = false if an // item is selected - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; // The function ProcessItemSelection() has set the current item, return it. item = GetCurItem(); @@ -156,7 +156,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) wxPoint pos; bool redraw = false; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); wxGetMousePosition( &pos.x, &pos.y ); @@ -195,14 +195,14 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_CANCEL_CURRENT_COMMAND: default: - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { // for all other commands: stop the move in progress - DrawPanel->m_endMouseCaptureCallback( DrawPanel, &dc ); + m_canvas->m_endMouseCaptureCallback( m_canvas, &dc ); } if( id != ID_POPUP_CANCEL_CURRENT_COMMAND ) - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; } @@ -247,7 +247,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) module->SetPosition( wxPoint( 0, 0 ) ); if( GetBoard()->m_Modules ) - GetBoard()->m_Modules->m_Flags = 0; + GetBoard()->m_Modules->ClearFlags(); Zoom_Automatique( false ); } @@ -340,7 +340,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) pcbframe->SaveCopyInUndoList( newmodule, UR_NEW ); } - newmodule->m_Flags = 0; + newmodule->ClearFlags(); GetScreen()->ClrModify(); pcbframe->SetCurItem( NULL ); mainpcb->m_Status_Pcb = 0; @@ -358,7 +358,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) redraw = true; if( GetBoard()->m_Modules ) - GetBoard()->m_Modules->m_Flags = 0; + GetBoard()->m_Modules->ClearFlags(); GetScreen()->ClrModify(); Zoom_Automatique( false ); @@ -402,7 +402,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } if( GetBoard()->m_Modules ) - GetBoard()->m_Modules->m_Flags = 0; + GetBoard()->m_Modules->ClearFlags(); // if either m_Reference or m_Value are gone, reinstall them - // otherwise you cannot see what you are doing on board @@ -446,10 +446,10 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( GetBoard()->m_Modules ); DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()-> GetCurItem() ); int ret = dialog.ShowModal(); - GetScreen()->GetCurItem()->m_Flags = 0; + GetScreen()->GetCurItem()->ClearFlags(); if( ret > 0 ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; @@ -460,13 +460,13 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Rotate_Module( NULL, (MODULE*) GetScreen()->GetCurItem(), 900, true ); redraw = true; break; case ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Rotate_Module( NULL, (MODULE*) GetScreen()->GetCurItem(), -900, true ); redraw = true; break; @@ -475,18 +475,18 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) { DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()->GetCurItem() ); int ret = dialog.ShowModal(); - GetScreen()->GetCurItem()->m_Flags = 0; - GetScreen()->GetCurItem()->m_Flags = 0; - DrawPanel->MoveCursorToCrossHair(); + GetScreen()->GetCurItem()->ClearFlags(); + GetScreen()->GetCurItem()->ClearFlags(); + m_canvas->MoveCursorToCrossHair(); if( ret > 0 ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; case ID_POPUP_PCB_MOVE_PAD_REQUEST: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMovePad( (D_PAD*) GetScreen()->GetCurItem(), &dc ); } break; @@ -494,7 +494,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_EDIT_PAD: { InstallPadOptionsFrame( (D_PAD*) GetScreen()->GetCurItem() ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } break; @@ -502,36 +502,36 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT ); DeletePad( (D_PAD*) GetScreen()->GetCurItem(), false ); SetCurItem( NULL ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_IMPORT_PAD_SETTINGS: SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Import_Pad_Settings( (D_PAD*) GetScreen()->GetCurItem(), true ); break; case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS: SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT ); Global_Import_Pad_Settings( (D_PAD*) GetScreen()->GetCurItem(), true ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_EXPORT_PAD_SETTINGS: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Export_Pad_Settings( (D_PAD*) GetScreen()->GetCurItem() ); break; case ID_POPUP_PCB_EDIT_TEXTMODULE: { InstallTextModOptionsFrame( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } break; case ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST: { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); StartMoveTexteModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); } break; @@ -539,7 +539,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_ROTATE_TEXTMODULE: { RotateTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } break; @@ -547,20 +547,20 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT ); DeleteTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem() ); SetCurItem( NULL ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case ID_POPUP_PCB_MOVE_EDGE: { Start_Move_EdgeMod( (EDGE_MODULE*) GetScreen()->GetCurItem(), &dc ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } break; case ID_POPUP_PCB_STOP_CURRENT_DRAWING: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); - if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) ) + if( GetScreen()->GetCurItem()->IsNew() ) { End_Edge_Module( (EDGE_MODULE*) GetScreen()->GetCurItem() ); SetCurItem( NULL ); @@ -578,40 +578,40 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } Enter_Edge_Width( edge ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( edge ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; case ID_POPUP_PCB_EDIT_WIDTH_CURRENT_EDGE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Edit_Edge_Width( (EDGE_MODULE*) GetScreen()->GetCurItem() ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_EDIT_WIDTH_ALL_EDGE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Edit_Edge_Width( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_EDIT_LAYER_CURRENT_EDGE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Edit_Edge_Layer( (EDGE_MODULE*) GetScreen()->GetCurItem() ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_EDIT_LAYER_ALL_EDGE: - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); Edit_Edge_Layer( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); break; case ID_POPUP_PCB_DELETE_EDGE: SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); RemoveStruct( GetScreen()->GetCurItem() ); SetCurItem( NULL ); break; @@ -647,14 +647,14 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PLACE_BLOCK: GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; HandleBlockPlace( &dc ); break; case ID_POPUP_COPY_BLOCK: GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; GetScreen()->m_BlockLocate.SetMessageBlock( this ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; HandleBlockPlace( &dc ); break; @@ -689,7 +689,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } if( redraw ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -826,7 +826,7 @@ void FOOTPRINT_EDIT_FRAME::OnVerticalToolbar( wxCommandEvent& aEvent ) { int id = aEvent.GetId(); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); switch( id ) { @@ -866,7 +866,7 @@ void FOOTPRINT_EDIT_FRAME::OnVerticalToolbar( wxCommandEvent& aEvent ) { SetToolID( id, wxCURSOR_ARROW, _( "Pad settings" ) ); InstallPadOptionsFrame( NULL ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } break; @@ -876,6 +876,6 @@ void FOOTPRINT_EDIT_FRAME::OnVerticalToolbar( wxCommandEvent& aEvent ) default: wxFAIL_MSG( wxT( "Unknown command id." ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } } diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index 3c3f091eae..0288d3b73a 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -25,11 +25,11 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) { BOARD_ITEM* item = GetCurItem(); - DrawPanel->CrossHairOff( DC ); + m_canvas->CrossHairOff( DC ); if( GetToolId() == ID_NO_TOOL_SELECTED ) { - if( item && item->m_Flags ) // Move item command in progress + if( item && item->GetFlags() ) // Move item command in progress { switch( item->Type() ) { @@ -50,9 +50,9 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) { wxString msg; msg.Printf( wxT( "WinEDA_ModEditFrame::OnLeftClick err:Struct %d, m_Flag %X" ), - item->Type(), item->m_Flags ); + item->Type(), item->GetFlags() ); DisplayError( this, msg ); - item->m_Flags = 0; + item->ClearFlags(); break; } } @@ -61,7 +61,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) item = GetCurItem(); - if( !item || (item->m_Flags == 0) ) + if( !item || (item->GetFlags() == 0) ) { if( !wxGetKeyState( WXK_SHIFT ) && !wxGetKeyState( WXK_ALT ) && !wxGetKeyState( WXK_CONTROL ) ) @@ -78,7 +78,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) case ID_MODEDIT_CIRCLE_TOOL: case ID_MODEDIT_ARC_TOOL: case ID_MODEDIT_LINE_TOOL: - if( !item || item->m_Flags == 0 ) + if( !item || item->GetFlags() == 0 ) { int shape = S_SEGMENT; @@ -96,13 +96,13 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } else if( ( (EDGE_MODULE*) item )->GetShape() == S_ARC ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } else if( ( (EDGE_MODULE*) item )->GetShape() == S_SEGMENT ) { @@ -116,8 +116,8 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) break; case ID_MODEDIT_DELETE_TOOL: - if( item == NULL || // No item to delete - (item->m_Flags != 0) ) // Item in edit, cannot delete it + if( item == NULL || // No item to delete + (item->GetFlags() != 0) ) // Item in edit, cannot delete it break; if( item->Type() != PCB_MODULE_T ) // Cannot delete the module itself @@ -134,26 +134,26 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) MODULE* module = GetBoard()->m_Modules; if( module == NULL // No module loaded - || (module->m_Flags != 0) ) + || (module->GetFlags() != 0) ) break; - module->m_Flags = 0; + module->ClearFlags(); SaveCopyInUndoList( module, UR_MODEDIT ); Place_Ancre( module ); // set the new relatives internal coordinates of items RedrawScreen( wxPoint( 0, 0 ), true ); // Replace the module in position 0, to recalculate absolutes coordinates of items module->SetPosition( wxPoint( 0, 0 ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); SetCurItem( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; case ID_MODEDIT_PLACE_GRID_COORD: - DrawPanel->DrawGridAxis( DC, GR_XOR ); + m_canvas->DrawGridAxis( DC, GR_XOR ); GetScreen()->m_GridOrigin = GetScreen()->GetCrossHairPosition(); - DrawPanel->DrawGridAxis( DC, GR_COPY ); + m_canvas->DrawGridAxis( DC, GR_COPY ); GetScreen()->SetModify(); break; @@ -176,10 +176,10 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) default: DisplayError( this, wxT( "FOOTPRINT_EDIT_FRAME::ProcessCommand error" ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); } - DrawPanel->CrossHairOn( DC ); + m_canvas->CrossHairOn( DC ); } @@ -191,7 +191,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; // Simple location of elements where possible. - if( ( item == NULL ) || ( item->m_Flags == 0 ) ) + if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { SetCurItem( item = ModeditLocateAndDisplay() ); } @@ -199,16 +199,18 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen // End command in progress. if( GetToolId() != ID_NO_TOOL_SELECTED ) { - if( item && item->m_Flags ) - AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) ); + if( item && item->GetFlags() ) + AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), + KiBitmap( cancel_xpm ) ); else - AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, _( "End Tool" ), KiBitmap( cancel_tool_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, _( "End Tool" ), + KiBitmap( cancel_tool_xpm ) ); PopMenu->AppendSeparator(); } else { - if( (item && item->m_Flags) || blockActive ) + if( (item && item->GetFlags()) || blockActive ) { if( blockActive ) // Put block commands in list { @@ -246,7 +248,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen if( (item == NULL) || blockActive ) return true; - int flags = item->m_Flags; + int flags = item->GetFlags(); switch( item->Type() ) { @@ -255,7 +257,8 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen wxMenu* transform_choice = new wxMenu; AddMenuItem( transform_choice, ID_MODEDIT_MODULE_ROTATE, _( "Rotate" ), KiBitmap( rotate_module_pos_xpm ) ); - AddMenuItem( transform_choice, ID_MODEDIT_MODULE_MIRROR, _( "Mirror" ), KiBitmap( mirror_h_xpm ) ); + AddMenuItem( transform_choice, ID_MODEDIT_MODULE_MIRROR, _( "Mirror" ), + KiBitmap( mirror_h_xpm ) ); msg = AddHotkeyName( _( "Edit Module" ), g_Module_Editor_Hokeys_Descr, HK_EDIT_ITEM ); AddMenuItem( PopMenu, ID_POPUP_PCB_EDIT_MODULE, msg, KiBitmap( edit_module_xpm ) ); AddMenuItem( PopMenu, transform_choice, ID_MODEDIT_TRANSFORM_MODULE, @@ -398,12 +401,12 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) switch( GetToolId() ) { case ID_NO_TOOL_SELECTED: - if( ( item == NULL ) || ( item->m_Flags == 0 ) ) + if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) { item = ModeditLocateAndDisplay(); } - if( ( item == NULL ) || ( item->m_Flags != 0 ) ) + if( ( item == NULL ) || ( item->GetFlags() != 0 ) ) break; // Item found @@ -413,24 +416,24 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) { case PCB_PAD_T: InstallPadOptionsFrame( (D_PAD*) item ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case PCB_MODULE_T: { DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) item ); int ret = dialog.ShowModal(); - GetScreen()->GetCurItem()->m_Flags = 0; - DrawPanel->MoveCursorToCrossHair(); + GetScreen()->GetCurItem()->ClearFlags(); + m_canvas->MoveCursorToCrossHair(); if( ret > 0 ) - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; case PCB_MODULE_TEXT_T: InstallTextModOptionsFrame( (TEXTE_MODULE*) item, DC ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; default: @@ -445,7 +448,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } break; diff --git a/pcbnew/modedit_undo_redo.cpp b/pcbnew/modedit_undo_redo.cpp index 58f8d0c93f..1f7a51db1e 100644 --- a/pcbnew/modedit_undo_redo.cpp +++ b/pcbnew/modedit_undo_redo.cpp @@ -33,7 +33,7 @@ void FOOTPRINT_EDIT_FRAME::SaveCopyInUndoList( BOARD_ITEM* aItem, GetScreen()->PushCommandToUndoList( lastcmd ); /* Clear current flags (which can be temporary set by a current edit command) */ for( item = CopyItem->m_Drawings; item != NULL; item = item->Next() ) - item->m_Flags = 0; + item->ClearFlags(); /* Clear redo list, because after new save there is no redo to do */ GetScreen()->ClearUndoORRedoList( GetScreen()->m_RedoList ); @@ -73,7 +73,7 @@ void FOOTPRINT_EDIT_FRAME::GetComponentFromRedoList( wxCommandEvent& event ) SetCurItem( NULL ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } @@ -102,5 +102,5 @@ void FOOTPRINT_EDIT_FRAME::GetComponentFromUndoList( wxCommandEvent& event ) SetCurItem( NULL ); OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/pcbnew/modeditoptions.cpp b/pcbnew/modeditoptions.cpp index fb813396a6..6b017ad5d3 100644 --- a/pcbnew/modeditoptions.cpp +++ b/pcbnew/modeditoptions.cpp @@ -49,22 +49,22 @@ void FOOTPRINT_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) { case ID_TB_OPTIONS_SHOW_PADS_SKETCH: m_DisplayPadFill = !m_optionsToolBar->GetToolToggled( id ); - DrawPanel->Refresh( ); + m_canvas->Refresh( ); break; case ID_TB_OPTIONS_SHOW_VIAS_SKETCH: m_DisplayViaFill = !m_optionsToolBar->GetToolToggled( id ); - DrawPanel->Refresh( ); + m_canvas->Refresh( ); break; case ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH: m_DisplayModText = m_optionsToolBar->GetToolToggled( id ) ? SKETCH : FILLED; - DrawPanel->Refresh( ); + m_canvas->Refresh( ); break; case ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH: m_DisplayModEdge = m_optionsToolBar->GetToolToggled( id ) ? SKETCH : FILLED; - DrawPanel->Refresh( ); + m_canvas->Refresh( ); break; default: diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index afdd2f30cf..6ee622c3ef 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -177,8 +177,8 @@ FOOTPRINT_EDIT_FRAME::FOOTPRINT_EDIT_FRAME( wxWindow* father, ReCreateVToolbar(); ReCreateOptToolbar(); - if( DrawPanel ) - DrawPanel->m_Block_Enable = true; + if( m_canvas ) + m_canvas->m_Block_Enable = true; m_auimgr.SetManagedWindow( this ); @@ -203,7 +203,7 @@ FOOTPRINT_EDIT_FRAME::FOOTPRINT_EDIT_FRAME( wxWindow* father, m_auimgr.AddPane( m_optionsToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ). Left() ); - m_auimgr.AddPane( DrawPanel, + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); m_auimgr.AddPane( m_messagePanel, @@ -375,25 +375,25 @@ void FOOTPRINT_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, case WXK_NUMPAD8: case WXK_UP: pos.y -= wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD2: case WXK_DOWN: pos.y += wxRound( gridSize.y ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD4: case WXK_LEFT: pos.x -= wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; case WXK_NUMPAD6: case WXK_RIGHT: pos.x += wxRound( gridSize.x ); - DrawPanel->MoveCursor( pos ); + m_canvas->MoveCursor( pos ); break; default: @@ -406,23 +406,25 @@ void FOOTPRINT_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, { pos = GetScreen()->GetCrossHairPosition(); GetScreen()->SetCrossHairPosition( oldpos ); - DrawPanel->CrossHairOff( aDC ); + m_canvas->CrossHairOff( aDC ); GetScreen()->SetCrossHairPosition( pos ); - DrawPanel->CrossHairOn( aDC ); + m_canvas->CrossHairOn( aDC ); - if( DrawPanel->IsMouseCaptured() ) + if( m_canvas->IsMouseCaptured() ) { #ifdef USE_WX_OVERLAY - wxDCOverlay oDC( DrawPanel->m_overlay, (wxWindowDC*)aDC ); + wxDCOverlay oDC( m_canvas->m_overlay, (wxWindowDC*)aDC ); oDC.Clear(); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, false ); #else - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, aPosition, true ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, aPosition, true ); #endif } #ifdef USE_WX_OVERLAY else - DrawPanel->m_overlay.Reset(); + { + m_canvas->m_overlay.Reset(); + } #endif } diff --git a/pcbnew/modules.cpp b/pcbnew/modules.cpp index f29f6591f1..70e997663d 100644 --- a/pcbnew/modules.cpp +++ b/pcbnew/modules.cpp @@ -76,11 +76,11 @@ void PCB_EDIT_FRAME::StartMove_Module( MODULE* module, wxDC* DC ) // Creates a copy of the current module, for abort and undo commands s_ModuleInitialCopy = new MODULE( GetBoard() ); s_ModuleInitialCopy->Copy( module ); - s_ModuleInitialCopy->m_Flags = 0; + s_ModuleInitialCopy->ClearFlags(); SetCurItem( module ); GetBoard()->m_Status_Pcb &= ~RATSNEST_ITEM_LOCAL_OK; - module->m_Flags |= IS_MOVED; + module->SetFlags( IS_MOVED ); /* Show ratsnest. */ if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) @@ -90,7 +90,7 @@ void PCB_EDIT_FRAME::StartMove_Module( MODULE* module, wxDC* DC ) if( g_Drag_Pistes_On ) { - Build_Drag_Liste( DrawPanel, DC, module ); + Build_Drag_Liste( m_canvas, DC, module ); ITEM_PICKER itemWrapper( NULL, UR_CHANGED ); for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ ) @@ -104,19 +104,18 @@ void PCB_EDIT_FRAME::StartMove_Module( MODULE* module, wxDC* DC ) } GetBoard()->m_Status_Pcb |= DO_NOT_SHOW_GENERAL_RASTNEST; - DrawPanel->SetMouseCapture( MoveFootprint, Abort_MoveOrCopyModule ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->SetMouseCapture( MoveFootprint, Abort_MoveOrCopyModule ); + m_canvas->m_AutoPAN_Request = true; // Erase the module. if( DC ) { - int tmp = module->m_Flags; - module->m_Flags |= DO_NOT_DRAW; - DrawPanel->RefreshDrawingRect( module->GetBoundingBox() ); - module->m_Flags = tmp; + module->SetFlags( DO_NOT_DRAW ); + m_canvas->RefreshDrawingRect( module->GetBoundingBox() ); + module->ClearFlags( DO_NOT_DRAW ); } - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -162,7 +161,7 @@ void Abort_MoveOrCopyModule( EDA_DRAW_PANEL* Panel, wxDC* DC ) } EraseDragList(); - module->m_Flags &= ~IS_MOVED; + module->ClearFlags( IS_MOVED ); } if( module->IsNew() ) // Copy command: delete new footprint @@ -262,7 +261,7 @@ bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeD // Redraw the full screen to ensure perfect display of board and ratsnest. if( aDC ) - DrawPanel->Refresh(); + m_canvas->Refresh(); return true; } @@ -278,16 +277,15 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC ) OnModify(); - if( !( Module->m_Flags & IS_MOVED ) ) /* This is a simple flip, no other edition in progress */ + if( !Module->IsMoving() ) /* This is a simple flip, no other edition in progress */ { GetBoard()->m_Status_Pcb &= ~( LISTE_RATSNEST_ITEM_OK | CONNEXION_OK ); if( DC ) { - int tmp = Module->m_Flags; - Module->m_Flags |= DO_NOT_DRAW; - DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() ); - Module->m_Flags = tmp; + Module->SetFlags( DO_NOT_DRAW ); + m_canvas->RefreshDrawingRect( Module->GetBoundingBox() ); + Module->ClearFlags( DO_NOT_DRAW ); } /* Show ratsnest if necessary. */ @@ -302,8 +300,8 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC ) /* Erase footprint and draw outline if it has been already drawn. */ if( DC ) { - DrawModuleOutlines( DrawPanel, DC, Module ); - DrawSegmentWhileMovingFootprint( DrawPanel, DC ); + DrawModuleOutlines( m_canvas, DC, Module ); + DrawSegmentWhileMovingFootprint( m_canvas, DC ); } } @@ -312,11 +310,11 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC ) Module->DisplayInfo( this ); - if( !( Module->m_Flags & IS_MOVED ) ) /* Inversion simple */ + if( !Module->IsMoving() ) /* Inversion simple */ { if( DC ) { - Module->Draw( DrawPanel, DC, GR_OR ); + Module->Draw( m_canvas, DC, GR_OR ); if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) Compile_Ratsnest( DC, true ); @@ -326,8 +324,8 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC ) { if( DC ) { - DrawModuleOutlines( DrawPanel, DC, Module ); - DrawSegmentWhileMovingFootprint( DrawPanel, DC ); + DrawModuleOutlines( m_canvas, DC, Module ); + DrawSegmentWhileMovingFootprint( m_canvas, DC ); } GetBoard()->m_Status_Pcb &= ~RATSNEST_ITEM_LOCAL_OK; @@ -350,7 +348,7 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat { SaveCopyInUndoList( aModule, UR_NEW ); } - else if( (aModule->m_Flags & IS_MOVED ) ) + else if( aModule->IsMoving() ) { ITEM_PICKER picker( aModule, UR_CHANGED ); picker.m_Link = s_ModuleInitialCopy; @@ -372,13 +370,13 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat newpos = GetScreen()->GetCrossHairPosition(); aModule->SetPosition( newpos ); - aModule->m_Flags = 0; + aModule->ClearFlags(); delete s_ModuleInitialCopy; s_ModuleInitialCopy = NULL; if( aDC ) - aModule->Draw( DrawPanel, aDC, GR_OR ); + aModule->Draw( m_canvas, aDC, GR_OR ); if( g_DragSegmentList.size() ) { @@ -389,7 +387,7 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat pt_segm->SetState( IN_EDIT, OFF ); if( aDC ) - pt_segm->Draw( DrawPanel, aDC, GR_OR ); + pt_segm->Draw( m_canvas, aDC, GR_OR ); } // Delete drag list @@ -397,13 +395,13 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat } g_Drag_Pistes_On = false; - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) && !aDoNotRecreateRatsnest ) Compile_Ratsnest( aDC, true ); if( aDC ) - DrawPanel->Refresh(); + m_canvas->Refresh(); aModule->DisplayInfo( this ); } @@ -423,15 +421,14 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in OnModify(); - if( !( module->m_Flags & IS_MOVED ) ) /* This is a simple rotation, no other + if( !module->IsMoving() ) /* This is a simple rotation, no other * edition in progress */ { if( DC ) // Erase footprint to screen { - int tmp = module->m_Flags; - module->m_Flags |= DO_NOT_DRAW; - DrawPanel->RefreshDrawingRect( module->GetBoundingBox() ); - module->m_Flags = tmp; + module->SetFlags( DO_NOT_DRAW ); + m_canvas->RefreshDrawingRect( module->GetBoundingBox() ); + module->ClearFlags( DO_NOT_DRAW ); if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) DrawGeneralRatsnest( DC ); @@ -441,8 +438,8 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in { if( DC ) { - DrawModuleOutlines( DrawPanel, DC, module ); - DrawSegmentWhileMovingFootprint( DrawPanel, DC ); + DrawModuleOutlines( m_canvas, DC, module ); + DrawSegmentWhileMovingFootprint( m_canvas, DC ); } } @@ -457,10 +454,10 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in if( DC ) { - if( !( module->m_Flags & IS_MOVED ) ) + if( !module->IsMoving() ) { // not beiing moved: redraw the module and update ratsnest - module->Draw( DrawPanel, DC, GR_OR ); + module->Draw( m_canvas, DC, GR_OR ); if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) Compile_Ratsnest( DC, true ); @@ -468,12 +465,12 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in else { // Beiing moved: just redraw it - DrawModuleOutlines( DrawPanel, DC, module ); - DrawSegmentWhileMovingFootprint( DrawPanel, DC ); + DrawModuleOutlines( m_canvas, DC, module ); + DrawSegmentWhileMovingFootprint( m_canvas, DC ); } - if( module->m_Flags == 0 ) // module not in edit: redraw full screen - DrawPanel->Refresh(); + if( module->GetFlags() == 0 ) // module not in edit: redraw full screen + m_canvas->Refresh(); } } diff --git a/pcbnew/move-drag_pads.cpp b/pcbnew/move-drag_pads.cpp index 83f0e03186..52935ba2ea 100644 --- a/pcbnew/move-drag_pads.cpp +++ b/pcbnew/move-drag_pads.cpp @@ -38,7 +38,7 @@ static void Abort_Move_Pad( EDA_DRAW_PANEL* Panel, wxDC* DC ) return; pad->Draw( Panel, DC, GR_XOR ); - pad->m_Flags = 0; + pad->ClearFlags(); pad->m_Pos = Pad_OldPos; pad->Draw( Panel, DC, GR_XOR ); @@ -137,16 +137,15 @@ void PCB_BASE_FRAME::Import_Pad_Settings( D_PAD* aPad, bool aDraw ) { if( aDraw ) { - aPad->m_Flags |= DO_NOT_DRAW; - DrawPanel->RefreshDrawingRect( aPad->GetBoundingBox() ); - aPad->m_Flags &= ~DO_NOT_DRAW; + aPad->SetFlags( DO_NOT_DRAW ); + m_canvas->RefreshDrawingRect( aPad->GetBoundingBox() ); + aPad->ClearFlags( DO_NOT_DRAW ); } - aPad->m_PadShape = g_Pad_Master.m_PadShape; + aPad->m_PadShape = g_Pad_Master.m_PadShape; aPad->m_layerMask = g_Pad_Master.m_layerMask; - aPad->m_Attribut = g_Pad_Master.m_Attribut; - aPad->m_Orient = g_Pad_Master.m_Orient + - ( (MODULE*) aPad->GetParent() )->m_Orient; + aPad->m_Attribut = g_Pad_Master.m_Attribut; + aPad->m_Orient = g_Pad_Master.m_Orient + ( (MODULE*) aPad->GetParent() )->m_Orient; aPad->m_Size = g_Pad_Master.m_Size; aPad->m_DeltaSize = wxSize( 0, 0 ); aPad->m_Offset = g_Pad_Master.m_Offset; @@ -176,7 +175,7 @@ void PCB_BASE_FRAME::Import_Pad_Settings( D_PAD* aPad, bool aDraw ) aPad->ComputeShapeMaxRadius(); if( aDraw ) - DrawPanel->RefreshDrawingRect( aPad->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( aPad->GetBoundingBox() ); ( (MODULE*) aPad->GetParent() )->m_LastEdit_Time = time( NULL ); } @@ -228,7 +227,7 @@ void PCB_BASE_FRAME::AddPad( MODULE* Module, bool draw ) Pad->DisplayInfo( this ); if( draw ) - DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( Module->GetBoundingBox() ); } @@ -263,7 +262,7 @@ void PCB_BASE_FRAME::DeletePad( D_PAD* aPad, bool aQuery ) m_Pcb->m_Status_Pcb = 0; aPad->DeleteStructure(); - DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( Module->GetBoundingBox() ); Module->CalculateBoundingBox(); OnModify(); @@ -279,16 +278,16 @@ void PCB_BASE_FRAME::StartMovePad( D_PAD* Pad, wxDC* DC ) s_CurrentSelectedPad = Pad; Pad_OldPos = Pad->m_Pos; Pad->DisplayInfo( this ); - DrawPanel->SetMouseCapture( Show_Pad_Move, Abort_Move_Pad ); + m_canvas->SetMouseCapture( Show_Pad_Move, Abort_Move_Pad ); /* Draw the pad (SKETCH mode) */ - Pad->Draw( DrawPanel, DC, GR_XOR ); - Pad->m_Flags |= IS_MOVED; - Pad->Draw( DrawPanel, DC, GR_XOR ); + Pad->Draw( m_canvas, DC, GR_XOR ); + Pad->SetFlags( IS_MOVED ); + Pad->Draw( m_canvas, DC, GR_XOR ); /* Build the list of track segments to drag if the command is a drag pad*/ if( g_Drag_Pistes_On ) - Build_1_Pad_SegmentsToDrag( DrawPanel, DC, Pad ); + Build_1_Pad_SegmentsToDrag( m_canvas, DC, Pad ); else EraseDragList(); } @@ -340,7 +339,7 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* Pad, wxDC* DC ) } Pad->m_Pos = pad_curr_position; - Pad->Draw( DrawPanel, DC, GR_XOR ); + Pad->Draw( m_canvas, DC, GR_XOR ); /* Redraw dragged track segments */ for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ ) @@ -357,7 +356,7 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* Pad, wxDC* DC ) Track->SetState( IN_EDIT, OFF ); if( DC ) - Track->Draw( DrawPanel, DC, GR_OR ); + Track->Draw( m_canvas, DC, GR_OR ); } /* Compute local coordinates (i.e refer to Module position and for Module orient = 0) */ @@ -368,10 +367,10 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* Pad, wxDC* DC ) Pad->m_Pos0.x += dX; s_CurrentSelectedPad->m_Pos0.y += dY; - Pad->m_Flags = 0; + Pad->ClearFlags(); if( DC ) - Pad->Draw( DrawPanel, DC, GR_OR ); + Pad->Draw( m_canvas, DC, GR_OR ); Module->CalculateBoundingBox(); Module->m_LastEdit_Time = time( NULL ); @@ -379,7 +378,7 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* Pad, wxDC* DC ) EraseDragList(); OnModify(); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); m_Pcb->m_Status_Pcb &= ~( LISTE_RATSNEST_ITEM_OK | CONNEXION_OK ); } @@ -399,7 +398,7 @@ void PCB_BASE_FRAME::RotatePad( D_PAD* Pad, wxDC* DC ) OnModify(); if( DC ) - Module->Draw( DrawPanel, DC, GR_XOR ); + Module->Draw( m_canvas, DC, GR_XOR ); EXCHG( Pad->m_Size.x, Pad->m_Size.y ); EXCHG( Pad->m_Drill.x, Pad->m_Drill.y ); @@ -412,5 +411,5 @@ void PCB_BASE_FRAME::RotatePad( D_PAD* Pad, wxDC* DC ) Pad->DisplayInfo( this ); if( DC ) - Module->Draw( DrawPanel, DC, GR_OR ); + Module->Draw( m_canvas, DC, GR_OR ); } diff --git a/pcbnew/move_copy_track.cpp.notused b/pcbnew/move_copy_track.cpp.notused index 10c6611968..26a0eb79b8 100644 --- a/pcbnew/move_copy_track.cpp.notused +++ b/pcbnew/move_copy_track.cpp.notused @@ -103,7 +103,7 @@ static void Exit_MoveTrack( WinEDA_DrawPanel* Panel, wxDC* DC ) TRACK* Track = pt_drag->m_Segm; pt_drag->SetInitialValues(); Track->SetState( EDIT, OFF ); - Track->m_Flags = 0; + Track->ClearFlags(); Track->Draw( Panel, DC, GR_OR ); } @@ -249,7 +249,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC ) } // DRC Ok: place track segments - Track->m_Flags = 0; + Track->ClearFlags(); Track->Draw( DrawPanel, DC, GR_OR ); /* Tracage des segments dragges */ @@ -258,7 +258,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC ) { Track = pt_drag->m_Segm; Track->SetState( EDIT, OFF ); - Track->m_Flags = 0; + Track->ClearFlags(); Track->Draw( DrawPanel, DC, GR_OR ); } diff --git a/pcbnew/move_or_drag_track.cpp b/pcbnew/move_or_drag_track.cpp index 7cadded07d..37bf6d7135 100644 --- a/pcbnew/move_or_drag_track.cpp +++ b/pcbnew/move_or_drag_track.cpp @@ -123,7 +123,7 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC ) Track->m_End.x -= dx; Track->m_End.y -= dy; - Track->m_Flags = 0; + Track->ClearFlags(); } DrawTraces( Panel, DC, NewTrack, NbPtNewTrack, GR_OR ); @@ -140,7 +140,7 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC ) TRACK* Track = g_DragSegmentList[jj].m_Segm; g_DragSegmentList[jj].SetInitialValues(); Track->SetState( IN_EDIT, OFF ); - Track->m_Flags = 0; + Track->ClearFlags(); Track->Draw( Panel, DC, GR_OR ); } @@ -192,10 +192,10 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo for( ; (ii > 0) && (Track != NULL); ii--, Track = Track->Next() ) { - if( Track->m_Flags & STARTPOINT ) + if( Track->GetFlags() & STARTPOINT ) Track->m_Start += moveVector; - if( Track->m_Flags & ENDPOINT ) + if( Track->GetFlags() & ENDPOINT ) Track->m_End += moveVector; } @@ -209,10 +209,10 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo if( aErase ) Track->Draw( aPanel, aDC, draw_mode ); - if( Track->m_Flags & STARTPOINT ) + if( Track->GetFlags() & STARTPOINT ) Track->m_Start += moveVector; - if( Track->m_Flags & ENDPOINT ) + if( Track->GetFlags() & ENDPOINT ) Track->m_End += moveVector; Track->Draw( aPanel, aDC, draw_mode ); @@ -471,7 +471,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC if( tSegmentToEnd ) { - if( tSegmentToEnd->m_Flags & STARTPOINT ) + if( tSegmentToEnd->GetFlags() & STARTPOINT ) tSegmentToEnd->m_Start = Track->m_End; else tSegmentToEnd->m_End = Track->m_End; @@ -479,7 +479,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC if( tSegmentToStart ) { - if( tSegmentToStart->m_Flags & STARTPOINT ) + if( tSegmentToStart->GetFlags() & STARTPOINT ) tSegmentToStart->m_Start = Track->m_Start; else tSegmentToStart->m_End = Track->m_Start; @@ -558,7 +558,7 @@ bool InitialiseDragParameters() // Init parameters for the starting point of the moved segment if( tSegmentToStart ) { - if( tSegmentToStart->m_Flags & ENDPOINT ) + if( tSegmentToStart->GetFlags() & ENDPOINT ) { tx1 = (double) tSegmentToStart->m_Start.x; ty1 = (double) tSegmentToStart->m_Start.y; @@ -601,7 +601,7 @@ bool InitialiseDragParameters() if( tSegmentToEnd ) { //check if second line is vertical - if( tSegmentToEnd->m_Flags & STARTPOINT ) + if( tSegmentToEnd->GetFlags() & STARTPOINT ) { tx1 = (double) tSegmentToEnd->m_Start.x; ty1 = (double) tSegmentToEnd->m_Start.y; @@ -698,11 +698,11 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC if( aTrack->Type() == PCB_VIA_T ) // For a via: always drag it { - aTrack->m_Flags = IS_DRAGGED | STARTPOINT | ENDPOINT; + aTrack->SetFlags( IS_DRAGGED | STARTPOINT | ENDPOINT ); if( aCommand != ID_POPUP_PCB_MOVE_TRACK_SEGMENT ) { - Collect_TrackSegmentsToDrag( DrawPanel, aDC, aTrack->m_Start, + Collect_TrackSegmentsToDrag( m_canvas, aDC, aTrack->m_Start, aTrack->ReturnMaskLayer(), aTrack->GetNet() ); } @@ -719,32 +719,32 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC switch( aCommand ) { case ID_POPUP_PCB_MOVE_TRACK_SEGMENT: // Move segment - aTrack->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT; - AddSegmentToDragList( DrawPanel, aDC, aTrack->m_Flags, aTrack ); + aTrack->SetFlags( IS_DRAGGED | ENDPOINT | STARTPOINT ); + AddSegmentToDragList( m_canvas, aDC, aTrack->GetFlags(), aTrack ); break; case ID_POPUP_PCB_DRAG_TRACK_SEGMENT: // drag a segment pos = aTrack->m_Start; - Collect_TrackSegmentsToDrag( DrawPanel, aDC, pos, + Collect_TrackSegmentsToDrag( m_canvas, aDC, pos, aTrack->ReturnMaskLayer(), aTrack->GetNet() ); pos = aTrack->m_End; - aTrack->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT; - Collect_TrackSegmentsToDrag( DrawPanel, aDC, pos, + aTrack->SetFlags( IS_DRAGGED | ENDPOINT | STARTPOINT ); + Collect_TrackSegmentsToDrag( m_canvas, aDC, pos, aTrack->ReturnMaskLayer(), aTrack->GetNet() ); break; case ID_POPUP_PCB_MOVE_TRACK_NODE: // Drag via or move node pos = (diag & STARTPOINT) ? aTrack->m_Start : aTrack->m_End; - Collect_TrackSegmentsToDrag( DrawPanel, aDC, pos, + Collect_TrackSegmentsToDrag( m_canvas, aDC, pos, aTrack->ReturnMaskLayer(), aTrack->GetNet() ); PosInit = pos; break; } - aTrack->m_Flags |= IS_DRAGGED; + aTrack->SetFlags( IS_DRAGGED ); } // Prepare the Undo command @@ -760,17 +760,17 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC s_ItemsListPicker.PushItem( picker ); draggedtrack = (TRACK*) picker.m_Link; draggedtrack->SetStatus( 0 ); - draggedtrack->m_Flags = 0; + draggedtrack->ClearFlags(); } s_LastPos = PosInit; - DrawPanel->SetMouseCapture( Show_MoveNode, Abort_MoveTrack ); + m_canvas->SetMouseCapture( Show_MoveNode, Abort_MoveTrack ); GetBoard()->SetHighLightNet( aTrack->GetNet() ); GetBoard()->HighLightON(); - GetBoard()->DrawHighLight( DrawPanel, aDC, GetBoard()->GetHighLightNetCode() ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true ); + GetBoard()->DrawHighLight( m_canvas, aDC, GetBoard()->GetHighLightNetCode() ); + m_canvas->m_mouseCaptureCallback( m_canvas, aDC, wxDefaultPosition, true ); } @@ -929,7 +929,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC NewTrack = NULL; NbPtNewTrack = 0; - track->m_Flags = IS_DRAGGED; + track->SetFlags( IS_DRAGGED ); if( TrackToStartPoint ) { @@ -938,8 +938,8 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC if( track->m_Start != TrackToStartPoint->m_Start ) flag = ENDPOINT; - AddSegmentToDragList( DrawPanel, DC, flag, TrackToStartPoint ); - track->m_Flags |= STARTPOINT; + AddSegmentToDragList( m_canvas, DC, flag, TrackToStartPoint ); + track->SetFlags( STARTPOINT ); } if( TrackToEndPoint ) @@ -949,20 +949,20 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC if( track->m_End != TrackToEndPoint->m_Start ) flag = ENDPOINT; - AddSegmentToDragList( DrawPanel, DC, flag, TrackToEndPoint ); - track->m_Flags |= ENDPOINT; + AddSegmentToDragList( m_canvas, DC, flag, TrackToEndPoint ); + track->SetFlags( ENDPOINT ); } - AddSegmentToDragList( DrawPanel, DC, track->m_Flags, track ); + AddSegmentToDragList( m_canvas, DC, track->GetFlags(), track ); PosInit = GetScreen()->GetCrossHairPosition(); s_LastPos = GetScreen()->GetCrossHairPosition(); - DrawPanel->SetMouseCapture( Show_Drag_Track_Segment_With_Cte_Slope, Abort_MoveTrack ); + m_canvas->SetMouseCapture( Show_Drag_Track_Segment_With_Cte_Slope, Abort_MoveTrack ); GetBoard()->SetHighLightNet( track->GetNet() ); GetBoard()->HighLightON(); - GetBoard()->DrawHighLight( DrawPanel, DC, GetBoard()->GetHighLightNetCode() ); + GetBoard()->DrawHighLight( m_canvas, DC, GetBoard()->GetHighLightNetCode() ); // Prepare the Undo command ITEM_PICKER picker( NULL, UR_CHANGED ); @@ -975,14 +975,14 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC s_ItemsListPicker.PushItem( picker ); draggedtrack = (TRACK*) picker.m_Link; draggedtrack->SetStatus( 0 ); - draggedtrack->m_Flags = 0; + draggedtrack->ClearFlags(); } if( !InitialiseDragParameters() ) { DisplayError( this, _( "Unable to drag this segment: two collinear segments" ) ); - DrawPanel->m_mouseCaptureCallback = NULL; - Abort_MoveTrack( DrawPanel, DC ); + m_canvas->m_mouseCaptureCallback = NULL; + Abort_MoveTrack( m_canvas, DC ); return; } } @@ -1019,17 +1019,17 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC ) int draw_mode = GR_OR | GR_HIGHLIGHT; // DRC Ok: place track segments - Track->m_Flags = 0; + Track->ClearFlags(); Track->SetState( IN_EDIT, OFF ); - Track->Draw( DrawPanel, DC, draw_mode ); + Track->Draw( m_canvas, DC, draw_mode ); /* Draw dragged tracks */ for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ ) { Track = g_DragSegmentList[ii].m_Segm; Track->SetState( IN_EDIT, OFF ); - Track->m_Flags = 0; - Track->Draw( DrawPanel, DC, draw_mode ); + Track->ClearFlags(); + Track->Draw( m_canvas, DC, draw_mode ); /* Test the connections modified by the move * (only pad connection must be tested, track connection will be @@ -1061,12 +1061,12 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC ) GetBoard()->PopHighLight(); if( GetBoard()->IsHighLightNetON() ) - GetBoard()->DrawHighLight( DrawPanel, DC, GetBoard()->GetHighLightNetCode() ); + GetBoard()->DrawHighLight( m_canvas, DC, GetBoard()->GetHighLightNetCode() ); OnModify(); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); - DrawPanel->Refresh(); + m_canvas->Refresh(); if( current_net_code > 0 ) TestNetConnection( DC, current_net_code ); diff --git a/pcbnew/muonde.cpp b/pcbnew/muonde.cpp index 8a080ad814..f9b525afc2 100644 --- a/pcbnew/muonde.cpp +++ b/pcbnew/muonde.cpp @@ -168,8 +168,8 @@ void PCB_EDIT_FRAME::Begin_Self( wxDC* DC ) GetScreen()->m_O_Curseur = GetScreen()->GetCrossHairPosition(); UpdateStatusBar(); - DrawPanel->SetMouseCapture( ShowBoundingBoxMicroWaveInductor, Exit_Self ); - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + m_canvas->SetMouseCapture( ShowBoundingBoxMicroWaveInductor, Exit_Self ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } @@ -179,8 +179,8 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC ) int ll; wxString msg; - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); + m_canvas->SetMouseCapture( NULL, NULL ); if( Self_On == 0 ) { @@ -235,7 +235,7 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC ) // here the module is already in the BOARD, Create_1_Module() does that. module->m_LibRef = wxT( "MuSelf" ); module->m_Attributs = MOD_VIRTUAL | MOD_CMS; - module->m_Flags = 0; + module->ClearFlags(); module->m_Pos = Mself.m_End; // Generate segments @@ -290,7 +290,7 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC ) module->m_Value->SetPos0( module->m_Value->m_Pos - module->m_Pos ); module->CalculateBoundingBox(); - module->Draw( DrawPanel, DC, GR_OR ); + module->Draw( m_canvas, DC, GR_OR ); return module; } @@ -615,7 +615,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type ) if( dlg.ShowModal() != wxID_OK ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; // cancelled by user } @@ -633,7 +633,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type ) if( angledlg.ShowModal() != wxID_OK ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; // cancelled by user } @@ -653,7 +653,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type ) if( abort ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return NULL; } @@ -937,7 +937,6 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape() wxString cmp_name; int pad_count = 2; EDGE_MODULE* edge; - int npoints; WinEDA_SetParamShapeFrame* frame = new WinEDA_SetParamShapeFrame( this, wxPoint( -1, -1 ) ); @@ -945,7 +944,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape() frame->Destroy(); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); if( ok != 1 ) { @@ -988,7 +987,6 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape() edge->SetShape( S_POLYGON ); edge->SetLayer( LAYER_N_FRONT ); - npoints = PolyEdges.size(); std::vector polyPoints = edge->GetPolyPoints(); polyPoints.reserve( 2 * PolyEdges.size() + 2 ); @@ -1077,7 +1075,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* Module ) return; } - Module->Draw( DrawPanel, DC, GR_XOR ); + Module->Draw( m_canvas, DC, GR_XOR ); /* Calculate the current dimension. */ gap_size = next_pad->m_Pos0.x - pad->m_Pos0.x - pad->m_Size.x; @@ -1109,5 +1107,5 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* Module ) RotatePoint( &next_pad->m_Pos.x, &next_pad->m_Pos.y, Module->m_Pos.x, Module->m_Pos.y, Module->m_Orient ); - Module->Draw( DrawPanel, DC, GR_OR ); + Module->Draw( m_canvas, DC, GR_OR ); } diff --git a/pcbnew/muwave_command.cpp b/pcbnew/muwave_command.cpp index a85220ca98..11e04cd98c 100644 --- a/pcbnew/muwave_command.cpp +++ b/pcbnew/muwave_command.cpp @@ -20,7 +20,7 @@ void PCB_EDIT_FRAME::ProcessMuWaveFunctions( wxCommandEvent& event ) { int id = event.GetId(); wxPoint pos; - INSTALL_UNBUFFERED_DC( dc, DrawPanel ); + INSTALL_UNBUFFERED_DC( dc, m_canvas ); wxGetMousePosition( &pos.x, &pos.y ); @@ -32,7 +32,7 @@ void PCB_EDIT_FRAME::ProcessMuWaveFunctions( wxCommandEvent& event ) break; default: // End block command in progress. - DrawPanel->EndMouseCapture( ); + m_canvas->EndMouseCapture( ); break; } @@ -93,9 +93,9 @@ void PCB_EDIT_FRAME::MuWaveCommand( wxDC* DC, const wxPoint& MousePos ) break; default: - DrawPanel->SetCursor( wxCURSOR_ARROW ); + m_canvas->SetCursor( wxCURSOR_ARROW ); DisplayError( this, wxT( "PCB_EDIT_FRAME::MuWaveCommand() id error" ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; } @@ -104,5 +104,5 @@ void PCB_EDIT_FRAME::MuWaveCommand( wxDC* DC, const wxPoint& MousePos ) StartMove_Module( module, DC ); } - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } diff --git a/pcbnew/netlist.cpp b/pcbnew/netlist.cpp index 856a989ca8..23c57039da 100644 --- a/pcbnew/netlist.cpp +++ b/pcbnew/netlist.cpp @@ -308,7 +308,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename, } GetBoard()->DisplayInfo( this ); - DrawPanel->Refresh(); + m_canvas->Refresh(); return true; } diff --git a/pcbnew/onleftclick.cpp b/pcbnew/onleftclick.cpp index 7d8a71fce2..9e01240192 100644 --- a/pcbnew/onleftclick.cpp +++ b/pcbnew/onleftclick.cpp @@ -49,21 +49,21 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) bool exit = false; bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED; - if( no_tool || ( DrawStruct && DrawStruct->m_Flags ) ) + if( no_tool || ( DrawStruct && DrawStruct->GetFlags() ) ) { - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; - if( DrawStruct && DrawStruct->m_Flags ) // Command in progress + if( DrawStruct && DrawStruct->GetFlags() ) // Command in progress { - DrawPanel->m_IgnoreMouseEvents = true; - DrawPanel->CrossHairOff( aDC ); + m_canvas->m_IgnoreMouseEvents = true; + m_canvas->CrossHairOff( aDC ); switch( DrawStruct->Type() ) { case PCB_ZONE_AREA_T: if( DrawStruct->IsNew() ) { - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Begin_Zone( aDC ); } else @@ -76,7 +76,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) case PCB_TRACE_T: case PCB_VIA_T: - if( DrawStruct->m_Flags & IS_DRAGGED ) + if( DrawStruct->IsDragging() ) { PlaceDraggedOrMovedTrackSegment( (TRACK*) DrawStruct, aDC ); exit = true; @@ -134,8 +134,8 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; } - DrawPanel->m_IgnoreMouseEvents = false; - DrawPanel->CrossHairOn( aDC ); + m_canvas->m_IgnoreMouseEvents = false; + m_canvas->CrossHairOn( aDC ); if( exit ) return; @@ -209,10 +209,10 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; case ID_PCB_MIRE_BUTT: - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { SetCurItem( (BOARD_ITEM*) CreateTarget( aDC ) ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); } else if( DrawStruct->Type() == PCB_TARGET_T ) { @@ -243,11 +243,11 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; } - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { DrawStruct = (BOARD_ITEM*) Begin_DrawSegment( NULL, shape, aDC ); SetCurItem( DrawStruct ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else if( DrawStruct && (DrawStruct->Type() == PCB_LINE_T) @@ -255,7 +255,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { DrawStruct = (BOARD_ITEM*) Begin_DrawSegment( (DRAWSEGMENT*) DrawStruct, shape, aDC ); SetCurItem( DrawStruct ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } break; } @@ -267,13 +267,13 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; } - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { DrawStruct = (BOARD_ITEM*) Begin_Route( NULL, aDC ); SetCurItem( DrawStruct ); if( DrawStruct ) - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else if( DrawStruct && DrawStruct->IsNew() ) { @@ -284,7 +284,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( track ) // A new segment was created SetCurItem( DrawStruct = (BOARD_ITEM*) track, false ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } break; @@ -295,7 +295,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) * this can be start a new zone or select and move an existing zone outline corner * if found near the mouse cursor */ - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { // there is no current item, try to find something under mouse DrawStruct = PcbGeneralLocateAndDisplay(); @@ -313,21 +313,21 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) if( hit_on_corner ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); ZONE_CONTAINER* zone_cont = (ZONE_CONTAINER*) GetCurItem(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Start_Move_Zone_Corner( aDC, zone_cont, zone_cont->m_CornerSelection, false ); } else if( Begin_Zone( aDC ) ) { - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; DrawStruct = GetBoard()->m_CurrentZoneContour; GetScreen()->SetCurItem( DrawStruct ); } } else if( DrawStruct && (DrawStruct->Type() == PCB_ZONE_AREA_T) && DrawStruct->IsNew() ) { // Add a new corner to the current outline being created: - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; Begin_Zone( aDC ); DrawStruct = GetBoard()->m_CurrentZoneContour; GetScreen()->SetCurItem( DrawStruct ); @@ -340,16 +340,16 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; case ID_PCB_ADD_TEXT_BUTT: - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { SetCurItem( Create_Texte_Pcb( aDC ) ); - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_AutoPAN_Request = true; } else if( DrawStruct->Type() == PCB_TEXT_T ) { Place_Texte_Pcb( (TEXTE_PCB*) DrawStruct, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } else { @@ -359,9 +359,9 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; case ID_PCB_MODULE_BUTT: - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); DrawStruct = (BOARD_ITEM*) Load_Module_From_Library( wxEmptyString, aDC ); SetCurItem( DrawStruct ); @@ -371,7 +371,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) else if( DrawStruct->Type() == PCB_MODULE_T ) { PlaceModule( (MODULE*) DrawStruct, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } else { @@ -387,17 +387,17 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; } - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { DrawStruct = (BOARD_ITEM*) EditDimension( NULL, aDC ); SetCurItem( DrawStruct ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else if( DrawStruct && (DrawStruct->Type() == PCB_DIMENSION_T) && DrawStruct->IsNew() ) { DrawStruct = (BOARD_ITEM*) EditDimension( (DIMENSION*) DrawStruct, aDC ); SetCurItem( DrawStruct ); - DrawPanel->m_AutoPAN_Request = true; + m_canvas->m_AutoPAN_Request = true; } else { @@ -408,11 +408,11 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; case ID_PCB_DELETE_ITEM_BUTT: - if( !DrawStruct || (DrawStruct->m_Flags == 0) ) + if( !DrawStruct || (DrawStruct->GetFlags() == 0) ) { DrawStruct = PcbGeneralLocateAndDisplay(); - if( DrawStruct && (DrawStruct->m_Flags == 0) ) + if( DrawStruct && (DrawStruct->GetFlags() == 0) ) { RemoveStruct( DrawStruct, aDC ); SetCurItem( DrawStruct = NULL ); @@ -422,21 +422,21 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) break; case ID_PCB_PLACE_OFFSET_COORD_BUTT: - DrawPanel->DrawAuxiliaryAxis( aDC, GR_XOR ); + m_canvas->DrawAuxiliaryAxis( aDC, GR_XOR ); m_originAxisPosition = GetScreen()->GetCrossHairPosition(); - DrawPanel->DrawAuxiliaryAxis( aDC, GR_COPY ); + m_canvas->DrawAuxiliaryAxis( aDC, GR_COPY ); OnModify(); break; case ID_PCB_PLACE_GRID_COORD_BUTT: - DrawPanel->DrawGridAxis( aDC, GR_XOR ); + m_canvas->DrawGridAxis( aDC, GR_XOR ); GetScreen()->m_GridOrigin = GetScreen()->GetCrossHairPosition(); - DrawPanel->DrawGridAxis( aDC, GR_COPY ); + m_canvas->DrawGridAxis( aDC, GR_COPY ); break; default: DisplayError( this, wxT( "PCB_EDIT_FRAME::OnLeftClick() id error" ) ); - SetToolID( ID_NO_TOOL_SELECTED, DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); break; } } @@ -451,12 +451,12 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) switch( GetToolId() ) { case ID_NO_TOOL_SELECTED: - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) ) { DrawStruct = PcbGeneralLocateAndDisplay(); } - if( (DrawStruct == NULL) || (DrawStruct->m_Flags != 0) ) + if( (DrawStruct == NULL) || (DrawStruct->GetFlags() != 0) ) break; SendMessageToEESCHEMA( DrawStruct ); @@ -471,9 +471,9 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) if( DrawStruct->IsNew() ) { if( End_Route( (TRACK*) DrawStruct, aDC ) ) - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } - else if( DrawStruct->m_Flags == 0 ) + else if( DrawStruct->GetFlags() == 0 ) { Edit_TrackSegm_Width( aDC, (TRACK*) DrawStruct ); } @@ -487,7 +487,7 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) case PCB_DIMENSION_T: case PCB_MODULE_TEXT_T: OnEditItemRequest( aDC, DrawStruct ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); break; case PCB_LINE_T: @@ -495,8 +495,9 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) break; case PCB_ZONE_AREA_T: - if( DrawStruct->m_Flags ) + if( DrawStruct->GetFlags() ) break; + OnEditItemRequest( aDC, DrawStruct ); break; @@ -510,7 +511,7 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) if( DrawStruct && DrawStruct->IsNew() ) { if( End_Route( (TRACK*) DrawStruct, aDC ) ) - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; } break; @@ -518,7 +519,7 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) case ID_PCB_ZONES_BUTT: if( End_Zone( aDC ) ) { - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; SetCurItem( NULL ); } @@ -533,14 +534,14 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition ) if( DrawStruct->Type() != PCB_LINE_T ) { DisplayError( this, wxT( "DrawStruct Type error" ) ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; break; } if( DrawStruct->IsNew() ) { End_Edge( (DRAWSEGMENT*) DrawStruct, aDC ); - DrawPanel->m_AutoPAN_Request = false; + m_canvas->m_AutoPAN_Request = false; SetCurItem( NULL ); } diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index fbc68bf9e8..23a5000e32 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -55,11 +55,11 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) bool locate_track = false; bool blockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); - wxClientDC dc( DrawPanel ); + wxClientDC dc( m_canvas ); BOARD_ITEM* item = GetCurItem(); - DrawPanel->m_CanStartBlock = -1; // Avoid to start a block coomand when clicking on menu + m_canvas->m_CanStartBlock = -1; // Avoid to start a block coomand when clicking on menu // If a command or a block is in progress: // Put the Cancel command (if needed) and the End command @@ -71,11 +71,11 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) return true; } - DrawPanel->CrossHairOff( &dc ); + m_canvas->CrossHairOff( &dc ); if( GetToolId() != ID_NO_TOOL_SELECTED ) { - if( item && item->m_Flags ) + if( item && item->GetFlags() ) { AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) ); @@ -90,7 +90,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) } else { - if( item && item->m_Flags ) + if( item && item->GetFlags() ) { AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) ); @@ -113,18 +113,18 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) * not the current item being edited. In such case we cannot call * PcbGeneralLocateAndDisplay(). */ - if( !item || (item->m_Flags == 0) ) + if( !item || (item->GetFlags() == 0) ) { // show "item selector" menu only if no item now or selected item was not // previously picked at this position if( !item || cursorPos != selectPos ) { - DrawPanel->m_AbortRequest = false; + m_canvas->m_AbortRequest = false; item = PcbGeneralLocateAndDisplay(); - if( DrawPanel->m_AbortRequest ) + if( m_canvas->m_AbortRequest ) { - DrawPanel->CrossHairOn( &dc ); + m_canvas->CrossHairOn( &dc ); return false; } } @@ -133,7 +133,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) item = GetCurItem(); if( item ) - flags = item->m_Flags; + flags = item->GetFlags(); else flags = 0; @@ -404,7 +404,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) break; } - DrawPanel->CrossHairOn( &dc ); + m_canvas->CrossHairOn( &dc ); return true; } @@ -437,7 +437,7 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu ) updateTraceWidthSelectBox(); updateViaSizeSelectBox(); - int flags = Track->m_Flags; + int flags = Track->GetFlags(); if( flags == 0 ) { @@ -484,11 +484,12 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu ) } msg = AddHotkeyName( _( "Place Via" ), g_Board_Editor_Hokeys_Descr, HK_ADD_VIA ); - PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg ); + AddMenuItem( PopMenu, ID_POPUP_PCB_PLACE_VIA, msg, KiBitmap( via_xpm ) ); msg = AddHotkeyName( _( "Switch Track Posture" ), g_Board_Editor_Hokeys_Descr, HK_SWITCH_TRACK_POSTURE ); - PopMenu->Append( ID_POPUP_PCB_SWITCH_TRACK_POSTURE, msg ); + AddMenuItem( PopMenu, ID_POPUP_PCB_SWITCH_TRACK_POSTURE, msg, + KiBitmap( change_entry_orient_xpm ) ); // See if we can place a Micro Via (4 or more layers, and start from an external layer): if( IsMicroViaAcceptable() ) @@ -580,14 +581,14 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* { wxString msg; - if( edge_zone->m_Flags == IS_DRAGGED ) + if( edge_zone->GetFlags() == IS_DRAGGED ) { AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT, _( "Place Edge Outline" ), KiBitmap( apply_xpm ) ); } - else if( edge_zone->m_Flags ) + else if( edge_zone->GetFlags() ) { - if( (edge_zone->m_Flags & IN_EDIT ) ) + if( (edge_zone->GetFlags() & IN_EDIT ) ) AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_CORNER, _( "Place Corner" ), KiBitmap( apply_xpm ) ); else @@ -659,7 +660,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* void PCB_EDIT_FRAME::createPopUpMenuForFootprints( MODULE* aModule, wxMenu* menu ) { wxMenu* sub_menu_footprint; - int flags = aModule->m_Flags; + int flags = aModule->GetFlags(); wxString msg; sub_menu_footprint = new wxMenu; @@ -704,7 +705,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFootprints( MODULE* aModule, wxMenu* menu void PCB_EDIT_FRAME::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu ) { wxMenu* sub_menu_Fp_text; - int flags = FpText->m_Flags; + int flags = FpText->GetFlags(); wxString msg = FpText->GetSelectMenuText(); @@ -757,7 +758,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* me void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu ) { wxMenu* sub_menu_Pad; - int flags = Pad->m_Flags; + int flags = Pad->GetFlags(); if( flags ) // Currently in edit, no others commands possible return; @@ -819,7 +820,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu ) void PCB_EDIT_FRAME::createPopUpMenuForTexts( TEXTE_PCB* Text, wxMenu* menu ) { wxMenu* sub_menu_Text; - int flags = Text->m_Flags; + int flags = Text->GetFlags(); wxString msg = Text->GetSelectMenuText(); diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 12bbe551d1..7f29d909ee 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -300,7 +300,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title, if( screenHeight <= 900 ) pointSize = (pointSize * 8) / 10; - m_Layers = new PCB_LAYER_WIDGET( this, DrawPanel, pointSize ); + m_Layers = new PCB_LAYER_WIDGET( this, m_canvas, pointSize ); m_drc = new DRC( this ); // these 2 objects point to each other @@ -328,8 +328,8 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title, GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnit, ID_POPUP_GRID_USER ); GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId ); - if( DrawPanel ) - DrawPanel->m_Block_Enable = true; + if( m_canvas ) + m_canvas->m_Block_Enable = true; ReCreateMenuBar(); ReCreateHToolbar(); @@ -391,8 +391,8 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title, m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools ); } - if( DrawPanel ) - m_auimgr.AddPane( DrawPanel, + if( m_canvas ) + m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() ); if( m_messagePanel ) @@ -451,7 +451,7 @@ void PCB_EDIT_FRAME::OnQuit( wxCommandEvent& event ) void PCB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event ) { - DrawPanel->m_AbortRequest = true; + m_canvas->m_AbortRequest = true; if( GetScreen()->IsModify() ) { diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index 26430536a5..980d80f266 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -196,7 +196,7 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) ); * This is more a workaround than a fix. */ frame->SetFocus(); - frame->DrawPanel->SetFocus(); + frame->GetCanvas()->SetFocus(); return true; } diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index c317c247a5..db9b20f6f4 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -291,7 +291,7 @@ void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) if( !dirName.MakeRelativeTo( boardFilePath ) ) wxMessageBox( wxT( "Cannot make path relative (target volume different from board file volume)!" ), - wxT( "Plot Output Directory" ), wxICON_ERROR ); + wxT( "Plot Output Directory" ), wxOK | wxICON_ERROR ); } m_outputDirectoryName->SetValue( dirName.GetFullPath() ); @@ -568,7 +568,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) msg.Printf( wxT( " Cannot make %s absolute with respect to %s!" ), GetChars( outputDir.GetPath() ), GetChars( boardFilePath ) ); - wxMessageBox( msg, wxT( "Plot" ), wxICON_ERROR ); + wxMessageBox( msg, wxT( "Plot" ), wxOK | wxICON_ERROR ); return; } @@ -582,7 +582,8 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) } else { - wxMessageBox( wxT( "Cannot create output directory!" ), wxT( "Plot" ), wxICON_ERROR ); + wxMessageBox( wxT( "Cannot create output directory!" ), + wxT( "Plot" ), wxOK | wxICON_ERROR ); return; } } diff --git a/pcbnew/print_board_functions.cpp b/pcbnew/print_board_functions.cpp index 9fa907506d..6358f342ba 100644 --- a/pcbnew/print_board_functions.cpp +++ b/pcbnew/print_board_functions.cpp @@ -62,7 +62,7 @@ void FOOTPRINT_EDIT_FRAME::PrintPage( wxDC* aDC, DisplayOpt.DisplayZonesMode = 0; DisplayOpt.DisplayNetNamesMode = 0; - DrawPanel->m_PrintIsMirrored = aPrintMirrorMode; + m_canvas->m_PrintIsMirrored = aPrintMirrorMode; // The OR mode is used in color mode, but be aware the background *must be // BLACK. In the print page dialog, we first print in BLACK, and after @@ -82,13 +82,13 @@ void FOOTPRINT_EDIT_FRAME::PrintPage( wxDC* aDC, for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() ) { module->Move( offset ); - Print_Module( DrawPanel, aDC, module, drawmode, aPrintMaskLayer, drillShapeOpt ); + Print_Module( m_canvas, aDC, module, drawmode, aPrintMaskLayer, drillShapeOpt ); module->Move( -offset ); } D_PAD::m_PadSketchModePenSize = tmp; - DrawPanel->m_PrintIsMirrored = false; + m_canvas->m_PrintIsMirrored = false; DisplayOpt = save_opt; m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill; @@ -189,7 +189,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, DisplayOpt.DisplayZonesMode = 0; DisplayOpt.DisplayNetNamesMode = 0; - DrawPanel->m_PrintIsMirrored = aPrintMirrorMode; + m_canvas->m_PrintIsMirrored = aPrintMirrorMode; // The OR mode is used in color mode, but be aware the background *must be // BLACK. In the print page dialog, we first print in BLACK, and after @@ -212,7 +212,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, if( ( ( 1 << item->GetLayer() ) & aPrintMaskLayer ) == 0 ) break; - item->Draw( DrawPanel, aDC, drawmode ); + item->Draw( m_canvas, aDC, drawmode ); break; case PCB_MARKER_T: @@ -234,7 +234,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, int radius = pt_trace->m_Width >> 1; int color = g_ColorsSettings.GetItemColor( VIAS_VISIBLE + pt_trace->m_Shape ); GRSetDrawMode( aDC, drawmode ); - GRFilledCircle( &DrawPanel->m_ClipBox, aDC, + GRFilledCircle( &m_canvas->m_ClipBox, aDC, pt_trace->m_Start.x, pt_trace->m_Start.y, radius, @@ -242,7 +242,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, } else { - pt_trace->Draw( DrawPanel, aDC, drawmode ); + pt_trace->Draw( m_canvas, aDC, drawmode ); } } @@ -253,7 +253,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, if( ( aPrintMaskLayer & pt_trace->ReturnMaskLayer() ) == 0 ) continue; - pt_trace->Draw( DrawPanel, aDC, drawmode ); + pt_trace->Draw( m_canvas, aDC, drawmode ); } /* Draw filled areas (i.e. zones) */ @@ -264,7 +264,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, if( ( aPrintMaskLayer & ( 1 << zone->GetLayer() ) ) == 0 ) continue; - zone->DrawFilledArea( DrawPanel, aDC, drawmode ); + zone->DrawFilledArea( m_canvas, aDC, drawmode ); } // Draw footprints, this is done at last in order to print the pad holes in @@ -275,7 +275,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, for( ; Module != NULL; Module = Module->Next() ) { - Print_Module( DrawPanel, aDC, Module, drawmode, aPrintMaskLayer, drillShapeOpt ); + Print_Module( m_canvas, aDC, Module, drawmode, aPrintMaskLayer, drillShapeOpt ); } D_PAD::m_PadSketchModePenSize = tmp; @@ -304,7 +304,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, else diameter = pt_trace->GetDrillValue(); - GRFilledCircle( &DrawPanel->m_ClipBox, aDC, + GRFilledCircle( &m_canvas->m_ClipBox, aDC, pt_trace->m_Start.x, pt_trace->m_Start.y, diameter/2, 0, color, color ); @@ -314,7 +314,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC, GRForceBlackPen( blackpenstate ); } - DrawPanel->m_PrintIsMirrored = false; + m_canvas->m_PrintIsMirrored = false; DisplayOpt = save_opt; GetScreen()->m_Active_Layer = activeLayer; diff --git a/pcbnew/printout_controler.cpp b/pcbnew/printout_controler.cpp index 56601ea104..94eafe2157 100644 --- a/pcbnew/printout_controler.cpp +++ b/pcbnew/printout_controler.cpp @@ -265,7 +265,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage() if( m_PrintParams.m_Print_Black_and_White ) GRForceBlackPen( true ); - EDA_DRAW_PANEL* panel = m_Parent->DrawPanel; + EDA_DRAW_PANEL* panel = m_Parent->GetCanvas(); EDA_RECT tmp = panel->m_ClipBox; // Set clip box to the max size diff --git a/pcbnew/ratsnest.cpp b/pcbnew/ratsnest.cpp index 0a5391f687..c2e1a21b61 100644 --- a/pcbnew/ratsnest.cpp +++ b/pcbnew/ratsnest.cpp @@ -239,7 +239,7 @@ void PCB_BASE_FRAME::Build_Board_Ratsnest() net->m_RatsnestStartIdx = m_Pcb->GetRatsnestsCount(); - min_spanning_tree.MSP_Init( &net->m_ListPad ); + min_spanning_tree.MSP_Init( &net->m_PadInNetList ); min_spanning_tree.BuildTree(); min_spanning_tree.AddTreeToRatsnest( m_Pcb->m_FullRatsnest ); net->m_RatsnestEndIdx = m_Pcb->GetRatsnestsCount(); @@ -286,7 +286,7 @@ void PCB_BASE_FRAME::DrawGeneralRatsnest( wxDC* aDC, int aNetcode ) if( ( aNetcode <= 0 ) || ( aNetcode == item.GetNet() ) ) { - item.Draw( DrawPanel, aDC, GR_XOR, wxPoint( 0, 0 ) ); + item.Draw( m_canvas, aDC, GR_XOR, wxPoint( 0, 0 ) ); } } } @@ -344,11 +344,11 @@ static int tst_links_between_blocks( NETINFO_ITEM* aNetinfo, EXCHG( min_id, subratsnest_id ); // Merge the 2 blocks in one sub ratsnest: - for( unsigned ii = 0; ii < aNetinfo->m_ListPad.size(); ii++ ) + for( unsigned ii = 0; ii < aNetinfo->m_PadInNetList.size(); ii++ ) { - if( aNetinfo->m_ListPad[ii]->GetSubRatsnest() == subratsnest_id ) + if( aNetinfo->m_PadInNetList[ii]->GetSubRatsnest() == subratsnest_id ) { - aNetinfo->m_ListPad[ii]->SetSubRatsnest( min_id ); + aNetinfo->m_PadInNetList[ii]->SetSubRatsnest( min_id ); } } @@ -457,9 +457,9 @@ void PCB_BASE_FRAME::TestForActiveLinksInRatsnest( int aNetCode ) // Create subratsnests id from subnets created by existing tracks: int subratsnest = 0; - for( unsigned ip = 0; ip < net->m_ListPad.size(); ip++ ) + for( unsigned ip = 0; ip < net->m_PadInNetList.size(); ip++ ) { - pad = net->m_ListPad[ip]; + pad = net->m_PadInNetList[ip]; int subnet = pad->GetSubNet(); pad->SetSubRatsnest( subnet ); subratsnest = MAX( subratsnest, subnet ); @@ -567,9 +567,9 @@ void PCB_BASE_FRAME::build_ratsnest_module( MODULE* aModule ) return; } - for( unsigned jj = 0; jj < net->m_ListPad.size(); jj++ ) + for( unsigned jj = 0; jj < net->m_PadInNetList.size(); jj++ ) { - pad_externe = net->m_ListPad[jj]; + pad_externe = net->m_PadInNetList[jj]; if( pad_externe->GetParent() == aModule ) continue; @@ -719,14 +719,14 @@ void PCB_BASE_FRAME::TraceModuleRatsNest( wxDC* DC ) if( rats->m_Status & LOCAL_RATSNEST_ITEM ) { g_ColorsSettings.SetItemColor(RATSNEST_VISIBLE, YELLOW); - rats->Draw( DrawPanel, DC, GR_XOR, g_Offset_Module ); + rats->Draw( m_canvas, DC, GR_XOR, g_Offset_Module ); } else { g_ColorsSettings.SetItemColor(RATSNEST_VISIBLE, tmpcolor); wxPoint tmp = rats->m_PadStart->m_Pos; rats->m_PadStart->m_Pos -= g_Offset_Module; - rats->Draw( DrawPanel, DC, GR_XOR, wxPoint( 0, 0 ) ); + rats->Draw( m_canvas, DC, GR_XOR, wxPoint( 0, 0 ) ); rats->m_PadStart->m_Pos = tmp; } } @@ -819,9 +819,9 @@ void PCB_BASE_FRAME::BuildAirWiresTargetsList( BOARD_CONNECTED_ITEM* aItemRef, // Create a list of pads candidates ( pads not already connected to the // current track ): - for( unsigned ii = 0; ii < net->m_ListPad.size(); ii++ ) + for( unsigned ii = 0; ii < net->m_PadInNetList.size(); ii++ ) { - D_PAD* pad = net->m_ListPad[ii]; + D_PAD* pad = net->m_PadInNetList[ii]; if( pad == aItemRef ) continue; @@ -876,6 +876,6 @@ void PCB_BASE_FRAME::TraceAirWiresToTargets( wxDC* aDC ) if( ii >= g_MaxLinksShowed ) break; - GRLine( &DrawPanel->m_ClipBox, aDC, s_CursorPos, s_TargetsLocations[ii], 0, YELLOW ); + GRLine( &m_canvas->m_ClipBox, aDC, s_CursorPos, s_TargetsLocations[ii], 0, YELLOW ); } } diff --git a/pcbnew/sel_layer.cpp b/pcbnew/sel_layer.cpp index 4d0c043794..f88e60d80f 100644 --- a/pcbnew/sel_layer.cpp +++ b/pcbnew/sel_layer.cpp @@ -234,18 +234,17 @@ void PCB_BASE_FRAME::SelectLayerPair() return; } - SELECT_LAYERS_PAIR_DIALOG* frame = - new SELECT_LAYERS_PAIR_DIALOG( this ); + SELECT_LAYERS_PAIR_DIALOG* frame = new SELECT_LAYERS_PAIR_DIALOG( this ); int result = frame->ShowModal(); frame->Destroy(); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); // if user changed colors and we are in high contrast mode, then redraw // because the PAD_SMD pads may change color. if( result >= 0 && DisplayOpt.ContrastModeDisplay ) { - DrawPanel->Refresh(); + m_canvas->Refresh(); } } diff --git a/pcbnew/set_grid.cpp b/pcbnew/set_grid.cpp index cb2bb28e5e..204fe27e5e 100644 --- a/pcbnew/set_grid.cpp +++ b/pcbnew/set_grid.cpp @@ -64,7 +64,7 @@ void PCB_BASE_FRAME::InstallGridFrame( const wxPoint& pos ) if( GetScreen()->GetGridId() == ID_POPUP_GRID_USER ) GetScreen()->SetGrid( ID_POPUP_GRID_USER ); - DrawPanel->Refresh(); + m_canvas->Refresh(); } diff --git a/pcbnew/solve.cpp b/pcbnew/solve.cpp index 0c12dc06b6..6f0a2ec6a7 100644 --- a/pcbnew/solve.cpp +++ b/pcbnew/solve.cpp @@ -267,8 +267,8 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) bool stop = false; wxString msg; - DrawPanel->m_AbortRequest = false; - DrawPanel->m_AbortEnable = true; + m_canvas->m_AbortRequest = false; + m_canvas->m_AbortEnable = true; s_Clearance = GetBoard()->m_NetClasses.GetDefault()->GetClearance(); @@ -289,7 +289,7 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) /* Test to stop routing ( escape key pressed ) */ wxYield(); - if( DrawPanel->m_AbortRequest ) + if( m_canvas->m_AbortRequest ) { if( IsOK( this, _( "Abort routing?" ) ) ) { @@ -299,7 +299,7 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) } else { - DrawPanel->m_AbortRequest = 0; + m_canvas->m_AbortRequest = 0; } } @@ -317,13 +317,13 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) } pt_cur_ch = pt_cur_ch; - segm_oX = GetBoard()->GetBoundingBox().m_Pos.x + (Board.m_GridRouting * col_source); - segm_oY = GetBoard()->GetBoundingBox().m_Pos.y + (Board.m_GridRouting * row_source); - segm_fX = GetBoard()->GetBoundingBox().m_Pos.x + (Board.m_GridRouting * col_target); - segm_fY = GetBoard()->GetBoundingBox().m_Pos.y + (Board.m_GridRouting * row_target); + segm_oX = GetBoard()->GetBoundingBox().GetX() + (Board.m_GridRouting * col_source); + segm_oY = GetBoard()->GetBoundingBox().GetY() + (Board.m_GridRouting * row_source); + segm_fX = GetBoard()->GetBoundingBox().GetX() + (Board.m_GridRouting * col_target); + segm_fY = GetBoard()->GetBoundingBox().GetY() + (Board.m_GridRouting * row_target); /* Draw segment. */ - GRLine( &DrawPanel->m_ClipBox, + GRLine( &m_canvas->m_ClipBox, DC, segm_oX, segm_oY, @@ -331,8 +331,8 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) segm_fY, 0, WHITE | GR_XOR ); - pt_cur_ch->m_PadStart->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); - pt_cur_ch->m_PadEnd->Draw( DrawPanel, DC, GR_OR | GR_HIGHLIGHT ); + pt_cur_ch->m_PadStart->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); + pt_cur_ch->m_PadEnd->Draw( m_canvas, DC, GR_OR | GR_HIGHLIGHT ); success = Autoroute_One_Track( this, DC, @@ -371,14 +371,14 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides ) AppendMsgPanel( wxT( "Not Connected" ), msg, CYAN ); /* Delete routing from display. */ - pt_cur_ch->m_PadStart->Draw( DrawPanel, DC, GR_AND ); - pt_cur_ch->m_PadEnd->Draw( DrawPanel, DC, GR_AND ); + pt_cur_ch->m_PadStart->Draw( m_canvas, DC, GR_AND ); + pt_cur_ch->m_PadEnd->Draw( m_canvas, DC, GR_AND ); if( stop ) break; } - DrawPanel->m_AbortEnable = false; + m_canvas->m_AbortEnable = false; SaveCopyInUndoList( s_ItemsListPicker, UR_UNSPECIFIED ); s_ItemsListPicker.ClearItemsList(); // s_ItemsListPicker is no more owner of picked items @@ -469,9 +469,9 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, */ { int cX = ( Board.m_GridRouting * col_source ) - + pcbframe->GetBoard()->GetBoundingBox().m_Pos.x; + + pcbframe->GetBoard()->GetBoundingBox().GetX(); int cY = ( Board.m_GridRouting * row_source ) - + pcbframe->GetBoard()->GetBoundingBox().m_Pos.y; + + pcbframe->GetBoard()->GetBoundingBox().GetY(); int dx = pt_cur_ch->m_PadStart->m_Size.x / 2; int dy = pt_cur_ch->m_PadStart->m_Size.y / 2; int px = pt_cur_ch->m_PadStart->GetPosition().x; @@ -484,9 +484,9 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, goto end_of_route; cX = ( Board.m_GridRouting * col_target ) - + pcbframe->GetBoard()->GetBoundingBox().m_Pos.x; + + pcbframe->GetBoard()->GetBoundingBox().GetX(); cY = ( Board.m_GridRouting * row_target ) - + pcbframe->GetBoard()->GetBoundingBox().m_Pos.y; + + pcbframe->GetBoard()->GetBoundingBox().GetY(); dx = pt_cur_ch->m_PadEnd->m_Size.x / 2; dy = pt_cur_ch->m_PadEnd->m_Size.y / 2; px = pt_cur_ch->m_PadEnd->GetPosition().x; @@ -608,7 +608,7 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, { /* Remove link. */ GRSetDrawMode( DC, GR_XOR ); - GRLine( &pcbframe->DrawPanel->m_ClipBox, + GRLine( &pcbframe->GetCanvas()->m_ClipBox, DC, segm_oX, segm_oY, @@ -627,7 +627,7 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, break; /* Routing complete. */ } - if( pcbframe->DrawPanel->m_AbortRequest ) + if( pcbframe->GetCanvas()->m_AbortRequest ) { result = STOP_FROM_ESC; break; @@ -1170,11 +1170,11 @@ static void OrCell_Trace( BOARD* pcb, int col, int row, g_CurrentTrackSegment->SetLayer( 0x0F ); g_CurrentTrackSegment->m_Start.x = - g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().m_Pos.x + + g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().GetX() + ( Board.m_GridRouting * row ); g_CurrentTrackSegment->m_Start.y = - g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().m_Pos.y + + g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().GetY() + ( Board.m_GridRouting * col ); g_CurrentTrackSegment->m_Width = pcb->GetCurrentViaSize(); @@ -1194,9 +1194,9 @@ static void OrCell_Trace( BOARD* pcb, int col, int row, g_CurrentTrackSegment->SetLayer( Route_Layer_TOP ); g_CurrentTrackSegment->SetState( TRACK_AR, ON ); - g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().m_Pos.x + + g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().GetX() + ( Board.m_GridRouting * row ); - g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().m_Pos.y + + g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().GetY() + ( Board.m_GridRouting * col ); g_CurrentTrackSegment->SetNet( current_net_code ); @@ -1274,7 +1274,7 @@ static void AddNewTrace( PCB_EDIT_FRAME* pcbframe, wxDC* DC ) int dx0, dy0, dx1, dy1; int marge, via_marge; - EDA_DRAW_PANEL* panel = pcbframe->DrawPanel; + EDA_DRAW_PANEL* panel = pcbframe->GetCanvas(); PCB_SCREEN* screen = pcbframe->GetScreen(); marge = s_Clearance + ( pcbframe->GetBoard()->GetCurrentTrackWidth() / 2 ); diff --git a/pcbnew/specctra_import.cpp b/pcbnew/specctra_import.cpp index 531adf7e42..bf777c03ee 100644 --- a/pcbnew/specctra_import.cpp +++ b/pcbnew/specctra_import.cpp @@ -32,7 +32,7 @@ */ -#include "class_drawpanel.h" // DrawPanel +#include "class_drawpanel.h" // m_canvas #include "confirm.h" // DisplayError() #include "gestfich.h" // EDA_FileSelector() #include "wxPcbStruct.h" @@ -131,7 +131,7 @@ void PCB_EDIT_FRAME::ImportSpecctraSession( wxCommandEvent& event ) SetStatusText( wxString( _( "Session file imported and merged OK." ) ) ); - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } diff --git a/pcbnew/swap_layers.cpp b/pcbnew/swap_layers.cpp index 7f53d5d8ab..87a986ccd1 100644 --- a/pcbnew/swap_layers.cpp +++ b/pcbnew/swap_layers.cpp @@ -421,5 +421,5 @@ void PCB_EDIT_FRAME::Swap_Layers( wxCommandEvent& event ) } } - DrawPanel->Refresh( true ); + m_canvas->Refresh( true ); } diff --git a/pcbnew/tr_modif.cpp b/pcbnew/tr_modif.cpp index 4780f94b67..dc9fa9e6c0 100644 --- a/pcbnew/tr_modif.cpp +++ b/pcbnew/tr_modif.cpp @@ -238,7 +238,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC, /* Marked track can be erased. */ TRACK* NextS; - DrawTraces( DrawPanel, aDC, pt_del, nb_segm, GR_XOR | GR_HIGHLIGHT ); + DrawTraces( m_canvas, aDC, pt_del, nb_segm, GR_XOR | GR_HIGHLIGHT ); for( jj = 0; jj < nb_segm; jj++, pt_del = NextS ) { @@ -248,7 +248,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC, { pt_del->UnLink(); pt_del->SetStatus( 0 ); - pt_del->m_Flags = 0; + pt_del->ClearFlags(); ITEM_PICKER picker( pt_del, UR_DELETED ); aItemsListPicker->PushItem( picker ); } @@ -266,7 +266,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC, pt_del->SetState( IN_EDIT, OFF ); if( aDC ) - pt_del->Draw( DrawPanel, aDC, GR_OR ); + pt_del->Draw( m_canvas, aDC, GR_OR ); } pt_del->SetState( IN_EDIT | IS_LINKED, OFF ); diff --git a/pcbnew/tracepcb.cpp b/pcbnew/tracepcb.cpp index 5fbba937d5..f23eac1569 100644 --- a/pcbnew/tracepcb.cpp +++ b/pcbnew/tracepcb.cpp @@ -68,29 +68,29 @@ void FOOTPRINT_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) GRSetDrawMode( DC, GR_COPY ); - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); TraceWorkSheet( DC, screen, 0 ); /* Redraw the footprints */ for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() ) { - module->Draw( DrawPanel, DC, GR_OR ); + module->Draw( m_canvas, DC, GR_OR ); } #ifdef USE_WX_OVERLAY if( IsShown() ) { - DrawPanel->m_overlay.Reset(); - wxDCOverlay overlaydc( DrawPanel->m_overlay, (wxWindowDC*)DC ); + m_canvas->m_overlay.Reset(); + wxDCOverlay overlaydc( m_canvas->m_overlay, (wxWindowDC*)DC ); overlaydc.Clear(); } #endif - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); /* Redraw the cursor */ - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); } @@ -105,28 +105,28 @@ void PCB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) GRSetDrawMode( DC, GR_COPY ); - DrawPanel->DrawBackGround( DC ); + m_canvas->DrawBackGround( DC ); TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness ); - GetBoard()->Draw( DrawPanel, DC, GR_OR ); + GetBoard()->Draw( m_canvas, DC, GR_OR ); DrawGeneralRatsnest( DC ); #ifdef USE_WX_OVERLAY if( IsShown() ) { - DrawPanel->m_overlay.Reset(); - wxDCOverlay overlaydc( DrawPanel->m_overlay, (wxWindowDC*)DC ); + m_canvas->m_overlay.Reset(); + wxDCOverlay overlaydc( m_canvas->m_overlay, (wxWindowDC*)DC ); overlaydc.Clear(); } #endif - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); // Redraw the cursor - DrawPanel->DrawCrossHair( DC ); + m_canvas->DrawCrossHair( DC ); } @@ -161,7 +161,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint // Draw the graphic items for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() ) { - if( item->m_Flags & IS_MOVED ) + if( item->IsMoving() ) continue; switch( item->Type() ) @@ -185,7 +185,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint // Areas must be drawn here only if not moved or dragged, // because these areas are drawn by ManageCursor() in a specific manner - if ( (zone->m_Flags & (IN_EDIT | IS_DRAGGED | IS_MOVED)) == 0 ) + if ( (zone->GetFlags() & (IN_EDIT | IS_DRAGGED | IS_MOVED)) == 0 ) { zone->Draw( aPanel, DC, aDrawMode ); zone->DrawFilledArea( aPanel, DC, aDrawMode ); @@ -197,7 +197,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint bool display = true; int layerMask = ALL_CU_LAYERS; - if( module->m_Flags & IS_MOVED ) + if( module->IsMoving() ) continue; if( !IsElementVisible( PCB_VISIBLE(MOD_FR_VISIBLE) ) ) @@ -232,7 +232,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint } -void BOARD::DrawHighLight( EDA_DRAW_PANEL* aDrawPanel, wxDC* DC, int aNetCode ) +void BOARD::DrawHighLight( EDA_DRAW_PANEL* am_canvas, wxDC* DC, int aNetCode ) { int draw_mode; @@ -248,7 +248,7 @@ void BOARD::DrawHighLight( EDA_DRAW_PANEL* aDrawPanel, wxDC* DC, int aNetCode ) { if( (*zc)->GetNet() == aNetCode ) { - (*zc)->Draw( aDrawPanel, DC, draw_mode ); + (*zc)->Draw( am_canvas, DC, draw_mode ); } } @@ -259,7 +259,7 @@ void BOARD::DrawHighLight( EDA_DRAW_PANEL* aDrawPanel, wxDC* DC, int aNetCode ) { if( pad->GetNet() == aNetCode ) { - pad->Draw( aDrawPanel, DC, draw_mode ); + pad->Draw( am_canvas, DC, draw_mode ); } } } @@ -269,7 +269,7 @@ void BOARD::DrawHighLight( EDA_DRAW_PANEL* aDrawPanel, wxDC* DC, int aNetCode ) { if( seg->GetNet() == aNetCode ) { - seg->Draw( aDrawPanel, DC, draw_mode ); + seg->Draw( am_canvas, DC, draw_mode ); } } } diff --git a/pcbnew/xchgmod.cpp b/pcbnew/xchgmod.cpp index 4d76866d9e..34b76b2d6f 100644 --- a/pcbnew/xchgmod.cpp +++ b/pcbnew/xchgmod.cpp @@ -28,7 +28,8 @@ private: PCB_EDIT_FRAME* m_Parent; MODULE* m_CurrentModule; -public: DIALOG_EXCHANGE_MODULE( PCB_EDIT_FRAME* aParent, MODULE* aModule ); +public: + DIALOG_EXCHANGE_MODULE( PCB_EDIT_FRAME* aParent, MODULE* aModule ); ~DIALOG_EXCHANGE_MODULE() { }; private: @@ -151,7 +152,6 @@ int DIALOG_EXCHANGE_MODULE::Maj_ListeCmp( const wxString& reference, FILE* FichCmp, * NewFile; char line[1024]; wxString msg; - char* rs; if( old_name == new_name ) return 0; @@ -189,7 +189,7 @@ int DIALOG_EXCHANGE_MODULE::Maj_ListeCmp( const wxString& reference, return 1; } - rs = fgets( line, sizeof(line), FichCmp ); + fgets( line, sizeof(line), FichCmp ); fprintf( NewFile, "Cmp-Mod V01 Genere par PcbNew le %s\n", TO_UTF8( DateAndTime() ) ); @@ -256,7 +256,7 @@ void DIALOG_EXCHANGE_MODULE::Change_Current_Module() if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } if( pickList.GetCount() ) @@ -345,7 +345,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleId( bool aUseValue ) if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } if( pickList.GetCount() ) @@ -398,7 +398,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleAll() if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->DrawPanel->Refresh(); + m_Parent->GetCanvas()->Refresh(); } if( pickList.GetCount() ) @@ -552,7 +552,7 @@ void PCB_EDIT_FRAME::Exchange_Module( MODULE* aOldModule, } GetBoard()->m_Status_Pcb = 0; - aNewModule->m_Flags = 0; + aNewModule->ClearFlags(); OnModify(); } @@ -587,7 +587,6 @@ void PCB_EDIT_FRAME::RecreateCmpFileFromBoard( wxCommandEvent& aEvent ) MODULE* Module = GetBoard()->m_Modules; wxString msg; wxString wildcard; - char* rs; if( Module == NULL ) { @@ -618,7 +617,7 @@ void PCB_EDIT_FRAME::RecreateCmpFileFromBoard( wxCommandEvent& aEvent ) return; } - rs = fgets( line, sizeof(line), FichCmp ); + fgets( line, sizeof(line), FichCmp ); fprintf( FichCmp, "Cmp-Mod V01 Genere par PcbNew le %s\n", TO_UTF8( DateAndTime() ) ); for( ; Module != NULL; Module = Module->Next() ) diff --git a/pcbnew/zones_by_polygon.cpp b/pcbnew/zones_by_polygon.cpp index e5b44855c1..e41e644552 100644 --- a/pcbnew/zones_by_polygon.cpp +++ b/pcbnew/zones_by_polygon.cpp @@ -115,21 +115,21 @@ int PCB_EDIT_FRAME::Delete_LastCreatedCorner( wxDC* DC ) if( zone->GetNumCorners() == 0 ) return 0; - zone->DrawWhileCreateOutline( DrawPanel, DC, GR_XOR ); + zone->DrawWhileCreateOutline( m_canvas, DC, GR_XOR ); if( zone->GetNumCorners() > 2 ) { zone->m_Poly->DeleteCorner( zone->GetNumCorners() - 1 ); - if( DrawPanel->IsMouseCaptured() ) - DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false ); + if( m_canvas->IsMouseCaptured() ) + m_canvas->m_mouseCaptureCallback( m_canvas, DC, wxDefaultPosition, false ); } else { - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); SetCurItem( NULL ); zone->RemoveAllContours(); - zone->m_Flags = 0; + zone->ClearFlags(); } return zone->GetNumCorners(); @@ -148,7 +148,7 @@ static void Abort_Zone_Create_Outline( EDA_DRAW_PANEL* Panel, wxDC* DC ) if( zone ) { zone->DrawWhileCreateOutline( Panel, DC, GR_XOR ); - zone->m_Flags = 0; + zone->ClearFlags(); zone->RemoveAllContours(); } @@ -194,9 +194,9 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Corner( wxDC* DC, ZONE_CONTAINER* zone_cont if ( IsNewCorner ) zone_container->m_Poly->InsertCorner(corner_id-1, cx, cy ); - zone_container->m_Flags = IN_EDIT; - DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, - Abort_Zone_Move_Corner_Or_Outlines ); + zone_container->SetFlags( IN_EDIT ); + m_canvas->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, + Abort_Zone_Move_Corner_Or_Outlines ); s_CornerInitialPosition = zone_container->GetCornerPosition( corner_id ); s_CornerIsNew = IsNewCorner; s_AddCutoutToCurrentZone = false; @@ -208,9 +208,9 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge( wxDC* DC, ZONE_CONTAINER* zone_container, int corner_id ) { - zone_container->m_Flags = IS_DRAGGED; + zone_container->SetFlags( IS_DRAGGED ); zone_container->m_CornerSelection = corner_id; - DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, + m_canvas->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, Abort_Zone_Move_Corner_Or_Outlines ); s_CursorLastPosition = s_CornerInitialPosition = GetScreen()->GetCrossHairPosition(); s_AddCutoutToCurrentZone = false; @@ -243,8 +243,8 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Outlines( wxDC* DC, ZONE_CONTAINER* zone_co SaveCopyOfZones( s_PickedList, GetBoard(), zone_container->GetNet(), zone_container->GetLayer() ); - zone_container->m_Flags = IS_MOVED; - DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, + zone_container->SetFlags( IS_MOVED ); + m_canvas->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse, Abort_Zone_Move_Corner_Or_Outlines ); s_CursorLastPosition = s_CornerInitialPosition = GetScreen()->GetCrossHairPosition(); s_CornerIsNew = false; @@ -255,11 +255,11 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Outlines( wxDC* DC, ZONE_CONTAINER* zone_co void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER* zone_container ) { - zone_container->m_Flags = 0; - DrawPanel->SetMouseCapture( NULL, NULL ); + zone_container->ClearFlags(); + m_canvas->SetMouseCapture( NULL, NULL ); if( DC ) - zone_container->Draw( DrawPanel, DC, GR_OR ); + zone_container->Draw( m_canvas, DC, GR_OR ); OnModify(); s_AddCutoutToCurrentZone = false; @@ -270,7 +270,7 @@ void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER* /* Combine zones if possible */ wxBusyCursor dummy; GetBoard()->AreaPolygonModified( &_AuxiliaryList, zone_container, true, s_Verbose ); - DrawPanel->Refresh(); + m_canvas->Refresh(); int ii = GetBoard()->GetAreaIndex( zone_container ); // test if zone_container exists @@ -297,12 +297,12 @@ void PCB_EDIT_FRAME::Remove_Zone_Corner( wxDC* DC, ZONE_CONTAINER* zone_containe if( zone_container->m_Poly->GetNumCorners() <= 3 ) { - DrawPanel->RefreshDrawingRect( zone_container->GetBoundingBox() ); + m_canvas->RefreshDrawingRect( zone_container->GetBoundingBox() ); if( DC ) { // Remove the full zone because this is no more an area zone_container->UnFill(); - zone_container->DrawFilledArea( DrawPanel, DC, GR_XOR ); + zone_container->DrawFilledArea( m_canvas, DC, GR_XOR ); } GetBoard()->Delete( zone_container ); @@ -313,8 +313,8 @@ void PCB_EDIT_FRAME::Remove_Zone_Corner( wxDC* DC, ZONE_CONTAINER* zone_containe if( DC ) { - GetBoard()->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); - GetBoard()->RedrawFilledAreas( DrawPanel, DC, GR_XOR, layer ); + GetBoard()->RedrawAreasOutlines( m_canvas, DC, GR_XOR, layer ); + GetBoard()->RedrawFilledAreas( m_canvas, DC, GR_XOR, layer ); } _AuxiliaryList.ClearListAndDeleteItems(); @@ -328,8 +328,8 @@ void PCB_EDIT_FRAME::Remove_Zone_Corner( wxDC* DC, ZONE_CONTAINER* zone_containe if( DC ) { - GetBoard()->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); - GetBoard()->RedrawFilledAreas( DrawPanel, DC, GR_OR, layer ); + GetBoard()->RedrawAreasOutlines( m_canvas, DC, GR_OR, layer ); + GetBoard()->RedrawFilledAreas( m_canvas, DC, GR_OR, layer ); } UpdateCopyOfZonesList( s_PickedList, _AuxiliaryList, GetBoard() ); @@ -359,13 +359,13 @@ void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC ) PCB_EDIT_FRAME* pcbframe = (PCB_EDIT_FRAME*) Panel->GetParent(); ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); - if( zone_container->m_Flags == IS_MOVED ) + if( zone_container->IsMoving() ) { wxPoint offset; offset = s_CornerInitialPosition - s_CursorLastPosition; zone_container->Move( offset ); } - else if( zone_container->m_Flags == IS_DRAGGED ) + else if( zone_container->IsDragging() ) { wxPoint offset; offset = s_CornerInitialPosition - s_CursorLastPosition; @@ -390,7 +390,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC ) Panel->Refresh(); pcbframe->SetCurItem( NULL ); - zone_container->m_Flags = 0; + zone_container->ClearFlags(); s_AddCutoutToCurrentZone = false; s_CurrentZone = NULL; } @@ -411,14 +411,14 @@ void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC* wxPoint pos = pcbframe->GetScreen()->GetCrossHairPosition(); - if( zone->m_Flags == IS_MOVED ) + if( zone->IsMoving() ) { wxPoint offset; offset = pos - s_CursorLastPosition; zone->Move( offset ); s_CursorLastPosition = pos; } - else if( zone->m_Flags == IS_DRAGGED ) + else if( zone->IsDragging() ) { wxPoint offset; offset = pos - s_CursorLastPosition; @@ -467,7 +467,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) zone->SetLayer( getActiveLayer() ); // Prompt user for parameters: - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; if( zone->IsOnCopperLayer() ) { // Put a zone on a copper layer @@ -495,8 +495,8 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) g_Zone_Default_Setting.m_NetcodeSelection = 0; // No net for non copper zones } - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; if( diag == ZONE_ABORT ) return 0; @@ -533,7 +533,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) // if first segment if( zone->GetNumCorners() == 0 ) { - zone->m_Flags = IS_NEW; + zone->SetFlags( IS_NEW ); zone->SetTimeStamp( GetNewTimeStamp() ); g_Zone_Default_Setting.ExportSetting( *zone ); zone->m_Poly->Start( g_Zone_Default_Setting.m_CurrentZone_Layer, @@ -544,7 +544,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) if( Drc_On && (m_drc->Drc( zone, 0 ) == BAD_DRC) && zone->IsOnCopperLayer() ) { - zone->m_Flags = 0; + zone->ClearFlags(); zone->RemoveAllContours(); // use the form of SetCurItem() which does not write to the msg panel, @@ -557,7 +557,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) } SetCurItem( zone ); - DrawPanel->SetMouseCapture( Show_New_Edge_While_Move_Mouse, Abort_Zone_Create_Outline ); + m_canvas->SetMouseCapture( Show_New_Edge_While_Move_Mouse, Abort_Zone_Create_Outline ); } else // edge in progress: { @@ -588,7 +588,7 @@ bool PCB_EDIT_FRAME::End_Zone( wxDC* DC ) // Validate the current outline: if( zone->GetNumCorners() <= 2 ) // An outline must have 3 corners or more { - Abort_Zone_Create_Outline( DrawPanel, DC ); + Abort_Zone_Create_Outline( m_canvas, DC ); return true; } @@ -603,21 +603,21 @@ bool PCB_EDIT_FRAME::End_Zone( wxDC* DC ) { DisplayError( this, _( "DRC error: closing this area creates a drc error with an other area" ) ); - DrawPanel->MoveCursorToCrossHair(); + m_canvas->MoveCursorToCrossHair(); return false; } } - zone->m_Flags = 0; + zone->ClearFlags(); - zone->DrawWhileCreateOutline( DrawPanel, DC, GR_XOR ); + zone->DrawWhileCreateOutline( m_canvas, DC, GR_XOR ); - DrawPanel->SetMouseCapture( NULL, NULL ); + m_canvas->SetMouseCapture( NULL, NULL ); // Undraw old drawings, because they can have important changes int layer = zone->GetLayer(); - GetBoard()->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); - GetBoard()->RedrawFilledAreas( DrawPanel, DC, GR_XOR, layer ); + GetBoard()->RedrawAreasOutlines( m_canvas, DC, GR_XOR, layer ); + GetBoard()->RedrawFilledAreas( m_canvas, DC, GR_XOR, layer ); // Save initial zones configuration, for undo/redo, before adding new zone _AuxiliaryList.ClearListAndDeleteItems(); @@ -655,8 +655,8 @@ bool PCB_EDIT_FRAME::End_Zone( wxDC* DC ) GetBoard()->AreaPolygonModified( &_AuxiliaryList, zone, true, s_Verbose ); // Redraw the real edge zone : - GetBoard()->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); - GetBoard()->RedrawFilledAreas( DrawPanel, DC, GR_OR, layer ); + GetBoard()->RedrawAreasOutlines( m_canvas, DC, GR_OR, layer ); + GetBoard()->RedrawFilledAreas( m_canvas, DC, GR_OR, layer ); int ii = GetBoard()->GetAreaIndex( zone ); // test if zone_container exists @@ -718,7 +718,7 @@ static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC* aDC, void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container ) { int diag; - DrawPanel->m_IgnoreMouseEvents = true; + m_canvas->m_IgnoreMouseEvents = true; /* Save initial zones configuration, for undo/redo, before adding new zone * note the net name and the layer can be changed, so we must save all zones @@ -739,8 +739,8 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container diag = InstallDialogNonCopperZonesEditor( zone_container ); } - DrawPanel->MoveCursorToCrossHair(); - DrawPanel->m_IgnoreMouseEvents = false; + m_canvas->MoveCursorToCrossHair(); + m_canvas->m_IgnoreMouseEvents = false; if( diag == ZONE_ABORT ) { @@ -761,7 +761,7 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container for( int ii = 0; ii < GetBoard()->GetAreaCount(); ii++ ) { ZONE_CONTAINER* edge_zone = GetBoard()->GetArea( ii ); - edge_zone->Draw( DrawPanel, DC, GR_XOR ); + edge_zone->Draw( m_canvas, DC, GR_XOR ); } g_Zone_Default_Setting.ExportSetting( *zone_container); @@ -774,7 +774,7 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container GetBoard()->AreaPolygonModified( &_AuxiliaryList, zone_container, true, s_Verbose ); // Redraw the real new zone outlines: - GetBoard()->RedrawAreasOutlines( DrawPanel, DC, GR_OR, -1 ); + GetBoard()->RedrawAreasOutlines( m_canvas, DC, GR_OR, -1 ); UpdateCopyOfZonesList( s_PickedList, _AuxiliaryList, GetBoard() ); SaveCopyInUndoList(s_PickedList, UR_UNSPECIFIED); @@ -807,7 +807,7 @@ void PCB_EDIT_FRAME::Delete_Zone_Contour( wxDC* DC, ZONE_CONTAINER* zone_contain zone_container->m_Poly->RemoveContour( ncont ); } - DrawPanel->RefreshDrawingRect( dirty ); + m_canvas->RefreshDrawingRect( dirty ); OnModify(); } diff --git a/pcbnew/zones_by_polygon_fill_functions.cpp b/pcbnew/zones_by_polygon_fill_functions.cpp index 7600c295f0..08087f2a21 100644 --- a/pcbnew/zones_by_polygon_fill_functions.cpp +++ b/pcbnew/zones_by_polygon_fill_functions.cpp @@ -78,7 +78,7 @@ void PCB_EDIT_FRAME::Delete_OldZone_Fill( SEGZONE* aZone, long aTimestamp ) if( modify ) { OnModify(); - DrawPanel->Refresh(); + m_canvas->Refresh(); } } diff --git a/pcbnew/zones_polygons_test_connections.cpp b/pcbnew/zones_polygons_test_connections.cpp index 145e57b2e3..9b970ef7f6 100644 --- a/pcbnew/zones_polygons_test_connections.cpp +++ b/pcbnew/zones_polygons_test_connections.cpp @@ -31,11 +31,9 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ); void BOARD::Test_Connections_To_Copper_Areas( int aNetcode ) { // list of pads and tracks candidates on this layer and on this net. - std::vector Candidates; - int subnet = 0; - int netcode; - ZONE_CONTAINER* curr_zone; - BOARD_CONNECTED_ITEM* item; + // It is static to avoid multiple memory realloc. + static std::vector Candidates; + // clear .m_ZoneSubnet parameter for pads for( MODULE* module = m_Modules; module; module = module->Next() ) @@ -53,13 +51,14 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode ) } // examine all zones, net by net: + int subnet = 0; for( int index = 0; index < GetAreaCount(); index++ ) { - curr_zone = GetArea( index ); + ZONE_CONTAINER* curr_zone = GetArea( index ); if( !curr_zone->IsOnCopperLayer() ) continue; - netcode = curr_zone->GetNet(); + int netcode = curr_zone->GetNet(); if( (aNetcode >= 0) && !( aNetcode == netcode ) ) continue; @@ -71,21 +70,22 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode ) // At this point, layers are not considered, because areas on different layers can // be connected by a via or a pad. - for( MODULE* module = m_Modules; module; module = module->Next() ) - { - for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() ) - { - if( pad->GetNet() != curr_zone->GetNet() ) - continue; - Candidates.push_back( pad ); - } - } + // Build the list of pads candidates connected to the net: + NETINFO_ITEM* net = FindNet( netcode ); + wxASSERT( net ); + if( net == NULL ) + continue; + Candidates.reserve( net->m_PadInNetList.size() ); + for( unsigned ii = 0; ii < net->m_PadInNetList.size(); ii++ ) + Candidates.push_back( net->m_PadInNetList[ii] ); - for( TRACK* track = m_Track; track; track = track->Next() ) + // Build the list of track candidates connected to the net: + TRACK* track = m_Track.GetFirst()->GetStartNetCode( netcode ); + for( ; track; track = track->Next() ) { if( track->GetNet() != netcode ) - continue; + break; Candidates.push_back( track ); } @@ -102,7 +102,7 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode ) for( unsigned ic = 0; ic < Candidates.size(); ic++ ) { // test if this area is connected to a board item: - item = Candidates[ic]; + BOARD_CONNECTED_ITEM* item = Candidates[ic]; if( !item->IsOnLayer( curr_zone->GetLayer() ) ) continue; @@ -212,10 +212,6 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb ) */ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ) { - BOARD_CONNECTED_ITEM* item; - int old_subnet, subnet, next_subnet_free_number; - int old_zone_subnet, zone_subnet; - // Ensure a zone with the given netcode exists: examine all zones: bool found = false; @@ -233,35 +229,38 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ) if( !found ) // No zone with this netcode, therefore no connection by zone return; - std::vector Candidates; // list of pads and tracks candidates to test. + // list of pads and tracks candidates to test: + // It is static to avoid multiple memory realloc. + static std::vector Candidates; + Candidates.clear(); - // Build a list of candidates connected to the net: - next_subnet_free_number = 0; + // Build the list of pads candidates connected to the net: + NETINFO_ITEM* net = aPcb->FindNet( aNetcode ); + wxASSERT( net ); + Candidates.reserve( net->m_PadInNetList.size() ); + for( unsigned ii = 0; ii < net->m_PadInNetList.size(); ii++ ) + Candidates.push_back( net->m_PadInNetList[ii] ); - for( MODULE* module = aPcb->m_Modules; module; module = module->Next() ) + // Build the list of track candidates connected to the net: + TRACK* track; + track = aPcb->m_Track.GetFirst()->GetStartNetCode( aNetcode ); + for( ; track; track = track->Next() ) { - for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() ) - { - if( pad->GetNet() == aNetcode ) - { - Candidates.push_back( pad ); - next_subnet_free_number = MAX( next_subnet_free_number, pad->GetSubNet() ); - } - } - } - - for( TRACK* track = aPcb->m_Track; track; track = track->Next() ) - { - if( track->GetNet() == aNetcode ) - { - Candidates.push_back( track ); - next_subnet_free_number = MAX( next_subnet_free_number, track->GetSubNet() ); - } + if( track->GetNet() != aNetcode ) + break; + Candidates.push_back( track ); } if( Candidates.size() == 0 ) return; + int next_subnet_free_number = 0; + for( unsigned ii = 0; ii < Candidates.size(); ii++ ) + { + int subnet = Candidates[ii]->GetSubNet(); + next_subnet_free_number = MAX( next_subnet_free_number, subnet ); + } + next_subnet_free_number++; // This is a subnet we can use with not connected items // by tracks, but connected by zone. @@ -269,12 +268,12 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ) sort( Candidates.begin(), Candidates.end(), CmpZoneSubnetValue ); // Some items can be not connected, but they can be connected to a filled area: - // give them a subnet common to these items connected only by the area, and not already used. + // give them a subnet common to these items connected only by the area, + // and not already used. // a value like next_subnet_free_number+zone_subnet is right for( unsigned jj = 0; jj < Candidates.size(); jj++ ) { - item = Candidates[jj]; - + BOARD_CONNECTED_ITEM* item = Candidates[jj]; if ( item->GetSubNet() == 0 && (item->GetZoneSubNet() > 0) ) { item->SetSubNet( next_subnet_free_number + item->GetZoneSubNet() ); @@ -283,18 +282,17 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ) // Now, for each zone subnet, we search for 2 items with different subnets. // if found, the 2 subnet are merged in the whole candidate list. - old_subnet = 0; - old_zone_subnet = 0; - + int old_subnet = 0; + int old_zone_subnet = 0; for( unsigned ii = 0; ii < Candidates.size(); ii++ ) { - item = Candidates[ii]; - zone_subnet = item->GetZoneSubNet(); + BOARD_CONNECTED_ITEM* item = Candidates[ii]; + int zone_subnet = item->GetZoneSubNet(); if( zone_subnet == 0 ) // Not connected by a filled area, skip it continue; - subnet = item->GetSubNet(); + int subnet = item->GetSubNet(); if( zone_subnet != old_zone_subnet ) // a new zone subnet is found { diff --git a/polygon/PolyLine.cpp b/polygon/PolyLine.cpp index 0a6b3e72d8..0cc4662be2 100644 --- a/polygon/PolyLine.cpp +++ b/polygon/PolyLine.cpp @@ -478,7 +478,7 @@ int CPolyLine::MakeKboolPoly( int aStart_contour, int aEnd_contour, std::vector< x = x1; y = y1; } - booleng->AddPoint( x1, y1 ); + booleng->AddPoint( x, y ); ivtx++; } }