view SwordSounds2/SwordAuto.pd @ 306:c57f401165ca tip

New Decision tree added
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Sat, 13 Jan 2018 14:47:35 +0000
parents 6aaeb2789f99
children
line wrap: on
line source
#N canvas 114 83 1440 714 10;
#X obj 581 -63 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X obj 644 -63 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X text 641 -154 Gain;
#X obj 580 -180 loadbang;
#N canvas 865 368 284 318 opLevels 0;
#X obj 85 188 dac~;
#X obj 30 70 catch~ l;
#X obj 155 76 catch~ r;
#X obj 155 106 *~ 0.45;
#X obj 30 104 *~ 0.45;
#X obj 30 210 prvu~;
#X obj 155 213 prvu~;
#X obj 100 69 / 127;
#X obj 100 34 inlet;
#X obj 30 239 outlet;
#X obj 155 241 outlet;
#X obj 155 132 /~ 1;
#X obj 30 131 /~ 1;
#X obj 204 29 inlet;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 12 0;
#X connect 5 0 9 0;
#X connect 6 0 10 0;
#X connect 7 0 3 1;
#X connect 7 0 4 1;
#X connect 8 0 7 0;
#X connect 11 0 0 1;
#X connect 11 0 6 0;
#X connect 12 0 0 0;
#X connect 12 0 5 0;
#X connect 13 0 12 1;
#X connect 13 0 11 1;
#X restore 580 -106 pd opLevels;
#X msg 580 -157 5;
#X msg 54 -185 1;
#X obj 54 -162 s bladeLen;
#X obj -148 -153 s NoOfSources;
#X obj -110 242 s topSpeed;
#X obj -162 216 hsl 100 20 0 100 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 2475 1;
#X floatatom -165 242 8 0 0 0 - - -;
#X text 87 -186 Blade Length;
#X text 86 -120 Arm Length;
#X text -120 -176 Number of Sources;
#X text -54 220 Top Speed;
#X obj 132 35 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 7425 1;
#X floatatom 129 67 8 0 0 0 - - -;
#N canvas 528 427 426 335 thickCalc 0;
#X obj 173 139 r NoOfSources;
#X obj 158 115 -;
#X obj 158 164 /;
#X floatatom 126 147 5 0 0 0 - - -;
#X floatatom 94 189 8 0 0 0 - - -;
#X obj 173 72 t f b;
#X obj 200 95 delay 9;
#X text 58 237 Calculates the difference in thickness between sources
;
#X text 59 254 based on the blade tapering in a straight line;
#X obj 158 19 r hiltThick;
#X obj 173 44 r tipThick;
#X obj 158 187 s deltaThick;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 2 0 11 0;
#X connect 5 0 1 1;
#X connect 5 1 6 0;
#X connect 6 0 1 0;
#X connect 9 0 1 0;
#X connect 10 0 5 0;
#X restore 412 -83 pd thickCalc;
#X obj -168 303 hsl 100 20 0 0.03 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 6600 1;
#X obj -169 388 hsl 100 20 0.0001 0.01 0 0 empty empty empty -2 -8
0 10 -262144 -1 -1 5900 1;
#X floatatom -171 333 8 0 0 0 - - -;
#X obj -117 332 s hiltThick;
#X floatatom -172 416 8 0 0 0 - - -;
#X obj -114 415 s tipThick;
#X text -54 305 Hilt Thickness;
#X text -62 389 Tip Thickness;
#X obj 254 -140 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 254 -87 s GO;
#X obj 254 -186 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj 254 -167 metro 200;
#X obj 308 -191 hsl 100 20 500 30 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj 194 -140 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
-1 -1;
#X obj 194 -87 s setUp;
#X obj -218 190 r setUp;
#X obj 71 15 r setUp;
#X obj -222 280 r setUp;
#X obj -223 368 r setUp;
#N canvas 303 28 1094 768 angleCalc 0;
#X obj -129 105 * 0.75;
#X obj 325 234 * 0.25;
#X obj -129 145 /;
#X obj -144 199 * 1000;
#X obj 263 254 delay \$1;
#X obj 236 202 f;
#X obj 236 159 r GO;
#X obj 236 228 t f b;
#X msg 227 367 0;
#X obj 325 276 /;
#X obj 325 298 * 1000;
#X obj -127 225 s \$0_thisDe;
#X obj 251 181 r \$0_thisDe;
#X obj 145 237 r sweepAngle;
#X obj -129 81 r maxCirc;
#X obj 325 212 r maxCirc;
#X obj -114 124 r topSpeed;
#X obj 340 255 r topSpeed;
#X obj 644 360 delay \$1;
#X obj 646 302 f;
#X obj 639 248 r GO;
#X obj 646 328 t f b;
#X obj 682 208 r maxCirc;
#X obj 697 230 r topSpeed;
#X obj 682 254 /;
#X obj 682 276 * 1000;
#X obj 644 407 s end;
#X obj -77 312 r end;
#X obj 145 260 * -0.25;
#X text -193 45 0.75 represents the ratio of swing that;
#X text 200 118 0.25 represents the ratio of swing that;
#X text 200 132 the sword is decelerating;
#X text -102 149 Time taken for acceleration;
#X text -54 221 Send as a delay;
#X text 280 160 Recieve as a delay;
#X text -36 312 Reset angle;
#X text -38 325 once swing complete;
#X text 622 426 Send bang message at the;
#X text 623 438 end of the swing to reset;
#X text 379 296 Time for last;
#X text 381 307 1/4 of swing;
#X text -193 59 the sword is before 0 degrees;
#X text -121 700 Output of complete swing \, split into 75% before
0 degrees and 25% past 0 degrees;
#X text 568 517 Once delay from start to 0 degrees complete;
#X text 564 535 count down from 0 to finish the total swing angle;
#X text 98 9 Patch that calculates the angle between 0 degrees for
the full length of the swing;
#X obj -144 482 line~;
#X obj 86 601 metro 10;
#X obj 86 632 snapshot~;
#X floatatom 85 656 8 0 0 0 - - -;
#X obj 172 397 line~;
#X msg 172 350 \$1 \$2;
#X obj 151 319 pack;
#X obj 86 570 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom -108 266 5 0 0 0 - - -;
#X msg -90 438 \$1;
#X obj -48 365 r sweepAngle;
#X obj -48 387 * 0.75;
#X msg -144 427 0 \$1;
#X obj -62 341 r setUp;
#X obj 151 294 f;
#X obj -4 549 +~;
#X obj 227 342 r setUp;
#X floatatom -63 474 5 0 0 0 - - -;
#X text 11 464 comment;
#X obj -63 409 f;
#X floatatom -26 434 5 0 0 0 - - -;
#X obj 286 343 r end;
#X obj 632 276 delay 9;
#X obj 644 383 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -144 174 f;
#X obj -163 143 r GO;
#X obj -4 633 s~ swordAngle;
#X text 241 325 Set to 0 at end;
#X obj 86 545 loadbang;
#X obj 68 509 r obsAngle;
#X obj -4 576 +~ 1;
#X text 141 470 Adding in the observer angle here offsets the swing
angle by the angle the observer is at. This makes all the future calculations
as if the observer is positioned at 0 degrees to the swordSwing.;
#X connect 0 0 2 0;
#X connect 1 0 9 0;
#X connect 2 0 70 1;
#X connect 3 0 11 0;
#X connect 3 0 54 0;
#X connect 3 0 58 0;
#X connect 4 0 60 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 4 1;
#X connect 7 1 4 0;
#X connect 8 0 50 0;
#X connect 9 0 10 0;
#X connect 10 0 52 1;
#X connect 12 0 5 1;
#X connect 13 0 28 0;
#X connect 14 0 0 0;
#X connect 15 0 1 0;
#X connect 16 0 2 1;
#X connect 17 0 9 1;
#X connect 18 0 69 0;
#X connect 19 0 21 0;
#X connect 20 0 68 0;
#X connect 21 0 18 1;
#X connect 21 1 18 0;
#X connect 22 0 24 0;
#X connect 23 0 24 1;
#X connect 24 0 25 0;
#X connect 25 0 19 1;
#X connect 27 0 65 0;
#X connect 28 0 60 1;
#X connect 46 0 61 0;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 50 0 61 1;
#X connect 51 0 50 0;
#X connect 52 0 51 0;
#X connect 53 0 47 0;
#X connect 55 0 46 0;
#X connect 55 0 63 0;
#X connect 56 0 57 0;
#X connect 57 0 65 1;
#X connect 57 0 66 0;
#X connect 58 0 46 0;
#X connect 59 0 65 0;
#X connect 60 0 52 0;
#X connect 61 0 76 0;
#X connect 62 0 8 0;
#X connect 65 0 55 0;
#X connect 67 0 8 0;
#X connect 68 0 19 0;
#X connect 69 0 26 0;
#X connect 70 0 3 0;
#X connect 71 0 70 0;
#X connect 74 0 53 0;
#X connect 75 0 76 1;
#X connect 76 0 72 0;
#X connect 76 0 48 0;
#X restore 411 -116 pd angleCalc;
#X obj 583 -135 hsl 100 25 0.1 1000 1 0 empty empty empty -2 -8 0 10
-262144 -1 -1 9155 1;
#X obj 54 -209 loadbang;
#X obj 52 -140 loadbang;
#X obj -148 -198 loadbang;
#X obj -165 190 r thisTS;
#X obj -171 280 r thisHT;
#X obj -172 368 r thisTT;
#X obj 528 -155 r thisG;
#X obj -201 -196 r setUp;
#X obj 3 -142 r setUp;
#X obj 2 -207 r setUp;
#X text 819 -28 Presets;
#X obj 882 -190 loadbang;
#X obj 194 -192 loadbang;
#X obj 194 -168 delay 13;
#X obj 822 -89 t b;
#X obj 822 -47 s setUp;
#X obj 130 113 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X floatatom 127 145 8 0 0 0 - - -;
#X obj 69 93 r setUp;
#X obj 125 226 hsl 100 20 -90 90 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 7700 1;
#X floatatom 122 258 8 0 0 0 - - -;
#X obj 64 206 r setUp;
#X obj 123 304 hsl 100 20 -90 90 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 120 336 8 0 0 0 - - -;
#X obj 62 284 r setUp;
#N canvas 569 109 689 650 allSource 0;
#X obj 187 127 r distance;
#X obj 170 106 r angle;
#X obj 153 65 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 153 37 r setUp;
#X obj 204 147 r elev;
#X msg 153 84 10;
#X obj 153 170 tenSource;
#X connect 0 0 6 2;
#X connect 1 0 6 1;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 6 3;
#X connect 5 0 6 0;
#X restore 411 -55 pd allSource;
#X obj 177 257 s presweepElev;
#X obj 271 279 s postsweepElev;
#X text 236 227 pre-sweep elevation;
#X text 234 304 post-sweep elevation;
#X text 243 36 pre-sweep azimuth;
#X text 241 114 post-sweep azimuth;
#X obj 184 66 s presweepAzim;
#X obj 277 88 s postsweepAzim;
#X obj 52 -98 s start_armLength;
#X msg 52 -119 0.35;
#X obj 430 -30 sweepTime;
#X obj 692 -163 hsl 100 25 1 100 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 400 1;
#X floatatom 708 -123 5 0 0 0 - - -;
#X msg -148 -176 10;
#X obj 689 -207 loadbang;
#X msg 689 -184 5;
#N canvas 72 23 1360 722 maxCircCalc 0;
#X obj 440 104 +;
#X obj 468 128 s length;
#X obj 153 86 r presweepAzim;
#X obj 644 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 644 129 s GO;
#X obj 584 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985 -1
-1;
#X obj 584 129 s setUp;
#X obj 153 132 * 6.28312;
#X obj 153 110 / 360;
#X obj 153 174 *;
#X floatatom 91 198 5 0 0 0 - - -;
#X text 194 175 Circumference of the nearest source on blade;
#X text 307 191 up to 0 azimuth;
#X obj 153 200 s minPreCirc;
#X obj 437 279 * 6.28312;
#X obj 437 257 / 360;
#X obj 437 321 *;
#X floatatom 375 345 5 0 0 0 - - -;
#X text 478 322 Circumference of the nearest source on blade;
#X obj 437 233 r postsweepAzim;
#X obj 437 347 s minPostCirc;
#X obj 149 252 r presweepAzim;
#X obj 149 276 / 360;
#X obj 149 342 *;
#X floatatom 85 364 8 0 0 0 - - -;
#X obj 440 57 r bladeLen;
#X obj 455 81 r start_armLength;
#X obj 437 434 * 6.28312;
#X obj 437 412 / 360;
#X obj 437 478 *;
#X floatatom 399 501 5 0 0 0 - - -;
#X obj 437 388 r postsweepAzim;
#X obj 164 362 r minPreCirc;
#X obj 149 383 -;
#X obj 149 426 /;
#X floatatom 111 454 5 0 0 0 - - -;
#X obj 164 403 r NoOfSources;
#X obj 149 454 s deltaPreCirc;
#X obj 437 519 -;
#X obj 437 562 /;
#X obj 452 539 r NoOfSources;
#X obj 452 498 r minPostCirc;
#X obj 437 590 s deltaPostCirc;
#X floatatom 397 591 5 0 0 0 - - -;
#X text 33 334 Max Circumference;
#X text 323 472 Max Circumference;
#X obj 1076 361 r presweepElev;
#X obj 1091 384 r postsweepElev;
#X obj 1076 419 +;
#X obj 1076 441 * 0.5;
#X obj 1075 488 * 6.28312;
#X obj 1075 466 / 360;
#X obj 1074 514 cos;
#X floatatom 1020 613 5 0 0 0 - - -;
#X floatatom 1126 425 5 0 0 0 - - -;
#X obj 1074 536 *;
#X floatatom 531 128 5 0 0 0 - - -;
#X obj 1101 514 r start_armLength;
#X obj 149 298 * 6.28319;
#X obj 1074 562 s compSrcRadius;
#X obj 452 300 r compSrcRadius;
#X obj 168 153 r compSrcRadius;
#X obj 364 101 r arcConst;
#X obj 425 129 *;
#X floatatom 387 153 5 0 0 0 - - -;
#X obj 994 538 s arcConst;
#X obj 425 153 s compRadius;
#X obj 164 320 r compRadius;
#X obj 452 456 r compRadius;
#X connect 0 0 1 0;
#X connect 0 0 56 0;
#X connect 0 0 63 1;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 0 13 0;
#X connect 14 0 16 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 16 0 20 0;
#X connect 19 0 15 0;
#X connect 21 0 22 0;
#X connect 22 0 58 0;
#X connect 23 0 24 0;
#X connect 23 0 33 0;
#X connect 25 0 0 0;
#X connect 26 0 0 1;
#X connect 27 0 29 0;
#X connect 28 0 27 0;
#X connect 29 0 30 0;
#X connect 29 0 38 0;
#X connect 31 0 28 0;
#X connect 32 0 33 1;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 34 0 37 0;
#X connect 36 0 34 1;
#X connect 38 0 39 0;
#X connect 39 0 42 0;
#X connect 39 0 43 0;
#X connect 40 0 39 1;
#X connect 41 0 38 1;
#X connect 46 0 48 0;
#X connect 47 0 48 1;
#X connect 48 0 49 0;
#X connect 48 0 54 0;
#X connect 49 0 51 0;
#X connect 50 0 52 0;
#X connect 51 0 50 0;
#X connect 52 0 55 0;
#X connect 52 0 65 0;
#X connect 55 0 53 0;
#X connect 55 0 59 0;
#X connect 57 0 55 1;
#X connect 58 0 23 0;
#X connect 60 0 16 1;
#X connect 61 0 9 1;
#X connect 62 0 63 0;
#X connect 63 0 64 0;
#X connect 63 0 66 0;
#X connect 67 0 23 1;
#X connect 68 0 29 1;
#X restore 402 -6 pd maxCircCalc;
#X msg 198 12 80;
#X obj 408 37 centreAngles;
#X obj -163 -74 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 4950 1;
#X obj -164 20 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 5247 1;
#X obj -164 111 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 4950 1;
#X obj -166 -51 s Xobs;
#X obj -167 40 s Yobs;
#X obj -167 138 s Zobs;
#X floatatom -206 -51 5 0 0 0 - - -;
#X floatatom -206 41 5 0 0 0 - - -;
#X floatatom -207 133 5 0 0 0 - - -;
#X msg -158 -98 0;
#X msg -158 85 0;
#X msg -160 -4 0.7;
#X obj -211 -100 r setUp;
#X obj -216 -3 r setUp;
#X obj -220 88 r setUp;
#X msg -108 -5 0;
#X msg 247 8 90;
#X msg -116 85 4;
#X msg -119 -97 4;
#X msg 190 203 0;
#X msg 200 94 -60;
#X msg 237 203 50;
#X msg 190 281 -30;
#X msg -59 -6 1.034;
#X msg -16 -6 2.034;
#X msg 30 -4 3;
#X msg -97 187 0.5;
#X msg -77 -102 0.2;
#X msg -84 84 0.2;
#X text 753 373 Take Sword10_D2 and keep the elevation and azimuth
as equal and opposite on each side \, always crossing 0;
#X obj 277 64 * -1;
#X obj 271 257 * -1;
#X floatatom 539 -104 5 0 0 0 - - -;
#X msg -93 278 0.02;
#X msg -99 362 0.008;
#X msg -30 191 35;
#X obj 882 187 s thisXobs;
#X obj -166 -119 r thisXobs;
#X obj 899 166 s thisYobs;
#X obj -167 -27 r thisYobs;
#X obj -167 66 r thisZobs;
#X obj 917 144 s thisZobs;
#X obj 934 121 s thisTS;
#X obj 952 100 s thisHT;
#X obj 970 80 s thisTT;
#X obj 987 58 s thisPrA;
#X obj 1005 39 s thisPrE;
#X obj 129 14 r thisPrA;
#X obj 127 92 r thisPoA;
#X obj 122 205 r thisPrE;
#X obj 120 283 r thisPoE;
#X obj 882 -5 unpack f f f f f f f f f;
#X obj 1023 18 s thisG;
#X obj 822 -68 delay 9;
#X msg 882 -161 0 0 0 25 0.02 0.006 80 50 500;
#X msg 286 9 10;
#X msg 317 8 0;
#X msg 894 -138 0 0 4 25 0.02 0.006 80 50 500;
#X msg 905 -115 4 0 4 25 0.02 0.006 80 50 500;
#X msg 920 -50 0 0 0 25 0.03 0.01 45 0 500;
#X msg 916 -77 0 0 0 35 0.005 0.003 45 10 150;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 4 1 1 0;
#X connect 5 0 39 0;
#X connect 6 0 7 0;
#X connect 10 0 9 0;
#X connect 10 0 11 0;
#X connect 16 0 17 0;
#X connect 16 0 72 0;
#X connect 16 0 115 0;
#X connect 19 0 21 0;
#X connect 19 0 22 0;
#X connect 20 0 23 0;
#X connect 20 0 24 0;
#X connect 27 0 28 0;
#X connect 29 0 30 0;
#X connect 30 0 27 0;
#X connect 31 0 30 1;
#X connect 32 0 33 0;
#X connect 34 0 10 0;
#X connect 35 0 16 0;
#X connect 36 0 19 0;
#X connect 37 0 20 0;
#X connect 39 0 4 0;
#X connect 39 0 117 0;
#X connect 40 0 6 0;
#X connect 41 0 75 0;
#X connect 42 0 79 0;
#X connect 43 0 10 0;
#X connect 44 0 19 0;
#X connect 45 0 20 0;
#X connect 46 0 39 0;
#X connect 47 0 79 0;
#X connect 48 0 75 0;
#X connect 49 0 6 0;
#X connect 51 0 139 0;
#X connect 52 0 53 0;
#X connect 53 0 32 0;
#X connect 54 0 138 0;
#X connect 56 0 57 0;
#X connect 58 0 56 0;
#X connect 59 0 60 0;
#X connect 59 0 66 0;
#X connect 59 0 116 0;
#X connect 61 0 59 0;
#X connect 62 0 63 0;
#X connect 64 0 62 0;
#X connect 75 0 74 0;
#X connect 77 0 4 1;
#X connect 77 0 78 0;
#X connect 79 0 8 0;
#X connect 80 0 81 0;
#X connect 81 0 77 0;
#X connect 83 0 16 0;
#X connect 85 0 88 0;
#X connect 85 0 91 0;
#X connect 86 0 89 0;
#X connect 86 0 92 0;
#X connect 87 0 90 0;
#X connect 87 0 93 0;
#X connect 94 0 85 0;
#X connect 95 0 87 0;
#X connect 96 0 86 0;
#X connect 97 0 85 0;
#X connect 98 0 86 0;
#X connect 99 0 87 0;
#X connect 100 0 86 0;
#X connect 101 0 16 0;
#X connect 102 0 87 0;
#X connect 103 0 85 0;
#X connect 104 0 59 0;
#X connect 105 0 56 0;
#X connect 106 0 59 0;
#X connect 107 0 62 0;
#X connect 108 0 86 0;
#X connect 109 0 86 0;
#X connect 110 0 86 0;
#X connect 111 0 10 0;
#X connect 112 0 85 0;
#X connect 113 0 87 0;
#X connect 115 0 73 0;
#X connect 116 0 67 0;
#X connect 118 0 19 0;
#X connect 119 0 20 0;
#X connect 120 0 10 0;
#X connect 122 0 85 0;
#X connect 124 0 86 0;
#X connect 125 0 87 0;
#X connect 132 0 16 0;
#X connect 134 0 59 0;
#X connect 135 0 62 0;
#X connect 136 0 121 0;
#X connect 136 1 123 0;
#X connect 136 2 126 0;
#X connect 136 3 127 0;
#X connect 136 4 128 0;
#X connect 136 5 129 0;
#X connect 136 6 130 0;
#X connect 136 7 131 0;
#X connect 136 8 137 0;
#X connect 138 0 55 0;
#X connect 139 0 54 0;
#X connect 139 0 136 0;
#X connect 140 0 16 0;
#X connect 141 0 16 0;
#X connect 142 0 136 0;
#X connect 143 0 136 0;
#X connect 144 0 136 0;
#X connect 145 0 136 0;