PageRenderTime 38ms CodeModel.GetById 10ms app.highlight 21ms RepoModel.GetById 1ms app.codeStats 0ms

/test-data/mutation_data1_interactive.svg

https://bitbucket.org/cistrome/cistrome-harvard/
SVG | 868 lines | 503 code | 365 blank | 0 comment | 19 complexity | 7a140e0deeaf6fa2001e241c83486dd5 MD5 | raw file
  1<?xml version="1.0" standalone="no"?>
  2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  3
  4<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
  5<script type="text/javascript">
  6/**
  7 *  SVGPan library 1.2
  8 * ====================
  9 *
 10 * Given an unique existing element with id "viewport", including the
 11 * the library into any SVG adds the following capabilities:
 12 *
 13 *  - Mouse panning
 14 *  - Mouse zooming (using the wheel)
 15 *  - Object dargging
 16 *
 17 * Known issues:
 18 *
 19 *  - Zooming (while panning) on Safari has still some issues
 20 *
 21 * Releases:
 22 *
 23 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 24 *      Fixed a bug with browser mouse handler interaction
 25 *
 26 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 27 *      Updated the zoom code to support the mouse wheel on Safari/Chrome
 28 *
 29 * 1.0, Andrea Leofreddi
 30 *      First release
 31 *
 32 * This code is licensed under the following BSD license:
 33 *
 34 * Copyright 2009-2010 Andrea Leofreddi (a.leofreddi@itcharm.com). All rights reserved.
 35 *
 36 * Redistribution and use in source and binary forms, with or without modification, are
 37 * permitted provided that the following conditions are met:
 38 *
 39 *    1. Redistributions of source code must retain the above copyright notice, this list of
 40 *       conditions and the following disclaimer.
 41 *
 42 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 43 *       of conditions and the following disclaimer in the documentation and/or other materials
 44 *       provided with the distribution.
 45 *
 46 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 47 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 48 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 49 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 50 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 51 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 52 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 53 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 54 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 55 *
 56 * The views and conclusions contained in the software and documentation are those of the
 57 * authors and should not be interpreted as representing official policies, either expressed
 58 * or implied, of Andrea Leofreddi.
 59 */
 60
 61var root = document.documentElement;
 62
 63var state = 'none', stateTarget, stateOrigin, stateTf;
 64
 65setupHandlers(root);
 66
 67/**
 68 * Register handlers
 69 */
 70function setupHandlers(root){
 71        setAttributes(root, {
 72                "onmouseup" : "add(evt)",
 73                "onmousedown" : "handleMouseDown(evt)",
 74                "onmousemove" : "handleMouseMove(evt)",
 75                "onmouseup" : "handleMouseUp(evt)",
 76                //"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
 77        });
 78
 79        if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
 80                window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
 81        else
 82                window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
 83}
 84
 85/**
 86 * Instance an SVGPoint object with given event coordinates.
 87 */
 88function getEventPoint(evt) {
 89        var p = root.createSVGPoint();
 90
 91        p.x = evt.clientX;
 92        p.y = evt.clientY;
 93
 94        return p;
 95}
 96
 97/**
 98 * Sets the current transform matrix of an element.
 99 */
