From df54d3d3d4aab0481ab8a0e9ad23c97ac039ddf9 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 19 Apr 2010 05:02:31 +0000 Subject: make [hid] into a libdir-ish folder like earplug~ and freeverb~, and make sure hid-help.pd gets installed svn path=/trunk/externals/hcs/hid/; revision=13454 --- hid-help.pd | 573 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 573 insertions(+) create mode 100644 hid-help.pd (limited to 'hid-help.pd') diff --git a/hid-help.pd b/hid-help.pd new file mode 100644 index 0000000..c1550f0 --- /dev/null +++ b/hid-help.pd @@ -0,0 +1,573 @@ +#N canvas 366 51 715 555 10; +#X floatatom 27 439 5 0 0 0 - - -; +#X floatatom 83 439 5 0 0 0 - - -; +#X floatatom 63 395 6 0 0 0 - - -; +#X obj 191 164 tgl 35 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 25 +; +#X floatatom 571 340 12 0 0 1 value - -; +#X symbolatom 531 356 15 0 0 1 event_code - -; +#X symbolatom 492 372 15 0 0 1 event_type - -; +#X obj 2 2 cnv 15 700 20 empty empty hid 2 11 1 18 -233017 -66577 0 +; +#X text 274 332 outlet message format:; +#X floatatom 138 343 5 0 0 1 ev_syn - -; +#X obj 111 342 +; +#X msg 111 322 1; +#X msg 374 140 close; +#X msg 374 119 refresh; +#X text 435 117 refresh device list; +#X text 422 533 released under the GNU GPL; +#X msg 436 201 poll 20; +#X msg 374 201 poll 2; +#X text 370 186 start polling and set the poll delay in ms; +#X text 356 33 !!! This software is very much alpha \, so any aspect +of it could change without notice !!!; +#X obj 16 291 route key rel abs syn; +#X obj 9 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1 +; +#N canvas 278 328 631 544 Event_Codes 0; +#X text 28 48 (For a complete listing of Linux Input Events \, see +/usr/include/linux/input.h.); +#X obj 11 9 cnv 15 580 30 empty empty Event_Codes 20 12 1 14 -225271 +-66577 0; +#X text 32 118 EVENT CODE; +#X text 162 118 #define; +#X text 232 118 number; +#X text 32 133 -----------------------------------; +#X text 32 148 X Axis; +#X text 32 163 Y Axis; +#X text 32 178 Z Axis; +#X text 32 193 Horizontal Wheel; +#X text 32 208 Dial; +#X text 32 223 Wheel; +#X text 32 238 Misc; +#X text 162 148 REL_X; +#X text 162 163 REL_Y; +#X text 162 178 REL_Z; +#X text 162 193 REL_HWHEEL; +#X text 162 208 REL_DIAL; +#X text 162 223 REL_WHEEL; +#X text 162 238 REL_MISC; +#X text 247 148 0; +#X text 247 163 1; +#X text 247 178 2; +#X text 247 193 6; +#X text 247 208 7; +#X text 247 223 8; +#X text 247 238 9; +#X text 307 118 EVENT CODE; +#X text 457 118 #define; +#X text 547 118 number; +#X text 307 148 Absolute X; +#X text 307 163 Absolute Y; +#X text 307 178 Absolute Z; +#X text 307 193 RX; +#X text 307 208 RY; +#X text 307 223 RZ; +#X text 307 238 Throttle; +#X text 307 253 Rudder; +#X text 307 268 Wheel; +#X text 307 283 Gas Pedal; +#X text 307 298 Brake Pedal; +#X text 307 313 Hat Switch 0 X-axis; +#X text 307 328 Hat Switch 0 Y-axis; +#X text 307 343 Hat Switch 1 X-axis; +#X text 307 358 Hat Switch 1 Y-axis; +#X text 307 373 Hat Switch 2 X-axis; +#X text 307 388 Hat Switch 2 Y-axis; +#X text 307 403 Hat Switch 3 X-axis; +#X text 307 418 Hat Switch 3 Y-axis; +#X text 307 433 Pressure; +#X text 307 448 Distance; +#X text 307 463 Tilt X-Axis; +#X text 307 478 Tilt Y-Axis; +#X text 307 493 Misc; +#X text 457 148 ABS_X; +#X text 457 163 ABS_Y; +#X text 457 178 ABS_Z; +#X text 457 193 ABS_RX; +#X text 457 208 ABS_RY; +#X text 457 223 ABS_RZ; +#X text 457 238 ABS_THROTTLE; +#X text 457 253 ABS_RUDDER; +#X text 457 268 ABS_WHEEL; +#X text 457 283 ABS_GAS; +#X text 457 298 ABS_BRAKE; +#X text 457 313 ABS_HAT0X; +#X text 457 328 ABS_HAT0Y; +#X text 457 343 ABS_HAT1X; +#X text 457 358 ABS_HAT1Y; +#X text 457 373 ABS_HAT2X; +#X text 457 388 ABS_HAT2Y; +#X text 457 403 ABS_HAT3X; +#X text 457 418 ABS_HAT3Y; +#X text 457 433 ABS_PRESSURE; +#X text 457 448 ABS_DISTANCE; +#X text 457 463 ABS_TILT_X; +#X text 457 478 ABS_TILT_Y; +#X text 457 493 ABS_MISC; +#X text 563 148 0; +#X text 563 163 1; +#X text 563 178 2; +#X text 563 193 3; +#X text 563 208 4; +#X text 563 223 5; +#X text 563 238 6; +#X text 563 253 7; +#X text 563 268 8; +#X text 563 283 9; +#X text 563 298 10; +#X text 563 313 16; +#X text 563 328 17; +#X text 563 343 18; +#X text 563 358 19; +#X text 563 373 20; +#X text 563 388 21; +#X text 563 403 22; +#X text 563 418 23; +#X text 563 433 24; +#X text 563 448 25; +#X text 563 463 26; +#X text 563 478 27; +#X text 563 493 28; +#X obj 30 89 cnv 15 250 25 empty empty Relative_Axes 20 12 1 12 -241660 +-66577 0; +#X obj 308 89 cnv 15 280 25 empty empty Absolute_Axes 20 12 1 12 -241660 +-66577 0; +#X text 307 133 ----------------------------------------; +#X text 32 285 EVENT CODE; +#X text 138 285 #define; +#X text 232 285 number; +#X text 32 300 -----------------------------------; +#X obj 30 256 cnv 15 250 25 empty empty Joystick_Buttons 20 12 1 12 +-241660 -66577 0; +#X text 138 315 BTN_TRIGGER; +#X text 32 315 Trigger; +#X text 32 330 Thumb; +#X text 32 345 Thumb 2; +#X text 32 360 Top; +#X text 32 375 Top 2; +#X text 32 390 Pinkie; +#X text 32 405 Base 1; +#X text 138 404 BTN_BASE; +#X text 138 330 BTN_THUMB; +#X text 138 345 BTN_THUMB2; +#X text 138 360 BTN_TOP; +#X text 138 375 BTN_TOP2; +#X text 138 390 BTN_PINKIE; +#X text 245 315 288; +#X text 245 330 289; +#X text 245 345 290; +#X text 245 360 291; +#X text 245 375 292; +#X text 245 390 293; +#X text 245 405 294; +#X text 245 419 295; +#X text 245 434 296; +#X text 245 448 297; +#X text 138 418 BTN_BASE2; +#X text 138 433 BTN_BASE3; +#X text 138 447 BTN_BASE4; +#X text 32 419 Base 2; +#X text 32 434 Base 3; +#X text 32 448 Base 4; +#X text 32 463 Base 5; +#X text 32 477 Base 6; +#X text 138 462 BTN_BASE5; +#X text 138 476 BTN_BASE6; +#X text 245 463 298; +#X text 245 477 299; +#X restore 593 91 pd Event_Codes; +#N canvas 50 289 469 317 Event_Types 0; +#X text 28 48 (For a complete listing of Linux Input Events \, see +/usr/include/linux/input.h.); +#X text 61 90 EVENT TYPE; +#X text 61 135 Keys and Buttons; +#X text 61 150 Relative Axes; +#X text 61 165 Absolute Axes; +#X text 61 180 Misc Events; +#X text 61 195 LED Event; +#X text 61 210 Sounds; +#X text 61 225 Autorepeat Values; +#X text 61 240 Force Feedback; +#X text 230 90 #define; +#X text 230 135 EV_KEY; +#X text 230 150 EV_REL; +#X text 230 165 EV_ABS; +#X text 230 180 EV_MSC; +#X text 230 195 EV_LED; +#X text 230 210 EV_SND; +#X text 230 225 EV_REP; +#X text 230 240 EV_FF; +#X text 315 90 number; +#X text 331 120 0; +#X text 331 135 1; +#X text 331 150 2; +#X text 331 165 3; +#X text 331 180 4; +#X text 331 195 17; +#X text 331 210 18; +#X text 331 225 20; +#X text 331 240 21; +#X obj 11 9 cnv 15 400 30 empty empty Event_Types 20 12 1 14 -262131 +-66577 0; +#X text 230 120 EV_SYN; +#X text 61 270 Force Feedback Status; +#X text 61 120 Syncronization Events; +#X text 230 270 EV_FF_STATUS; +#X text 331 270 23; +#X text 61 105 -------------------------------------------; +#X text 331 255 22; +#X text 230 255 EV_PWR; +#X text 61 255 Power Events (for UPS); +#X restore 593 71 pd Event_Types; +#N canvas 0 22 450 300 Event_Values 0; +#X text 28 48 (For a complete listing of Linux Input Events \, see +/usr/include/linux/input.h.); +#X obj 11 9 cnv 15 400 30 empty empty Event_Values 20 12 1 14 -261681 +-66577 0; +#X restore 593 111 pd Event_Values; +#X floatatom 140 439 5 0 0 0 - - -; +#X obj 421 394 route abs_hat0x abs_hat0y abs_hat1x abs_hat1y; +#X floatatom 421 416 7 0 0 0 - - -; +#X msg 374 161 print; +#X obj 304 250 hid 0; +#X text 437 141 close the device; +#X text 437 162 print the device and element lists; +#X text 9 212 Any non-zero value starts polling \,; +#X text 8 225 0 stops the polling. If the number; +#X text 9 238 is greater than 1 \, then the poll; +#X text 9 251 delay is set to that number.; +#X obj 27 419 route rel_x rel_y rel_z rel_wheel; +#X floatatom 196 439 5 0 0 0 - - -; +#X obj 492 321 unpack s s f; +#X text 298 346 event_type event_code value; +#X obj 63 374 route abs_x abs_y abs_z abs_rx abs_ry abs_rz abs_throttle +; +#X obj 421 432 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +-1; +#X floatatom 498 416 7 0 0 0 - - -; +#X obj 498 432 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 576 416 7 0 0 0 - - -; +#X obj 576 432 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 653 416 7 0 0 0 - - -; +#X obj 653 432 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 113 395 6 0 0 0 - - -; +#X floatatom 163 395 6 0 0 0 - - -; +#X floatatom 213 395 6 0 0 0 - - -; +#X floatatom 263 395 6 0 0 0 - - -; +#X floatatom 313 395 6 0 0 0 - - -; +#X floatatom 363 395 6 0 0 0 - - -; +#X obj 39 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1 +; +#X obj 69 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1 +; +#X obj 99 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1 +; +#X obj 129 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 159 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 189 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 219 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 249 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 279 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 309 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 339 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 369 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 399 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 9 460 route btn_0 btn_1 btn_2 btn_3 btn_4 btn_5 btn_6 btn_7 +btn_8 btn_9 btn_10 btn_11 btn_12 btn_13 btn_14 btn_15; +#X obj 429 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X obj 459 502 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 +1; +#X msg 25 155 debug 0; +#X msg 298 145 info; +#N canvas 752 103 411 235 see 0; +#N canvas 108 318 543 264 route 0; +#X obj 27 14 inlet; +#X obj 72 226 outlet; +#X obj 19 226 outlet; +#X obj 172 226 outlet; +#X obj 222 204 symbol; +#X obj 222 226 outlet; +#X obj 272 204 symbol; +#X obj 272 226 outlet; +#X obj 322 204 symbol; +#X obj 322 226 outlet; +#X obj 372 204 symbol; +#X obj 372 226 outlet; +#X obj 122 225 outlet; +#X obj 422 204 symbol; +#X obj 422 226 outlet; +#X obj 472 204 symbol; +#X obj 472 226 outlet; +#X obj 26 63 route open device poll total product manufacturer transport +type vendorID productID; +#X connect 0 0 17 0; +#X connect 4 0 5 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 10 0 11 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; +#X connect 17 0 2 0; +#X connect 17 1 1 0; +#X connect 17 2 12 0; +#X connect 17 3 3 0; +#X connect 17 4 4 0; +#X connect 17 5 6 0; +#X connect 17 6 8 0; +#X connect 17 7 10 0; +#X connect 17 8 13 0; +#X connect 17 9 15 0; +#X restore 117 70 pd route info; +#X obj 81 96 tgl 15 0 empty empty open 0 -6 0 8 -262144 -1 -1 1 1; +#X obj 110 22 inlet; +#X obj 123 43 print info; +#X symbolatom 304 93 0 0 0 0 productID - -; +#X symbolatom 304 112 0 0 0 0 vendorID - -; +#X symbolatom 304 151 0 0 0 0 transport - -; +#X symbolatom 304 171 0 0 0 0 manufacturer - -; +#X symbolatom 186 192 0 0 0 0 product - -; +#X floatatom 97 140 5 0 0 0 device - -; +#X floatatom 97 162 5 0 0 0 poll - -; +#X symbolatom 304 131 0 0 0 0 type - -; +#X floatatom 97 182 5 0 0 0 total - -; +#X connect 0 0 1 0; +#X connect 0 1 9 0; +#X connect 0 2 10 0; +#X connect 0 3 12 0; +#X connect 0 4 8 0; +#X connect 0 5 7 0; +#X connect 0 6 6 0; +#X connect 0 7 11 0; +#X connect 0 8 5 0; +#X connect 0 9 4 0; +#X connect 2 0 0 0; +#X connect 2 0 3 0; +#X restore 420 271 pd see device info; +#N canvas 553 77 380 450 open 0; +#X obj 77 61 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 78 81 open mouse \$1; +#X obj 121 201 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 130 221 open keyboard \$1; +#X obj 50 13 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X obj 55 417 outlet; +#X obj 85 108 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 94 128 open joystick \$1; +#X msg 59 33 open pointer \$1; +#X obj 101 155 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 110 175 open gamepad \$1; +#X obj 137 244 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 146 264 open keypad \$1; +#X obj 141 291 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X msg 150 311 open multiaxiscontroller \$1; +#X text 155 342 or just open the first one:; +#X msg 138 363 open mouse; +#X msg 159 381 open joystick; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 5 0; +#X connect 13 0 14 0; +#X connect 14 0 5 0; +#X connect 16 0 5 0; +#X connect 17 0 5 0; +#X restore 203 59 pd open by device type; +#N canvas 796 51 470 320 open 0; +#X text 217 82 Gravis/Destroyer Tiltpad; +#X msg 76 81 open 0x047D 0x4008; +#X msg 73 53 open 0x046d 0xc01d; +#X text 211 53 Logitech USB-PS/2 Optical Mouse; +#X obj 10 277 outlet; +#X text 9 12 You can use the hex values of the USB vendor and product +IDs (it is not case sensitive):; +#X text 221 111 Overtone CUI v1.0; +#X msg 80 110 open 0x1043 0x0015; +#X msg 83 136 open 0x06a3 0xff12; +#X text 221 134 Saitek Cyborgforce; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X restore 174 37 pd open by vendor/product ID; +#N canvas 114 93 467 346 test 0; +#X obj 144 45 inlet; +#X obj 88 104 route DESKTOP; +#X obj 87 158 route DESKTOP57; +#X obj 70 207 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 95 212 5 0 0 0 - - -; +#X obj 148 215 spigot; +#X obj 146 256 print test; +#X obj 189 192 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 292 122 spigot; +#X obj 290 163 print test; +#X obj 333 99 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X connect 0 0 1 0; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 5 0 6 0; +#X connect 7 0 5 1; +#X connect 8 0 9 0; +#X connect 10 0 8 1; +#X restore 197 303 pd test; +#X msg 504 201 poll 200; +#X text 69 533 (C) Copyright 2004 Hans-Christoph Steiner +; +#N canvas 162 133 570 420 serin 0; +#X obj 209 61 cnv 15 15 15 empty \$0-debug-canvas 0 4 8 0 14 -233017 +-1 0; +#X obj 60 61 hradio 15 1 1 10 empty empty empty 0 -6 0 8 -261689 -1 +-1 0; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X msg 60 210 debug \$1; +#X obj 200 225 send \$0-debug-canvas; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 11 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 10 0 8 0; +#X coords 0 -1 1 1 165 17 1 60 60; +#X restore 25 134 pd serin; +#X msg 262 114 open 0; +#X obj 249 300 pddp/print; +#N canvas 162 133 570 420 serin 0; +#X obj 286 61 cnv 15 30 15 empty \$0-open-canvas 0 4 8 0 14 -233017 +-1 0; +#X obj 60 61 hradio 15 1 1 15 empty empty empty 0 -6 0 8 -225271 -1 +-1 0; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X msg 60 210 open \$1; +#X obj 200 225 send \$0-open-canvas; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 11 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 10 0 8 0; +#X coords 0 -1 1 1 257 17 1 60 60; +#X restore 262 92 pd serin; +#X connect 3 0 29 0; +#X connect 9 0 10 1; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 12 0 29 0; +#X connect 13 0 29 0; +#X connect 16 0 29 0; +#X connect 17 0 29 0; +#X connect 20 0 67 0; +#X connect 20 1 36 0; +#X connect 20 2 40 0; +#X connect 20 3 11 0; +#X connect 26 0 27 0; +#X connect 26 1 42 0; +#X connect 26 2 44 0; +#X connect 26 3 46 0; +#X connect 27 0 41 0; +#X connect 28 0 29 0; +#X connect 29 0 20 0; +#X connect 29 0 38 0; +#X connect 29 0 75 0; +#X connect 29 0 80 0; +#X connect 29 1 72 0; +#X connect 36 0 0 0; +#X connect 36 1 1 0; +#X connect 36 2 25 0; +#X connect 36 3 37 0; +#X connect 38 0 6 0; +#X connect 38 1 5 0; +#X connect 38 2 4 0; +#X connect 40 0 2 0; +#X connect 40 1 48 0; +#X connect 40 2 49 0; +#X connect 40 3 50 0; +#X connect 40 4 51 0; +#X connect 40 5 52 0; +#X connect 40 6 53 0; +#X connect 40 7 26 0; +#X connect 42 0 43 0; +#X connect 44 0 45 0; +#X connect 46 0 47 0; +#X connect 67 0 21 0; +#X connect 67 1 54 0; +#X connect 67 2 55 0; +#X connect 67 3 56 0; +#X connect 67 4 57 0; +#X connect 67 5 58 0; +#X connect 67 6 59 0; +#X connect 67 7 60 0; +#X connect 67 8 61 0; +#X connect 67 9 62 0; +#X connect 67 10 63 0; +#X connect 67 11 64 0; +#X connect 67 12 65 0; +#X connect 67 13 66 0; +#X connect 67 14 68 0; +#X connect 67 15 69 0; +#X connect 70 0 29 0; +#X connect 71 0 29 0; +#X connect 73 0 29 0; +#X connect 74 0 29 0; +#X connect 76 0 29 0; +#X connect 78 0 70 0; +#X connect 79 0 29 0; +#X connect 81 0 79 0; -- cgit v1.2.1