max v2; #N vpatcher 78 48 1020 792; #P origin 30 4; #P window setfont "Sans Serif" 9.; #P newex 477 221 45 196617 select 0; #P newex 434 651 378 196617 pack 0 0 0 0 0 0 0 0 0; #P newex 434 673 95 196617 prepend motion_xy; #P comment 660 448 100 196617 Tolerance of the Track groups; #P comment 189 223 90 196617 Minimum pixel size of a 'blob'; #P comment 224 628 172 196617 The X \, Y are sent to cv.jit.track each time the number of users changes. Sometimes cv.jit.track doesn't pick them up straight away \, so they are sent 3 times on a delay.; #P comment 742 62 83 196617 Track Groups on the original video feed.; #P message 397 42 29 196617 read; #P hidden message 723 478 14 196617 7; #P hidden message 640 479 26 196617 100; #P newex 477 311 49 196617 del 1000; #P newex 427 311 43 196617 del 500; #P newex 381 280 40 196617 t b b b; #P newex 578 267 62 196617 cv.jit.dilate; #P newex 134 420 61 196617 prepend set; #P message 134 444 89 196617 75 24; #P newex 242 420 61 196617 prepend set; #P message 242 444 89 196617 114 66; #P newex 346 420 61 196617 prepend set; #P message 346 444 89 196617 54 75; #P newex 444 420 61 196617 prepend set; #P comment 821 479 83 196617 Make sure that tolerance is not smaller than dispersion.; #P message 745 499 69 196617 dispersion \$1; #P message 673 499 65 196617 tolerance \$1; #P flonum 673 479 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 745 479 35 9 1 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 578 238 86 196617 jit.op @op +; #P newex 736 214 90 196617 jit.op @op +; #N vpatcher 835 80 1078 226; #P outlet 60 112 15 0; #P inlet 60 38 15 0; #P window setfont "Sans Serif" 9.; #P newex 60 60 158 196617 cv.jit.trackpoints @size 160 120; #P newex 60 85 99 196617 jit.op @op != @val 0; #P connect 2 0 1 0; #P connect 1 0 0 0; #P connect 0 0 3 0; #P pop; #P newobj 816 192 72 196617 p paint_points; #N vpatcher 451 63 703 221; #P outlet 60 112 15 0; #P inlet 60 38 15 0; #P window setfont "Sans Serif" 9.; #P newex 60 85 99 196617 jit.op @op != @val 0; #P newex 60 60 158 196617 cv.jit.trackpoints @size 160 120; #P connect 2 0 0 0; #P connect 0 0 1 0; #P connect 1 0 3 0; #P pop; #P newobj 736 192 72 196617 p paint_points; #P newex 578 291 62 196617 jit.op @op +; #P newex 578 214 86 196617 jit.op @op +; #N vpatcher 40 55 316 230; #P outlet 60 115 15 0; #P inlet 60 38 15 0; #P window setfont "Sans Serif" 9.; #P newex 60 85 99 196617 jit.op @op != @val 0; #P newex 60 60 158 196617 cv.jit.trackpoints @size 160 120; #P connect 2 0 0 0; #P connect 0 0 1 0; #P connect 1 0 3 0; #P pop; #P newobj 654 192 72 196617 p paint_points; #N vpatcher 451 63 735 239; #P outlet 60 114 15 0; #P inlet 60 38 15 0; #P window setfont "Sans Serif" 9.; #P newex 60 85 99 196617 jit.op @op != @val 0; #P newex 60 60 158 196617 cv.jit.trackpoints @size 160 120; #P connect 2 0 0 0; #P connect 0 0 1 0; #P connect 1 0 3 0; #P pop; #P newobj 578 192 72 196617 p paint_points; #P user jit.pwindow 576 60 162 122 0 1 0 0 1 0; #P hidden message 326 205 14 196617 0; #P hidden message 788 516 19 196617 36; #P hidden message 788 537 50 196617 offset \$1; #P number 802 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 757 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 757 607 55 196617 unpack 0 0; #P newex 757 582 85 196617 cv.jit.trackgroup; #P hidden message 694 516 20 196617 24; #P hidden message 694 537 50 196617 offset \$1; #P number 710 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 665 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 665 607 55 196617 unpack 0 0; #P newex 665 582 85 196617 cv.jit.trackgroup; #P hidden message 593 516 20 196617 12; #P hidden newex 593 494 45 196617 loadbang; #P hidden message 593 537 50 196617 offset \$1; #P number 618 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 573 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 573 607 55 196617 unpack 0 0; #P newex 573 582 85 196617 cv.jit.trackgroup; #P number 507 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 462 629 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 462 606 55 196617 unpack 0 0; #P newex 462 581 85 196617 cv.jit.trackgroup; #P newex 462 532 115 196617 jit.scissors @columns 4; #P newex 462 500 119 196617 cv.jit.track @npoints 48; #P message 444 444 89 196617 120 99; #P newex 381 341 53 196617 t b b b b; #P hidden message 192 204 26 196617 140; #N vpatcher 816 334 1099 724; #P window setfont "Sans Serif" 9.; #P newex 164 264 61 196617 prepend set; #P outlet 164 316 15 0; #P outlet 22 278 15 0; #P newex 164 290 45 196617 pack 0 0; #P inlet 140 274 15 0; #P outlet 105 278 15 0; #P newex 105 222 71 196617 expr 119-$i1; #P inlet 22 35 15 0; #P window setfont Verdana 10.; #P comment 172 141 53 472055818 bottom; #P comment 113 141 37 472055818 right; #P comment 70 141 30 472055818 top; #P newex 22 170 140 472055818 expr $i1+(($i2-$i1)/2); #P newex 60 196 134 472055818 expr $i1+(($i2-$i1)/2); #P newex 98 96 48 472055818 unpack; #P newex 22 97 48 472055818 unpack; #P newex 22 63 181 472055818 jit.findbounds @min 4 @max 4; #B color 5; #P comment 29 141 32 472055818 left; #P connect 9 0 1 0; #P connect 1 0 2 0; #P connect 2 0 5 0; #P connect 5 0 14 0; #P connect 2 1 4 0; #P fasten 1 1 3 0 112 86 103 86; #P fasten 4 0 10 0 65 217 110 217; #P connect 10 0 11 0; #P fasten 3 0 5 1 103 136 157 136; #P fasten 5 0 16 0 27 245 169 245; #P connect 16 0 13 0; #P connect 12 0 13 0; #P connect 13 0 15 0; #P fasten 3 1 4 1 141 126 189 126; #P fasten 4 0 13 1 65 245 204 245; #P pop; #P newobj 370 395 84 196617 p trak_4; #P window setfont Verdana 9.; #P number 356 598 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P number 8 667 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P user hslider 51 670 12 144 160 1 0 0; #P user uslider 356 469 13 104 120 1 0 0; #P window setfont "Sans Serif" 9.; #N vpatcher 437 234 766 609; #P window setfont "Sans Serif" 9.; #P newex 191 265 61 196617 prepend set; #P newex 191 291 45 196617 pack 0 0; #P outlet 191 316 15 0; #P outlet 30 280 15 0; #P inlet 165 275 15 0; #P outlet 113 280 15 0; #P newex 113 224 71 196617 expr 119-$i1; #P inlet 30 37 15 0; #P window setfont Verdana 10.; #P comment 180 143 53 472055818 bottom; #P comment 121 143 37 472055818 right; #P comment 78 143 30 472055818 top; #P newex 30 172 140 472055818 expr $i1+(($i2-$i1)/2); #P newex 68 198 134 472055818 expr $i1+(($i2-$i1)/2); #P newex 106 98 48 472055818 unpack; #P newex 30 99 48 472055818 unpack; #P newex 30 65 181 472055818 jit.findbounds @min 3 @max 3; #B color 5; #P comment 37 143 32 472055818 left; #P connect 9 0 1 0; #P connect 1 0 2 0; #P connect 2 0 5 0; #P connect 5 0 13 0; #P connect 2 1 4 0; #P fasten 1 1 3 0 120 88 111 88; #P fasten 4 0 10 0 73 219 118 219; #P connect 10 0 11 0; #P fasten 3 0 5 1 111 138 165 138; #P fasten 5 0 16 0 35 242 196 242; #P connect 16 0 15 0; #P connect 12 0 15 0; #P connect 15 0 14 0; #P fasten 3 1 4 1 149 128 197 128; #P fasten 4 0 15 1 73 253 232 253 231 290; #P pop; #P newobj 274 395 83 196617 p trak_3; #P window setfont Verdana 9.; #P number 310 598 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P number 8 644 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P user hslider 51 647 12 144 160 1 0 0; #P user uslider 310 469 13 104 120 1 0 0; #P window setfont "Sans Serif" 9.; #N vpatcher 437 234 739 574; #P window setfont "Sans Serif" 9.; #P newex 176 234 61 196617 prepend set; #P newex 176 260 45 196617 pack 0 0; #P outlet 176 284 15 0; #P outlet 25 263 15 0; #P inlet 154 246 15 0; #P outlet 108 263 15 0; #P newex 108 207 71 196617 expr 119-$i1; #P inlet 25 20 15 0; #P window setfont Verdana 10.; #P comment 175 126 53 472055818 bottom; #P comment 116 126 37 472055818 right; #P comment 73 126 30 472055818 top; #P newex 25 155 140 472055818 expr $i1+(($i2-$i1)/2); #P newex 63 181 134 472055818 expr $i1+(($i2-$i1)/2); #P newex 101 81 48 472055818 unpack; #P newex 25 82 48 472055818 unpack; #P newex 25 48 181 472055818 jit.findbounds @min 2 @max 2; #B color 5; #P comment 32 126 32 472055818 left; #P connect 9 0 1 0; #P connect 1 0 2 0; #P connect 2 0 5 0; #P connect 5 0 13 0; #P connect 2 1 4 0; #P fasten 1 1 3 0 115 71 106 71; #P fasten 4 0 10 0 68 202 113 202; #P connect 10 0 11 0; #P fasten 3 0 5 1 106 121 160 121; #P fasten 5 0 16 0 30 216 181 216; #P connect 16 0 15 0; #P connect 12 0 15 0; #P connect 15 0 14 0; #P fasten 3 1 4 1 144 111 192 111; #P fasten 4 0 15 1 68 229 216 229; #P pop; #P newobj 170 395 83 196617 p trak_2; #P window setfont Verdana 9.; #P number 269 598 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P number 8 620 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P user hslider 51 623 12 144 160 1 0 0; #P user uslider 269 469 13 104 120 1 0 0; #P window setfont "Sans Serif" 9.; #P hidden newex 244 186 45 196617 loadbang; #N vpatcher 564 306 854 650; #P window setfont "Sans Serif" 9.; #P newex 174 246 61 196617 prepend set; #P newex 174 272 45 196617 pack 0 0; #P outlet 174 299 15 0; #P outlet 23 273 15 0; #P inlet 152 256 15 0; #P outlet 106 273 15 0; #P newex 106 217 71 196617 expr 119-$i1; #P inlet 23 30 15 0; #P window setfont Verdana 10.; #P comment 173 136 53 472055818 bottom; #P comment 114 136 37 472055818 right; #P comment 71 136 30 472055818 top; #P newex 23 165 140 472055818 expr $i1+(($i2-$i1)/2); #P newex 61 191 134 472055818 expr $i1+(($i2-$i1)/2); #P newex 99 91 48 472055818 unpack; #P newex 23 92 48 472055818 unpack; #P newex 23 58 181 472055818 jit.findbounds @min 1 @max 1; #B color 5; #P comment 30 136 32 472055818 left; #P connect 9 0 1 0; #P connect 1 0 2 0; #P connect 2 0 5 0; #P connect 5 0 13 0; #P connect 2 1 4 0; #P fasten 1 1 3 0 113 81 104 81; #P fasten 4 0 10 0 66 212 111 212; #P connect 10 0 11 0; #P fasten 3 0 5 1 104 131 158 131; #P fasten 5 0 16 0 28 237 179 237; #P connect 16 0 15 0; #P connect 12 0 15 0; #P connect 15 0 14 0; #P fasten 3 1 4 1 142 121 190 121; #P fasten 4 0 15 1 66 237 214 237; #P pop; #P newobj 62 395 82 196617 p trak_1; #P window setfont Verdana 9.; #N vpatcher 253 78 580 492; #P window setfont "Sans Serif" 9.; #P newex 115 178 45 196617 delay 10; #P hidden newex 202 372 104 196617 bgcolor 210 210 195; #P newex 30 64 125 196617 jit.matrix 1 char 160 120; #P newex 30 90 27 196617 t l l; #P newex 182 204 99 196617 jit.op @op != @val 0; #P outlet 30 362 15 0; #N comlet (matrix) input; #P inlet 30 38 15 0; #N comlet (bang) change colours; #P inlet 80 159 15 0; #P newex 115 157 45 196617 loadbang; #P newex 72 279 105 196617 jit.op @op * @val 0.5; #P newex 30 325 55 196617 jit.hsl2rgb; #P button 80 181 15 0; #P newex 30 301 53 196617 jit.pack; #P newex 30 234 60 196617 jit.charmap; #P newex 80 204 98 196617 jit.noise 1 char 256; #P connect 8 0 12 0; #P connect 12 0 11 0; #P connect 11 0 1 0; #P connect 1 0 2 0; #P connect 2 0 4 0; #P connect 4 0 9 0; #P fasten 1 0 2 1 35 276 49 276; #P fasten 10 0 2 2 187 261 63 261; #P fasten 10 0 5 0 187 261 77 261; #P connect 5 0 2 3; #P connect 7 0 3 0; #P connect 3 0 0 0; #P fasten 14 0 0 0 120 198 85 198; #P connect 0 0 1 1; #P connect 6 0 14 0; #P fasten 11 1 10 0 52 113 187 113; #P pop; #P newobj 52 296 80 472055817 p colourcode; #P button 122 263 15 0; #P toggle 281 254 15 0; #P message 281 273 63 472055817 mode \$1; #P newex 381 221 79 472055817 change; #P number 228 598 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P number 8 598 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P user hslider 51 601 12 144 160 1 0 0; #P user uslider 228 469 13 104 120 1 0 0; #P newex 45 222 137 472055817 jit.op @op !- @val 255; #P number 381 258 37 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 353 197 53 472055817 jit.3m; #P number 192 254 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P message 192 273 77 472055817 threshold \$1; #P newex 170 300 111 472055817 cv.jit.label @mode 0; #P user jit.pwindow 51 469 162 122 0 1 0 0 1 0; #P number 191 163 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 45 188 114 472055817 jit.op @op > @val 30; #P newex 45 161 86 472055817 jit.rgb2luma; #P newex 45 138 158 472055817 jit.matrix 4 char 160 120; #P message 83 91 65 472055817 settings; #P flonum 338 42 35 9 0 0 0 7203 0 0 0 221 221 221 222 222 222 0 0 0; #P message 338 63 55 472055817 rate \$1; #P comment 34 37 47 472055817 Camera; #P toggle 197 39 15 0; #P newex 197 63 68 472055817 qmetro 100; #P message 300 63 31 472055817 stop; #P message 289 37 31 472055817 start; #P newex 197 93 82 472055817 jit.qt.movie; #P message 132 60 36 472055817 close; #P message 87 60 41 472055817 open; #P toggle 12 36 15 0; #P newex 12 60 68 472055817 qmetro 2; #P newex 12 90 66 472055817 jit.qt.grab; #P comment 222 40 48 472055817 movie; #P user panel 194 28 241 93; #X brgb 140 140 140; #X frgb 0 0 0; #X border 0; #X rounded 0; #X shadow 0; #X done; #P window setfont "Sans Serif" 9.; #P comment 229 141 90 196617 Threshold to adjust the images Black/White ratio; #P comment 750 448 100 196617 Dispersion of the Track groups; #P user panel 5 30 182 89; #X brgb 140 140 140; #X frgb 0 0 0; #X border 0; #X rounded 0; #X shadow 0; #X done; #P comment 536 675 274 196617 Format sent when more than one BLOB exists: Number of BLOBS \, 1 X+Y \, 2 X+Y \, 3 X+Y \, 4 X+Y; #P comment 55 209 100 196617 Invert image; #P comment 471 485 128 196617 48 points - 12 in a group; #P comment 61 315 97 196617 Random Colour assignment to each blob; #P comment 687 254 221 196617 This patch was made to automatically detect and track users location within an installation space \, with a max of 4 users. The camera was mouted above and looked down from a birds eye view \, so it was quite simple to use cv.jit.track to distinguish each user as a 'blob' then locate their X \, Y co-ordinates using jit.findbounds. This was then sent off to cv.jit.track and cv.jit.trackgroup whenever the total amount of users changed. From there cv.jit.track and cv.jit.trackgroup would track the X \, Y. Thanks to Jean-Marc Pelletier for his help and great cv.jit externals!; #P user panel 680 244 233 188; #X brgb 140 140 140; #X frgb 0 0 0; #X border 0; #X rounded 0; #X shadow 0; #X done; #P comment 420 260 124 196617 Number of Blobs detected; #P comment 453 29 383 196617 Patch 'Collated' by Karl 'Darcy' Willis - www.darcy.co.nz; #P fasten 39 0 40 0 46 613 46 593 13 593; #P fasten 50 0 51 0 47 635 47 617 13 617; #P fasten 55 0 56 0 46 659 46 640 13 640; #P fasten 60 0 61 0 48 682 48 663 13 663; #P connect 15 0 14 0; #P hidden connect 26 0 13 0; #P connect 14 0 13 0; #P fasten 16 0 13 0 92 82 17 82; #P fasten 17 0 13 0 137 82 17 82; #P fasten 13 0 27 0 17 126 50 126; #P fasten 18 0 27 0 202 126 50 126; #P connect 27 0 28 0; #P connect 28 0 29 0; #P connect 29 0 37 0; #P fasten 47 0 39 0 67 460 56 460; #P fasten 53 0 50 0 175 461 56 461; #P fasten 58 0 55 0 279 461 56 461; #P fasten 63 0 60 0 375 461 56 461; #P fasten 32 0 46 0 146 317 146 288 57 288; #P connect 46 0 31 0; #P fasten 32 0 47 0 175 386 67 386; #P connect 45 0 46 1; #P fasten 65 3 47 1 428 367 139 367; #P connect 47 2 113 0; #P connect 113 0 112 0; #P fasten 30 0 29 1 196 183 154 183; #P fasten 37 0 32 0 50 250 175 250; #P fasten 43 0 32 0 286 291 175 291; #P fasten 33 0 32 0 197 291 175 291; #P connect 32 0 53 0; #P hidden connect 48 0 64 0; #P hidden connect 64 0 34 0; #P connect 34 0 33 0; #P connect 22 0 21 0; #P fasten 24 0 18 0 343 85 202 85; #P fasten 20 0 18 0 305 85 202 85; #P fasten 19 0 18 0 294 85 202 85; #P fasten 120 0 18 0 402 85 202 85; #P connect 21 0 18 0; #P fasten 47 1 38 0 103 461 233 461; #P connect 38 0 41 0; #P connect 53 2 111 0; #P connect 111 0 110 0; #P fasten 65 2 53 1 414 367 248 367; #P fasten 53 1 49 0 211 461 274 461; #P connect 49 0 52 0; #P fasten 32 0 58 0 175 388 279 388; #P connect 44 0 43 0; #P connect 58 1 54 0; #P connect 54 0 57 0; #P hidden connect 48 0 92 0; #P connect 25 0 24 0; #P connect 58 2 109 0; #P connect 109 0 108 0; #P fasten 65 1 58 1 400 367 352 367; #P fasten 32 0 35 0 175 321 358 321; #P fasten 63 1 59 0 412 460 361 460; #P connect 59 0 62 0; #P fasten 32 0 63 0 175 389 375 389; #P connect 35 2 42 0; #P hidden connect 92 0 42 0; #P connect 42 0 36 0; #P connect 36 0 115 0; #P fasten 115 2 65 0 416 333 386 333; #P fasten 116 0 65 0 432 333 386 333; #P fasten 117 0 65 0 482 333 386 333; #P fasten 115 1 116 0 401 305 432 305; #P fasten 127 1 126 0 517 250 439 250; #P connect 126 0 125 0; #P fasten 65 0 63 1 386 367 449 367; #P connect 63 2 107 0; #P connect 107 0 66 0; #P hidden connect 73 1 67 0; #P lcolor 13; #P hidden connect 69 1 67 0; #P lcolor 13; #P hidden connect 80 1 67 0; #P lcolor 13; #P hidden connect 86 1 67 0; #P lcolor 13; #P fasten 37 0 67 0 50 250 467 250; #P connect 67 0 68 0; #P hidden connect 104 0 69 0; #P lcolor 3; #P hidden connect 105 0 69 0; #P lcolor 3; #P connect 68 0 69 0; #P connect 69 0 70 0; #P connect 70 0 71 0; #P fasten 35 2 127 0 482 214; #P fasten 115 0 117 0 386 305 482 305; #P connect 71 0 126 1; #P connect 70 1 72 0; #P connect 72 0 126 2; #P hidden connect 47 2 69 1; #P lcolor 1; #P connect 75 0 126 3; #P hidden connect 104 0 73 0; #P lcolor 3; #P hidden connect 105 0 73 0; #P lcolor 3; #P fasten 68 1 73 0 493 563 578 563; #P hidden fasten 77 0 73 0 598 574 578 574; #P connect 73 0 74 0; #P connect 74 0 75 0; #P fasten 97 0 93 0 583 312 569 312 569 58 582 58; #P hidden connect 68 0 94 0; #P connect 94 0 96 0; #P connect 96 0 101 0; #P connect 101 0 114 0; #P connect 114 0 97 0; #P hidden connect 78 0 79 0; #P hidden connect 79 0 77 0; #P connect 74 1 76 0; #P connect 76 0 126 4; #P fasten 28 0 97 1 50 185 672 185 672 286 635 286; #P hidden connect 78 0 118 0; #P hidden connect 53 2 73 1; #P lcolor 1; #P hidden connect 68 1 95 0; #P connect 95 0 96 1; #P fasten 100 0 101 1 741 236 659 236; #P connect 82 0 126 5; #P hidden connect 104 0 80 0; #P lcolor 3; #P hidden connect 105 0 80 0; #P lcolor 3; #P fasten 68 2 80 0 519 563 670 563; #P hidden fasten 84 0 80 0 699 574 670 574; #P connect 80 0 81 0; #P connect 81 0 82 0; #P hidden connect 118 0 103 0; #P connect 103 0 104 0; #P hidden connect 78 0 85 0; #P hidden connect 85 0 84 0; #P connect 81 1 83 0; #P connect 83 0 126 6; #P hidden connect 78 0 119 0; #P hidden connect 68 2 98 0; #P connect 98 0 100 0; #P hidden connect 58 2 80 1; #P lcolor 1; #P hidden connect 119 0 102 0; #P connect 102 0 105 0; #P connect 88 0 126 7; #P fasten 68 3 86 0 545 563 762 563; #P hidden fasten 90 0 86 0 793 574 762 574; #P hidden connect 104 0 86 0; #P lcolor 3; #P hidden connect 105 0 86 0; #P lcolor 3; #P connect 86 0 87 0; #P connect 87 0 88 0; #P hidden connect 78 0 91 0; #P hidden connect 91 0 90 0; #P connect 87 1 89 0; #P connect 89 0 126 8; #P hidden connect 68 3 99 0; #P connect 99 0 100 1; #P hidden connect 63 2 86 1; #P lcolor 1; #P pop;