100function setCTM(element, matrix) {
101        var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";
102
103        element.setAttribute("transform", s);
104}
105
106/**
107 * Dumps a matrix to a string (useful for debug).
108 */
109function dumpMatrix(matrix) {
110        var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";
111
112        return s;
113}
114
115/**
116 * Sets attributes of an element.
117 */
118function setAttributes(element, attributes){
119        for (i in attributes)
120                element.setAttributeNS(null, i, attributes[i]);
121}
122
123/**
124 * Handle mouse move event.
125 */
126function handleMouseWheel(evt) {
127        if(evt.preventDefault)
128                evt.preventDefault();
129
130        evt.returnValue = false;
131
132        var svgDoc = evt.target.ownerDocument;
133
134        var delta;
135
136        if(evt.wheelDelta)
137                delta = evt.wheelDelta / 3600; // Chrome/Safari
138        else
139                delta = evt.detail / -90; // Mozilla
140
141        var z = 1 + delta; // Zoom factor: 0.9/1.1
142
143        var g = svgDoc.getElementById("viewport");
144       
145        var p = getEventPoint(evt);
146
147        p = p.matrixTransform(g.getCTM().inverse());
148
149        // Compute new scale matrix in current mouse position
150        var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);
151
152        setCTM(g, g.getCTM().multiply(k));
153
154        stateTf = stateTf.multiply(k.inverse());
155}
156
157/**
158 * Handle mouse move event.
159 */
160function handleMouseMove(evt) {
161        if(evt.preventDefault)
162                evt.preventDefault();
163
164        evt.returnValue = false;
165
166        var svgDoc = evt.target.ownerDocument;
167
168        var g = svgDoc.getElementById("viewport");
169
170        if(state == 'pan') {
171                // Pan mode
172                var p = getEventPoint(evt).matrixTransform(stateTf);
173
174                setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
175        } else if(state == 'move') {
176                // Move mode
177                var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());
178
179                setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));
180
181                stateOrigin = p;
182        }
183}
184
185/**
186 * Handle click event.
187 */
188function handleMouseDown(evt) {
189        if(evt.preventDefault)
190                evt.preventDefault();
191
192        evt.returnValue = false;
193
194        var svgDoc = evt.target.ownerDocument;
195
196        var g = svgDoc.getElementById("viewport");
197
198        if(evt.target.tagName == "svg") {
199                // Pan mode
200                state = 'pan';
201
202                stateTf = g.getCTM().inverse();
203
204                stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
205        }
206        /*else {
207                // Move mode
208                state = 'move';
209
210                stateTarget = evt.target;
211
212                stateTf = g.getCTM().inverse();
213
214                stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
215        }*/
216}
217/**
218 * Handle mouse button release event.
219 */
220function handleMouseUp(evt) {
221        if(evt.preventDefault)
222                evt.preventDefault();
223
224        evt.returnValue = false;
225
226        var svgDoc = evt.target.ownerDocument;
227
228        if(state == 'pan' || state == 'move') {
229                // Quit pan mode
230                state = '';
231        }
232}
233</script>
234
235<g id="viewport">
236
237<text y="3" x="12" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:20%">A</tspan></text>
238
239<rect fill-opacity="0.5" height="3" width="4" stroke="none" y="0" x="14" fill="blue" />
240
241<text y="3" x="22" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:20%">C</tspan></text>
242
243<rect fill-opacity="0.5" height="3" width="4" stroke="none" y="0" x="24" fill="green" />
244
245<text y="3" x="32" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:20%">G</tspan></text>
246
247<rect fill-opacity="0.5" height="3" width="4" stroke="none" y="0" x="34" fill="orange" />
248
249<text y="3" x="42" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:20%">T</tspan></text>
250
251<rect fill-opacity="0.5" height="3" width="4" stroke="none" y="0" x="44" fill="red" />
252
253<text y="35" x="23" stroke="none" transform="rotate(-90 23,35)" fill="black"><tspan style="font-family:Verdana;font-size:25%">s1</tspan></text>
254
255<text y="42" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">72</tspan></text>
256
257<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="38" x="0" fill="orange" />
258
259<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="38" x="16" fill="grey" />
260
261<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="38" x="16" fill="blue" />
262
263<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="39.5" x="16" fill="green" />
264
265<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="41.0" x="16" fill="orange" />
266
267<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="42.5" x="16" fill="red" />
268
269<text y="50" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">149</tspan></text>
270
271<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="46" x="0" fill="red" />
272
273<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="46" x="16" fill="grey" />
274
275<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="46" x="16" fill="blue" />
276
277<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="47.5" x="16" fill="green" />
278
279<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="49.0" x="16" fill="orange" />
280
281<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="50.5" x="16" fill="red" />
282
283<text y="58" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">194</tspan></text>
284
285<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="54" x="0" fill="green" />
286
287<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="54" x="16" fill="grey" />
288
289<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="54" x="16" fill="blue" />
290
291<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="55.5" x="16" fill="green" />
292
293<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="57.0" x="16" fill="orange" />
294
295<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="58.5" x="16" fill="red" />
296
297<text y="66" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">299</tspan></text>
298
299<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="62" x="0" fill="blue" />
300
301<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="62" x="16" fill="grey" />
302
303<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="62" x="16" fill="blue" />
304
305<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="63.5" x="16" fill="green" />
306
307<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="65.0" x="16" fill="orange" />
308
309<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="66.5" x="16" fill="red" />
310
311<text y="74" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">309</tspan></text>
312
313<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="70" x="0" fill="green" />
314
315<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="70" x="16" fill="grey" />
316
317<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="70" x="16" fill="blue" />
318
319<rect fill-opacity="0.6" height="1.5" width="11" stroke="none" y="71.5" x="16" fill="green" />
320
321<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="73.0" x="16" fill="orange" />
322
323<rect fill-opacity="0.6" height="1.5" width="2" stroke="none" y="74.5" x="16" fill="red" />
324
325<text y="82" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">310</tspan></text>
326
327<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="78" x="0" fill="red" />
328
329<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="78" x="16" fill="grey" />
330
331<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="78" x="16" fill="blue" />
332
333<rect fill-opacity="0.6" height="1.5" width="4" stroke="none" y="79.5" x="16" fill="green" />
334
335<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="81.0" x="16" fill="orange" />
336
337<rect fill-opacity="0.6" height="1.5" width="9" stroke="none" y="82.5" x="16" fill="red" />
338
339<text y="90" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">409</tspan></text>
340
341<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="86" x="0" fill="blue" />
342
343<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="86" x="16" fill="grey" />
344
345<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="86" x="16" fill="blue" />
346
347<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="87.5" x="16" fill="green" />
348
349<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="89.0" x="16" fill="orange" />
350
351<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="90.5" x="16" fill="red" />
352
353<text y="98" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">2353</tspan></text>
354
355<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="94" x="0" fill="green" />
356
357<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="94" x="16" fill="grey" />
358
359<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="94" x="16" fill="blue" />
360
361<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="95.5" x="16" fill="green" />
362
363<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="97.0" x="16" fill="orange" />
364
365<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="98.5" x="16" fill="red" />
366
367<text y="106" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">2484</tspan></text>
368
369<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="102" x="0" fill="green" />
370
371<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="102" x="16" fill="grey" />
372
373<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="102" x="16" fill="blue" />
374
375<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="103.5" x="16" fill="green" />
376
377<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="105.0" x="16" fill="orange" />
378
379<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="106.5" x="16" fill="red" />
380
381<text y="114" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">2707</tspan></text>
382
383<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="110" x="0" fill="orange" />
384
385<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="110" x="16" fill="grey" />
386
387<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="110" x="16" fill="blue" />
388
389<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="111.5" x="16" fill="green" />
390
391<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="113.0" x="16" fill="orange" />
392
393<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="114.5" x="16" fill="red" />
394
395<text y="122" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">3011</tspan></text>
396
397<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="118" x="0" fill="orange" />
398
399<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="118" x="16" fill="grey" />
400
401<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="118" x="16" fill="blue" />
402
403<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="119.5" x="16" fill="green" />
404
405<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="121.0" x="16" fill="orange" />
406
407<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="122.5" x="16" fill="red" />
408
409<text y="130" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">3434</tspan></text>
410
411<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="126" x="0" fill="blue" />
412
413<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="126" x="16" fill="grey" />
414
415<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="126" x="16" fill="blue" />
416
417<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="127.5" x="16" fill="green" />
418
419<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="129.0" x="16" fill="orange" />
420
421<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="130.5" x="16" fill="red" />
422
423<text y="138" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">3480</tspan></text>
424
425<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="134" x="0" fill="blue" />
426
427<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="134" x="16" fill="grey" />
428
429<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="134" x="16" fill="blue" />
430
431<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="135.5" x="16" fill="green" />
432
433<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="137.0" x="16" fill="orange" />
434
435<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="138.5" x="16" fill="red" />
436
437<text y="146" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">5063</tspan></text>
438
439<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="142" x="0" fill="red" />
440
441<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="142" x="16" fill="grey" />
442
443<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="142" x="16" fill="blue" />
444
445<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="143.5" x="16" fill="green" />
446
447<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="145.0" x="16" fill="orange" />
448
449<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="146.5" x="16" fill="red" />
450
451<text y="154" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">5580</tspan></text>
452
453<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="150" x="0" fill="green" />
454
455<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="150" x="16" fill="grey" />
456
457<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="150" x="16" fill="blue" />
458
459<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="151.5" x="16" fill="green" />
460
461<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="153.0" x="16" fill="orange" />
462
463<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="154.5" x="16" fill="red" />
464
465<text y="162" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">7028</tspan></text>
466
467<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="158" x="0" fill="red" />
468
469<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="158" x="16" fill="grey" />
470
471<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="158" x="16" fill="blue" />
472
473<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="159.5" x="16" fill="green" />
474
475<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="161.0" x="16" fill="orange" />
476
477<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="162.5" x="16" fill="red" />
478
479<text y="170" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">8701</tspan></text>
480
481<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="166" x="0" fill="orange" />
482
483<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="166" x="16" fill="grey" />
484
485<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="166" x="16" fill="blue" />
486
487<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="167.5" x="16" fill="green" />
488
489<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="169.0" x="16" fill="orange" />
490
491<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="170.5" x="16" fill="red" />
492
493<text y="178" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">8992</tspan></text>
494
495<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="174" x="0" fill="green" />
496
497<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="174" x="16" fill="grey" />
498
499<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="174" x="16" fill="blue" />
500
501<rect fill-opacity="0.6" height="1.5" width="8" stroke="none" y="175.5" x="16" fill="green" />
502
503<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="177.0" x="16" fill="orange" />
504
505<rect fill-opacity="0.6" height="1.5" width="5" stroke="none" y="178.5" x="16" fill="red" />
506
507<text y="186" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">9377</tspan></text>
508
509<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="182" x="0" fill="orange" />
510
511<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="182" x="16" fill="grey" />
512
513<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="182" x="16" fill="blue" />
514
515<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="183.5" x="16" fill="green" />
516
517<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="185.0" x="16" fill="orange" />
518
519<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="186.5" x="16" fill="red" />
520
521<text y="194" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">9540</tspan></text>
522
523<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="190" x="0" fill="green" />
524
525<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="190" x="16" fill="grey" />
526
527<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="190" x="16" fill="blue" />
528
529<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="191.5" x="16" fill="green" />
530
531<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="193.0" x="16" fill="orange" />
532
533<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="194.5" x="16" fill="red" />
534
535<text y="202" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">10398</tspan></text>
536
537<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="198" x="0" fill="orange" />
538
539<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="198" x="16" fill="grey" />
540
541<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="198" x="16" fill="blue" />
542
543<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="199.5" x="16" fill="green" />
544
545<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="201.0" x="16" fill="orange" />
546
547<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="202.5" x="16" fill="red" />
548
549<text y="210" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">10550</tspan></text>
550
551<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="206" x="0" fill="blue" />
552
553<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="206" x="16" fill="grey" />
554
555<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="206" x="16" fill="blue" />
556
557<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="207.5" x="16" fill="green" />
558
559<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="209.0" x="16" fill="orange" />
560
561<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="210.5" x="16" fill="red" />
562
563<text y="218" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">10819</tspan></text>
564
565<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="214" x="0" fill="orange" />
566
567<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="214" x="16" fill="grey" />
568
569<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="214" x="16" fill="blue" />
570
571<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="215.5" x="16" fill="green" />
572
573<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="217.0" x="16" fill="orange" />
574
575<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="218.5" x="16" fill="red" />
576
577<text y="226" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">10873</tspan></text>
578
579<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="222" x="0" fill="green" />
580
581<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="222" x="16" fill="grey" />
582
583<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="222" x="16" fill="blue" />
584
585<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="223.5" x="16" fill="green" />
586
587<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="225.0" x="16" fill="orange" />
588
589<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="226.5" x="16" fill="red" />
590
591<text y="234" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">11017</tspan></text>
592
593<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="230" x="0" fill="green" />
594
595<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="230" x="16" fill="grey" />
596
597<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="230" x="16" fill="blue" />
598
599<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="231.5" x="16" fill="green" />
600
601<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="233.0" x="16" fill="orange" />
602
603<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="234.5" x="16" fill="red" />
604
605<text y="242" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">11299</tspan></text>
606
607<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="238" x="0" fill="red" />
608
609<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="238" x="16" fill="grey" />
610
611<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="238" x="16" fill="blue" />
612
613<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="239.5" x="16" fill="green" />
614
615<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="241.0" x="16" fill="orange" />
616
617<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="242.5" x="16" fill="red" />
618
619<text y="250" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">11719</tspan></text>
620
621<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="246" x="0" fill="blue" />
622
623<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="246" x="16" fill="grey" />
624
625<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="246" x="16" fill="blue" />
626
627<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="247.5" x="16" fill="green" />
628
629<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="249.0" x="16" fill="orange" />
630
631<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="250.5" x="16" fill="red" />
632
633<text y="258" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">11722</tspan></text>
634
635<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="254" x="0" fill="green" />
636
637<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="254" x="16" fill="grey" />
638
639<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="254" x="16" fill="blue" />
640
641<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="255.5" x="16" fill="green" />
642
643<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="257.0" x="16" fill="orange" />
644
645<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="258.5" x="16" fill="red" />
646
647<text y="266" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">12705</tspan></text>
648
649<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="262" x="0" fill="red" />
650
651<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="262" x="16" fill="grey" />
652
653<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="262" x="16" fill="blue" />
654
655<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="263.5" x="16" fill="green" />
656
657<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="265.0" x="16" fill="orange" />
658
659<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="266.5" x="16" fill="red" />
660
661<text y="274" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">12850</tspan></text>
662
663<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="270" x="0" fill="orange" />
664
665<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="270" x="16" fill="grey" />
666
667<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="270" x="16" fill="blue" />
668
669<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="271.5" x="16" fill="green" />
670
671<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="273.0" x="16" fill="orange" />
672
673<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="274.5" x="16" fill="red" />
674
675<text y="282" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">14053</tspan></text>
676
677<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="278" x="0" fill="blue" />
678
679<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="278" x="16" fill="grey" />
680
681<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="278" x="16" fill="blue" />
682
683<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="279.5" x="16" fill="green" />
684
685<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="281.0" x="16" fill="orange" />
686
687<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="282.5" x="16" fill="red" />
688
689<text y="290" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">14212</tspan></text>
690
691<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="286" x="0" fill="green" />
692
693<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="286" x="16" fill="grey" />
694
695<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="286" x="16" fill="blue" />
696
697<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="287.5" x="16" fill="green" />
698
699<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="289.0" x="16" fill="orange" />
700
701<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="290.5" x="16" fill="red" />
702
703<text y="298" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">14580</tspan></text>
704
705<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="294" x="0" fill="orange" />
706
707<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="294" x="16" fill="grey" />
708
709<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="294" x="16" fill="blue" />
710
711<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="295.5" x="16" fill="green" />
712
713<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="297.0" x="16" fill="orange" />
714
715<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="298.5" x="16" fill="red" />
716
717<text y="306" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">14766</tspan></text>
718
719<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="302" x="0" fill="red" />
720
721<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="302" x="16" fill="grey" />
722
723<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="302" x="16" fill="blue" />
724
725<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="303.5" x="16" fill="green" />
726
727<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="305.0" x="16" fill="orange" />
728
729<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="306.5" x="16" fill="red" />
730
731<text y="314" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">14905</tspan></text>
732
733<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="310" x="0" fill="blue" />
734
735<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="310" x="16" fill="grey" />
736
737<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="310" x="16" fill="blue" />
738
739<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="311.5" x="16" fill="green" />
740
741<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="313.0" x="16" fill="orange" />
742
743<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="314.5" x="16" fill="red" />
744
745<text y="322" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">15301</tspan></text>
746
747<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="318" x="0" fill="blue" />
748
749<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="318" x="16" fill="grey" />
750
751<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="318" x="16" fill="blue" />
752
753<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="319.5" x="16" fill="green" />
754
755<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="321.0" x="16" fill="orange" />
756
757<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="322.5" x="16" fill="red" />
758
759<text y="330" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">15932</tspan></text>
760
761<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="326" x="0" fill="green" />
762
763<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="326" x="16" fill="grey" />
764
765<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="326" x="16" fill="blue" />
766
767<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="327.5" x="16" fill="green" />
768
769<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="329.0" x="16" fill="orange" />
770
771<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="330.5" x="16" fill="red" />
772
773<text y="338" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16172</tspan></text>
774
775<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="334" x="0" fill="green" />
776
777<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="334" x="16" fill="grey" />
778
779<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="334" x="16" fill="blue" />
780
781<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="335.5" x="16" fill="green" />
782
783<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="337.0" x="16" fill="orange" />
784
785<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="338.5" x="16" fill="red" />
786
787<text y="346" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16183</tspan></text>
788
789<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="342" x="0" fill="green" />
790
791<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="342" x="16" fill="grey" />
792
793<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="342" x="16" fill="blue" />
794
795<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="343.5" x="16" fill="green" />
796
797<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="345.0" x="16" fill="orange" />
798
799<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="346.5" x="16" fill="red" />
800
801<text y="354" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16184</tspan></text>
802
803<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="350" x="0" fill="green" />
804
805<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="350" x="16" fill="grey" />
806
807<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="350" x="16" fill="blue" />
808
809<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="351.5" x="16" fill="green" />
810
811<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="353.0" x="16" fill="orange" />
812
813<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="354.5" x="16" fill="red" />
814
815<text y="362" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16189</tspan></text>
816
817<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="358" x="0" fill="green" />
818
819<text y="370" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16190</tspan></text>
820
821<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="366" x="0" fill="green" />
822
823<text y="378" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16224</tspan></text>
824
825<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="374" x="0" fill="red" />
826
827<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="374" x="16" fill="grey" />
828
829<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="374" x="16" fill="blue" />
830
831<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="375.5" x="16" fill="green" />
832
833<rect fill-opacity="0.6" height="1.5" width="0" stroke="none" y="377.0" x="16" fill="orange" />
834
835<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="378.5" x="16" fill="red" />
836
837<text y="386" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16240</tspan></text>
838
839<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="382" x="0" fill="green" />
840
841<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="382" x="16" fill="grey" />
842
843<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="382" x="16" fill="blue" />
844
845<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="383.5" x="16" fill="green" />
846
847<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="385.0" x="16" fill="orange" />
848
849<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="386.5" x="16" fill="red" />
850
851<text y="394" x="0" stroke="none" fill="black"><tspan style="font-family:Verdana;font-size:25%">16321</tspan></text>
852
853<rect fill-opacity="0.2" height="6" width="14" stroke="none" y="390" x="0" fill="red" />
854
855<rect fill-opacity="0.25" height="6" width="12" stroke="none" y="390" x="16" fill="grey" />
856
857<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="390" x="16" fill="blue" />
858
859<rect fill-opacity="0.6" height="1.5" width="12" stroke="none" y="391.5" x="16" fill="green" />
860
861<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="393.0" x="16" fill="orange" />
862
863<rect fill-opacity="0.6" height="1.5" width="1" stroke="none" y="394.5" x="16" fill="red" />
864
865</g>
866
867</svg>
868