@vpmedia/phaser 1.82.0 → 1.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/coverage/{lcov-report/block-navigation.js → block-navigation.js} +1 -1
- package/coverage/index.html +236 -0
- package/coverage/{lcov-report/sorter.js → sorter.js} +21 -7
- package/coverage/{lcov-report/core → src}/index.html +23 -23
- package/coverage/src/index.js.html +241 -0
- package/coverage/src/phaser/core/animation.js.html +1450 -0
- package/coverage/src/phaser/core/animation_manager.js.html +1117 -0
- package/coverage/src/phaser/core/animation_parser.js.html +373 -0
- package/coverage/src/phaser/core/array_set.js.html +562 -0
- package/coverage/src/phaser/core/cache.js.html +2404 -0
- package/coverage/{lcov-report → src/phaser}/core/const.js.html +284 -284
- package/coverage/src/phaser/core/device.js.html +373 -0
- package/coverage/src/phaser/core/device_util.js.html +850 -0
- package/coverage/src/phaser/core/dom.js.html +1042 -0
- package/coverage/src/phaser/core/error_code.js.html +109 -0
- package/coverage/src/phaser/core/event_manager.js.html +1264 -0
- package/coverage/src/phaser/core/factory.js.html +436 -0
- package/coverage/src/phaser/core/frame.js.html +415 -0
- package/coverage/src/phaser/core/frame_data.js.html +478 -0
- package/coverage/src/phaser/core/frame_util.js.html +169 -0
- package/coverage/src/phaser/core/game.js.html +1075 -0
- package/coverage/src/phaser/core/index.html +731 -0
- package/coverage/src/phaser/core/input.js.html +1576 -0
- package/coverage/src/phaser/core/input_handler.js.html +2959 -0
- package/coverage/src/phaser/core/input_mouse.js.html +988 -0
- package/coverage/src/phaser/core/input_mspointer.js.html +754 -0
- package/coverage/src/phaser/core/input_pointer.js.html +1645 -0
- package/coverage/src/phaser/core/input_touch.js.html +643 -0
- package/coverage/src/phaser/core/loader.js.html +3676 -0
- package/coverage/src/phaser/core/loader_parser.js.html +397 -0
- package/coverage/src/phaser/core/raf.js.html +184 -0
- package/coverage/src/phaser/core/scale_manager.js.html +3082 -0
- package/coverage/src/phaser/core/scene.js.html +265 -0
- package/coverage/src/phaser/core/scene_manager.js.html +1030 -0
- package/coverage/src/phaser/core/signal.js.html +859 -0
- package/coverage/src/phaser/core/signal_binding.js.html +388 -0
- package/coverage/src/phaser/core/sound.js.html +1678 -0
- package/coverage/src/phaser/core/sound_manager.js.html +1594 -0
- package/coverage/src/phaser/core/sound_sprite.js.html +265 -0
- package/coverage/src/phaser/core/stage.js.html +505 -0
- package/coverage/src/phaser/core/time.js.html +829 -0
- package/coverage/src/phaser/core/timer.js.html +1231 -0
- package/coverage/src/phaser/core/timer_event.js.html +157 -0
- package/coverage/src/phaser/core/tween.js.html +1486 -0
- package/coverage/src/phaser/core/tween_data.js.html +976 -0
- package/coverage/src/phaser/core/tween_easing.js.html +1099 -0
- package/coverage/src/phaser/core/tween_manager.js.html +826 -0
- package/coverage/src/phaser/core/world.js.html +139 -0
- package/coverage/src/phaser/display/bitmap_text.js.html +1423 -0
- package/coverage/src/phaser/display/button.js.html +916 -0
- package/coverage/src/phaser/display/canvas/buffer.js.html +232 -0
- package/coverage/src/phaser/display/canvas/graphics.js.html +766 -0
- package/coverage/src/phaser/display/canvas/index.html +206 -0
- package/coverage/src/phaser/display/canvas/masker.js.html +184 -0
- package/coverage/src/phaser/display/canvas/pool.js.html +445 -0
- package/coverage/src/phaser/display/canvas/renderer.js.html +589 -0
- package/coverage/src/phaser/display/canvas/tinter.js.html +658 -0
- package/coverage/src/phaser/display/canvas/util.js.html +544 -0
- package/coverage/src/phaser/display/display_object.js.html +2494 -0
- package/coverage/src/phaser/display/graphics.js.html +2815 -0
- package/coverage/src/phaser/display/graphics_data.js.html +187 -0
- package/coverage/src/phaser/display/graphics_data_util.js.html +139 -0
- package/coverage/src/phaser/display/group.js.html +1000 -0
- package/coverage/src/phaser/display/image.js.html +1222 -0
- package/coverage/src/phaser/display/index.html +266 -0
- package/coverage/src/phaser/display/sprite_batch.js.html +121 -0
- package/coverage/src/phaser/display/sprite_util.js.html +883 -0
- package/coverage/src/phaser/display/text.js.html +4597 -0
- package/coverage/src/phaser/display/webgl/abstract_filter.js.html +157 -0
- package/coverage/src/phaser/display/webgl/base_texture.js.html +322 -0
- package/coverage/src/phaser/display/webgl/blend_manager.js.html +208 -0
- package/coverage/src/phaser/display/webgl/earcut.js.html +2137 -0
- package/coverage/src/phaser/display/webgl/earcut_node.js.html +160 -0
- package/coverage/src/phaser/display/webgl/fast_sprite_batch.js.html +877 -0
- package/coverage/src/phaser/display/webgl/filter_manager.js.html +271 -0
- package/coverage/src/phaser/display/webgl/filter_texture.js.html +298 -0
- package/coverage/src/phaser/display/webgl/graphics.js.html +1942 -0
- package/coverage/src/phaser/display/webgl/graphics_data.js.html +214 -0
- package/coverage/src/phaser/display/webgl/index.html +386 -0
- package/coverage/src/phaser/display/webgl/mask_manager.js.html +199 -0
- package/coverage/src/phaser/display/webgl/render_texture.js.html +406 -0
- package/coverage/src/phaser/display/webgl/renderer.js.html +1003 -0
- package/coverage/src/phaser/display/webgl/shader/complex.js.html +316 -0
- package/coverage/src/phaser/display/webgl/shader/fast.js.html +406 -0
- package/coverage/src/phaser/display/webgl/shader/index.html +176 -0
- package/coverage/src/phaser/display/webgl/shader/normal.js.html +826 -0
- package/coverage/src/phaser/display/webgl/shader/primitive.js.html +310 -0
- package/coverage/src/phaser/display/webgl/shader/strip.js.html +325 -0
- package/coverage/src/phaser/display/webgl/shader_manager.js.html +385 -0
- package/coverage/src/phaser/display/webgl/sprite_batch.js.html +1135 -0
- package/coverage/src/phaser/display/webgl/stencil_manager.js.html +655 -0
- package/coverage/src/phaser/display/webgl/texture.js.html +490 -0
- package/coverage/src/phaser/display/webgl/texture_util.js.html +169 -0
- package/coverage/src/phaser/display/webgl/util.js.html +451 -0
- package/coverage/{lcov-report → src/phaser}/geom/circle.js.html +252 -252
- package/coverage/{lcov-report → src/phaser}/geom/ellipse.js.html +79 -79
- package/coverage/{lcov-report → src/phaser}/geom/index.html +67 -67
- package/coverage/{lcov-report → src/phaser}/geom/line.js.html +287 -287
- package/coverage/{lcov-report → src/phaser}/geom/matrix.js.html +135 -135
- package/coverage/{lcov-report → src/phaser}/geom/point.js.html +251 -251
- package/coverage/{lcov-report → src/phaser}/geom/polygon.js.html +147 -147
- package/coverage/{lcov-report → src/phaser}/geom/rectangle.js.html +408 -408
- package/coverage/{lcov-report → src/phaser}/geom/rounded_rectangle.js.html +45 -45
- package/coverage/{lcov-report → src/phaser}/geom/util/circle.js.html +104 -104
- package/coverage/{lcov-report → src/phaser}/geom/util/ellipse.js.html +29 -29
- package/coverage/{lcov-report → src/phaser}/geom/util/index.html +76 -76
- package/coverage/{lcov-report → src/phaser}/geom/util/line.js.html +123 -123
- package/coverage/{lcov-report → src/phaser}/geom/util/matrix.js.html +45 -45
- package/coverage/{lcov-report → src/phaser}/geom/util/point.js.html +274 -274
- package/coverage/{lcov-report → src/phaser}/geom/util/polygon.js.html +21 -21
- package/coverage/{lcov-report → src/phaser}/geom/util/rectangle.js.html +218 -218
- package/coverage/{lcov-report → src/phaser}/geom/util/rounded_rectangle.js.html +21 -21
- package/coverage/{lcov-report → src/phaser}/util/index.html +28 -28
- package/coverage/{lcov-report → src/phaser}/util/math.js.html +283 -283
- package/eslint.config.js +5 -3
- package/package.json +21 -21
- package/pnpm-workspace.yaml +2 -0
- package/coverage/clover.xml +0 -1092
- package/coverage/coverage-final.json +0 -19
- package/coverage/lcov-report/index.html +0 -161
- package/coverage/lcov.info +0 -2179
- /package/coverage/{lcov-report/base.css → base.css} +0 -0
- /package/coverage/{lcov-report/favicon.png → favicon.png} +0 -0
- /package/coverage/{lcov-report/prettify.css → prettify.css} +0 -0
- /package/coverage/{lcov-report/prettify.js → prettify.js} +0 -0
- /package/coverage/{lcov-report/sort-arrow-sprite.png → sort-arrow-sprite.png} +0 -0
|
@@ -0,0 +1,1942 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/phaser/display/webgl/graphics.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/phaser/display/webgl</a> graphics.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>0/606</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/1</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>0/606</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
+
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
+
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
+
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
+
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
+
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
+
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
+
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
+
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
+
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
+
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
+
<a name='L620'></a><a href='#L620'>620</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
686
|
+
<span class="cline-any cline-no"> </span>
|
|
687
|
+
<span class="cline-any cline-no"> </span>
|
|
688
|
+
<span class="cline-any cline-no"> </span>
|
|
689
|
+
<span class="cline-any cline-no"> </span>
|
|
690
|
+
<span class="cline-any cline-neutral"> </span>
|
|
691
|
+
<span class="cline-any cline-no"> </span>
|
|
692
|
+
<span class="cline-any cline-no"> </span>
|
|
693
|
+
<span class="cline-any cline-no"> </span>
|
|
694
|
+
<span class="cline-any cline-no"> </span>
|
|
695
|
+
<span class="cline-any cline-no"> </span>
|
|
696
|
+
<span class="cline-any cline-no"> </span>
|
|
697
|
+
<span class="cline-any cline-no"> </span>
|
|
698
|
+
<span class="cline-any cline-no"> </span>
|
|
699
|
+
<span class="cline-any cline-no"> </span>
|
|
700
|
+
<span class="cline-any cline-no"> </span>
|
|
701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
702
|
+
<span class="cline-any cline-no"> </span>
|
|
703
|
+
<span class="cline-any cline-no"> </span>
|
|
704
|
+
<span class="cline-any cline-no"> </span>
|
|
705
|
+
<span class="cline-any cline-no"> </span>
|
|
706
|
+
<span class="cline-any cline-no"> </span>
|
|
707
|
+
<span class="cline-any cline-no"> </span>
|
|
708
|
+
<span class="cline-any cline-no"> </span>
|
|
709
|
+
<span class="cline-any cline-no"> </span>
|
|
710
|
+
<span class="cline-any cline-no"> </span>
|
|
711
|
+
<span class="cline-any cline-no"> </span>
|
|
712
|
+
<span class="cline-any cline-neutral"> </span>
|
|
713
|
+
<span class="cline-any cline-no"> </span>
|
|
714
|
+
<span class="cline-any cline-no"> </span>
|
|
715
|
+
<span class="cline-any cline-no"> </span>
|
|
716
|
+
<span class="cline-any cline-no"> </span>
|
|
717
|
+
<span class="cline-any cline-no"> </span>
|
|
718
|
+
<span class="cline-any cline-no"> </span>
|
|
719
|
+
<span class="cline-any cline-no"> </span>
|
|
720
|
+
<span class="cline-any cline-no"> </span>
|
|
721
|
+
<span class="cline-any cline-no"> </span>
|
|
722
|
+
<span class="cline-any cline-no"> </span>
|
|
723
|
+
<span class="cline-any cline-no"> </span>
|
|
724
|
+
<span class="cline-any cline-no"> </span>
|
|
725
|
+
<span class="cline-any cline-no"> </span>
|
|
726
|
+
<span class="cline-any cline-no"> </span>
|
|
727
|
+
<span class="cline-any cline-no"> </span>
|
|
728
|
+
<span class="cline-any cline-no"> </span>
|
|
729
|
+
<span class="cline-any cline-no"> </span>
|
|
730
|
+
<span class="cline-any cline-no"> </span>
|
|
731
|
+
<span class="cline-any cline-no"> </span>
|
|
732
|
+
<span class="cline-any cline-no"> </span>
|
|
733
|
+
<span class="cline-any cline-no"> </span>
|
|
734
|
+
<span class="cline-any cline-no"> </span>
|
|
735
|
+
<span class="cline-any cline-no"> </span>
|
|
736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
737
|
+
<span class="cline-any cline-no"> </span>
|
|
738
|
+
<span class="cline-any cline-no"> </span>
|
|
739
|
+
<span class="cline-any cline-no"> </span>
|
|
740
|
+
<span class="cline-any cline-no"> </span>
|
|
741
|
+
<span class="cline-any cline-no"> </span>
|
|
742
|
+
<span class="cline-any cline-no"> </span>
|
|
743
|
+
<span class="cline-any cline-no"> </span>
|
|
744
|
+
<span class="cline-any cline-no"> </span>
|
|
745
|
+
<span class="cline-any cline-no"> </span>
|
|
746
|
+
<span class="cline-any cline-no"> </span>
|
|
747
|
+
<span class="cline-any cline-no"> </span>
|
|
748
|
+
<span class="cline-any cline-no"> </span>
|
|
749
|
+
<span class="cline-any cline-no"> </span>
|
|
750
|
+
<span class="cline-any cline-no"> </span>
|
|
751
|
+
<span class="cline-any cline-no"> </span>
|
|
752
|
+
<span class="cline-any cline-no"> </span>
|
|
753
|
+
<span class="cline-any cline-no"> </span>
|
|
754
|
+
<span class="cline-any cline-no"> </span>
|
|
755
|
+
<span class="cline-any cline-no"> </span>
|
|
756
|
+
<span class="cline-any cline-no"> </span>
|
|
757
|
+
<span class="cline-any cline-no"> </span>
|
|
758
|
+
<span class="cline-any cline-no"> </span>
|
|
759
|
+
<span class="cline-any cline-no"> </span>
|
|
760
|
+
<span class="cline-any cline-no"> </span>
|
|
761
|
+
<span class="cline-any cline-no"> </span>
|
|
762
|
+
<span class="cline-any cline-no"> </span>
|
|
763
|
+
<span class="cline-any cline-no"> </span>
|
|
764
|
+
<span class="cline-any cline-no"> </span>
|
|
765
|
+
<span class="cline-any cline-no"> </span>
|
|
766
|
+
<span class="cline-any cline-no"> </span>
|
|
767
|
+
<span class="cline-any cline-no"> </span>
|
|
768
|
+
<span class="cline-any cline-no"> </span>
|
|
769
|
+
<span class="cline-any cline-no"> </span>
|
|
770
|
+
<span class="cline-any cline-no"> </span>
|
|
771
|
+
<span class="cline-any cline-no"> </span>
|
|
772
|
+
<span class="cline-any cline-no"> </span>
|
|
773
|
+
<span class="cline-any cline-no"> </span>
|
|
774
|
+
<span class="cline-any cline-no"> </span>
|
|
775
|
+
<span class="cline-any cline-no"> </span>
|
|
776
|
+
<span class="cline-any cline-no"> </span>
|
|
777
|
+
<span class="cline-any cline-no"> </span>
|
|
778
|
+
<span class="cline-any cline-no"> </span>
|
|
779
|
+
<span class="cline-any cline-no"> </span>
|
|
780
|
+
<span class="cline-any cline-no"> </span>
|
|
781
|
+
<span class="cline-any cline-no"> </span>
|
|
782
|
+
<span class="cline-any cline-no"> </span>
|
|
783
|
+
<span class="cline-any cline-no"> </span>
|
|
784
|
+
<span class="cline-any cline-no"> </span>
|
|
785
|
+
<span class="cline-any cline-no"> </span>
|
|
786
|
+
<span class="cline-any cline-no"> </span>
|
|
787
|
+
<span class="cline-any cline-no"> </span>
|
|
788
|
+
<span class="cline-any cline-no"> </span>
|
|
789
|
+
<span class="cline-any cline-no"> </span>
|
|
790
|
+
<span class="cline-any cline-no"> </span>
|
|
791
|
+
<span class="cline-any cline-no"> </span>
|
|
792
|
+
<span class="cline-any cline-no"> </span>
|
|
793
|
+
<span class="cline-any cline-no"> </span>
|
|
794
|
+
<span class="cline-any cline-no"> </span>
|
|
795
|
+
<span class="cline-any cline-no"> </span>
|
|
796
|
+
<span class="cline-any cline-no"> </span>
|
|
797
|
+
<span class="cline-any cline-no"> </span>
|
|
798
|
+
<span class="cline-any cline-no"> </span>
|
|
799
|
+
<span class="cline-any cline-no"> </span>
|
|
800
|
+
<span class="cline-any cline-no"> </span>
|
|
801
|
+
<span class="cline-any cline-no"> </span>
|
|
802
|
+
<span class="cline-any cline-no"> </span>
|
|
803
|
+
<span class="cline-any cline-no"> </span>
|
|
804
|
+
<span class="cline-any cline-no"> </span>
|
|
805
|
+
<span class="cline-any cline-no"> </span>
|
|
806
|
+
<span class="cline-any cline-no"> </span>
|
|
807
|
+
<span class="cline-any cline-no"> </span>
|
|
808
|
+
<span class="cline-any cline-no"> </span>
|
|
809
|
+
<span class="cline-any cline-no"> </span>
|
|
810
|
+
<span class="cline-any cline-no"> </span>
|
|
811
|
+
<span class="cline-any cline-no"> </span>
|
|
812
|
+
<span class="cline-any cline-no"> </span>
|
|
813
|
+
<span class="cline-any cline-no"> </span>
|
|
814
|
+
<span class="cline-any cline-no"> </span>
|
|
815
|
+
<span class="cline-any cline-no"> </span>
|
|
816
|
+
<span class="cline-any cline-no"> </span>
|
|
817
|
+
<span class="cline-any cline-no"> </span>
|
|
818
|
+
<span class="cline-any cline-no"> </span>
|
|
819
|
+
<span class="cline-any cline-no"> </span>
|
|
820
|
+
<span class="cline-any cline-no"> </span>
|
|
821
|
+
<span class="cline-any cline-no"> </span>
|
|
822
|
+
<span class="cline-any cline-no"> </span>
|
|
823
|
+
<span class="cline-any cline-no"> </span>
|
|
824
|
+
<span class="cline-any cline-no"> </span>
|
|
825
|
+
<span class="cline-any cline-no"> </span>
|
|
826
|
+
<span class="cline-any cline-no"> </span>
|
|
827
|
+
<span class="cline-any cline-no"> </span>
|
|
828
|
+
<span class="cline-any cline-no"> </span>
|
|
829
|
+
<span class="cline-any cline-no"> </span>
|
|
830
|
+
<span class="cline-any cline-no"> </span>
|
|
831
|
+
<span class="cline-any cline-no"> </span>
|
|
832
|
+
<span class="cline-any cline-no"> </span>
|
|
833
|
+
<span class="cline-any cline-no"> </span>
|
|
834
|
+
<span class="cline-any cline-no"> </span>
|
|
835
|
+
<span class="cline-any cline-no"> </span>
|
|
836
|
+
<span class="cline-any cline-no"> </span>
|
|
837
|
+
<span class="cline-any cline-no"> </span>
|
|
838
|
+
<span class="cline-any cline-no"> </span>
|
|
839
|
+
<span class="cline-any cline-no"> </span>
|
|
840
|
+
<span class="cline-any cline-no"> </span>
|
|
841
|
+
<span class="cline-any cline-no"> </span>
|
|
842
|
+
<span class="cline-any cline-no"> </span>
|
|
843
|
+
<span class="cline-any cline-no"> </span>
|
|
844
|
+
<span class="cline-any cline-no"> </span>
|
|
845
|
+
<span class="cline-any cline-no"> </span>
|
|
846
|
+
<span class="cline-any cline-no"> </span>
|
|
847
|
+
<span class="cline-any cline-no"> </span>
|
|
848
|
+
<span class="cline-any cline-no"> </span>
|
|
849
|
+
<span class="cline-any cline-no"> </span>
|
|
850
|
+
<span class="cline-any cline-no"> </span>
|
|
851
|
+
<span class="cline-any cline-no"> </span>
|
|
852
|
+
<span class="cline-any cline-no"> </span>
|
|
853
|
+
<span class="cline-any cline-no"> </span>
|
|
854
|
+
<span class="cline-any cline-no"> </span>
|
|
855
|
+
<span class="cline-any cline-no"> </span>
|
|
856
|
+
<span class="cline-any cline-no"> </span>
|
|
857
|
+
<span class="cline-any cline-no"> </span>
|
|
858
|
+
<span class="cline-any cline-no"> </span>
|
|
859
|
+
<span class="cline-any cline-no"> </span>
|
|
860
|
+
<span class="cline-any cline-no"> </span>
|
|
861
|
+
<span class="cline-any cline-no"> </span>
|
|
862
|
+
<span class="cline-any cline-no"> </span>
|
|
863
|
+
<span class="cline-any cline-no"> </span>
|
|
864
|
+
<span class="cline-any cline-no"> </span>
|
|
865
|
+
<span class="cline-any cline-no"> </span>
|
|
866
|
+
<span class="cline-any cline-no"> </span>
|
|
867
|
+
<span class="cline-any cline-no"> </span>
|
|
868
|
+
<span class="cline-any cline-no"> </span>
|
|
869
|
+
<span class="cline-any cline-no"> </span>
|
|
870
|
+
<span class="cline-any cline-no"> </span>
|
|
871
|
+
<span class="cline-any cline-no"> </span>
|
|
872
|
+
<span class="cline-any cline-no"> </span>
|
|
873
|
+
<span class="cline-any cline-no"> </span>
|
|
874
|
+
<span class="cline-any cline-no"> </span>
|
|
875
|
+
<span class="cline-any cline-no"> </span>
|
|
876
|
+
<span class="cline-any cline-no"> </span>
|
|
877
|
+
<span class="cline-any cline-no"> </span>
|
|
878
|
+
<span class="cline-any cline-no"> </span>
|
|
879
|
+
<span class="cline-any cline-no"> </span>
|
|
880
|
+
<span class="cline-any cline-no"> </span>
|
|
881
|
+
<span class="cline-any cline-no"> </span>
|
|
882
|
+
<span class="cline-any cline-no"> </span>
|
|
883
|
+
<span class="cline-any cline-no"> </span>
|
|
884
|
+
<span class="cline-any cline-no"> </span>
|
|
885
|
+
<span class="cline-any cline-no"> </span>
|
|
886
|
+
<span class="cline-any cline-no"> </span>
|
|
887
|
+
<span class="cline-any cline-no"> </span>
|
|
888
|
+
<span class="cline-any cline-no"> </span>
|
|
889
|
+
<span class="cline-any cline-no"> </span>
|
|
890
|
+
<span class="cline-any cline-no"> </span>
|
|
891
|
+
<span class="cline-any cline-no"> </span>
|
|
892
|
+
<span class="cline-any cline-no"> </span>
|
|
893
|
+
<span class="cline-any cline-no"> </span>
|
|
894
|
+
<span class="cline-any cline-no"> </span>
|
|
895
|
+
<span class="cline-any cline-no"> </span>
|
|
896
|
+
<span class="cline-any cline-no"> </span>
|
|
897
|
+
<span class="cline-any cline-no"> </span>
|
|
898
|
+
<span class="cline-any cline-no"> </span>
|
|
899
|
+
<span class="cline-any cline-no"> </span>
|
|
900
|
+
<span class="cline-any cline-no"> </span>
|
|
901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
902
|
+
<span class="cline-any cline-no"> </span>
|
|
903
|
+
<span class="cline-any cline-no"> </span>
|
|
904
|
+
<span class="cline-any cline-no"> </span>
|
|
905
|
+
<span class="cline-any cline-no"> </span>
|
|
906
|
+
<span class="cline-any cline-no"> </span>
|
|
907
|
+
<span class="cline-any cline-no"> </span>
|
|
908
|
+
<span class="cline-any cline-no"> </span>
|
|
909
|
+
<span class="cline-any cline-no"> </span>
|
|
910
|
+
<span class="cline-any cline-no"> </span>
|
|
911
|
+
<span class="cline-any cline-no"> </span>
|
|
912
|
+
<span class="cline-any cline-no"> </span>
|
|
913
|
+
<span class="cline-any cline-no"> </span>
|
|
914
|
+
<span class="cline-any cline-no"> </span>
|
|
915
|
+
<span class="cline-any cline-no"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-no"> </span>
|
|
918
|
+
<span class="cline-any cline-no"> </span>
|
|
919
|
+
<span class="cline-any cline-no"> </span>
|
|
920
|
+
<span class="cline-any cline-no"> </span>
|
|
921
|
+
<span class="cline-any cline-no"> </span>
|
|
922
|
+
<span class="cline-any cline-no"> </span>
|
|
923
|
+
<span class="cline-any cline-no"> </span>
|
|
924
|
+
<span class="cline-any cline-no"> </span>
|
|
925
|
+
<span class="cline-any cline-no"> </span>
|
|
926
|
+
<span class="cline-any cline-no"> </span>
|
|
927
|
+
<span class="cline-any cline-no"> </span>
|
|
928
|
+
<span class="cline-any cline-no"> </span>
|
|
929
|
+
<span class="cline-any cline-no"> </span>
|
|
930
|
+
<span class="cline-any cline-no"> </span>
|
|
931
|
+
<span class="cline-any cline-no"> </span>
|
|
932
|
+
<span class="cline-any cline-no"> </span>
|
|
933
|
+
<span class="cline-any cline-no"> </span>
|
|
934
|
+
<span class="cline-any cline-no"> </span>
|
|
935
|
+
<span class="cline-any cline-no"> </span>
|
|
936
|
+
<span class="cline-any cline-no"> </span>
|
|
937
|
+
<span class="cline-any cline-no"> </span>
|
|
938
|
+
<span class="cline-any cline-no"> </span>
|
|
939
|
+
<span class="cline-any cline-no"> </span>
|
|
940
|
+
<span class="cline-any cline-no"> </span>
|
|
941
|
+
<span class="cline-any cline-no"> </span>
|
|
942
|
+
<span class="cline-any cline-no"> </span>
|
|
943
|
+
<span class="cline-any cline-no"> </span>
|
|
944
|
+
<span class="cline-any cline-no"> </span>
|
|
945
|
+
<span class="cline-any cline-neutral"> </span>
|
|
946
|
+
<span class="cline-any cline-no"> </span>
|
|
947
|
+
<span class="cline-any cline-no"> </span>
|
|
948
|
+
<span class="cline-any cline-no"> </span>
|
|
949
|
+
<span class="cline-any cline-no"> </span>
|
|
950
|
+
<span class="cline-any cline-no"> </span>
|
|
951
|
+
<span class="cline-any cline-no"> </span>
|
|
952
|
+
<span class="cline-any cline-no"> </span>
|
|
953
|
+
<span class="cline-any cline-no"> </span>
|
|
954
|
+
<span class="cline-any cline-no"> </span>
|
|
955
|
+
<span class="cline-any cline-no"> </span>
|
|
956
|
+
<span class="cline-any cline-no"> </span>
|
|
957
|
+
<span class="cline-any cline-no"> </span>
|
|
958
|
+
<span class="cline-any cline-no"> </span>
|
|
959
|
+
<span class="cline-any cline-no"> </span>
|
|
960
|
+
<span class="cline-any cline-no"> </span>
|
|
961
|
+
<span class="cline-any cline-no"> </span>
|
|
962
|
+
<span class="cline-any cline-no"> </span>
|
|
963
|
+
<span class="cline-any cline-no"> </span>
|
|
964
|
+
<span class="cline-any cline-no"> </span>
|
|
965
|
+
<span class="cline-any cline-no"> </span>
|
|
966
|
+
<span class="cline-any cline-no"> </span>
|
|
967
|
+
<span class="cline-any cline-no"> </span>
|
|
968
|
+
<span class="cline-any cline-no"> </span>
|
|
969
|
+
<span class="cline-any cline-no"> </span>
|
|
970
|
+
<span class="cline-any cline-no"> </span>
|
|
971
|
+
<span class="cline-any cline-no"> </span>
|
|
972
|
+
<span class="cline-any cline-no"> </span>
|
|
973
|
+
<span class="cline-any cline-no"> </span>
|
|
974
|
+
<span class="cline-any cline-no"> </span>
|
|
975
|
+
<span class="cline-any cline-no"> </span>
|
|
976
|
+
<span class="cline-any cline-no"> </span>
|
|
977
|
+
<span class="cline-any cline-no"> </span>
|
|
978
|
+
<span class="cline-any cline-no"> </span>
|
|
979
|
+
<span class="cline-any cline-no"> </span>
|
|
980
|
+
<span class="cline-any cline-no"> </span>
|
|
981
|
+
<span class="cline-any cline-no"> </span>
|
|
982
|
+
<span class="cline-any cline-no"> </span>
|
|
983
|
+
<span class="cline-any cline-no"> </span>
|
|
984
|
+
<span class="cline-any cline-neutral"> </span>
|
|
985
|
+
<span class="cline-any cline-no"> </span>
|
|
986
|
+
<span class="cline-any cline-no"> </span>
|
|
987
|
+
<span class="cline-any cline-no"> </span>
|
|
988
|
+
<span class="cline-any cline-no"> </span>
|
|
989
|
+
<span class="cline-any cline-no"> </span>
|
|
990
|
+
<span class="cline-any cline-no"> </span>
|
|
991
|
+
<span class="cline-any cline-no"> </span>
|
|
992
|
+
<span class="cline-any cline-no"> </span>
|
|
993
|
+
<span class="cline-any cline-no"> </span>
|
|
994
|
+
<span class="cline-any cline-no"> </span>
|
|
995
|
+
<span class="cline-any cline-no"> </span>
|
|
996
|
+
<span class="cline-any cline-no"> </span>
|
|
997
|
+
<span class="cline-any cline-no"> </span>
|
|
998
|
+
<span class="cline-any cline-no"> </span>
|
|
999
|
+
<span class="cline-any cline-no"> </span>
|
|
1000
|
+
<span class="cline-any cline-no"> </span>
|
|
1001
|
+
<span class="cline-any cline-no"> </span>
|
|
1002
|
+
<span class="cline-any cline-no"> </span>
|
|
1003
|
+
<span class="cline-any cline-no"> </span>
|
|
1004
|
+
<span class="cline-any cline-no"> </span>
|
|
1005
|
+
<span class="cline-any cline-no"> </span>
|
|
1006
|
+
<span class="cline-any cline-no"> </span>
|
|
1007
|
+
<span class="cline-any cline-no"> </span>
|
|
1008
|
+
<span class="cline-any cline-no"> </span>
|
|
1009
|
+
<span class="cline-any cline-no"> </span>
|
|
1010
|
+
<span class="cline-any cline-no"> </span>
|
|
1011
|
+
<span class="cline-any cline-no"> </span>
|
|
1012
|
+
<span class="cline-any cline-no"> </span>
|
|
1013
|
+
<span class="cline-any cline-no"> </span>
|
|
1014
|
+
<span class="cline-any cline-no"> </span>
|
|
1015
|
+
<span class="cline-any cline-no"> </span>
|
|
1016
|
+
<span class="cline-any cline-no"> </span>
|
|
1017
|
+
<span class="cline-any cline-no"> </span>
|
|
1018
|
+
<span class="cline-any cline-no"> </span>
|
|
1019
|
+
<span class="cline-any cline-no"> </span>
|
|
1020
|
+
<span class="cline-any cline-no"> </span>
|
|
1021
|
+
<span class="cline-any cline-no"> </span>
|
|
1022
|
+
<span class="cline-any cline-no"> </span>
|
|
1023
|
+
<span class="cline-any cline-no"> </span>
|
|
1024
|
+
<span class="cline-any cline-no"> </span>
|
|
1025
|
+
<span class="cline-any cline-no"> </span>
|
|
1026
|
+
<span class="cline-any cline-no"> </span>
|
|
1027
|
+
<span class="cline-any cline-no"> </span>
|
|
1028
|
+
<span class="cline-any cline-no"> </span>
|
|
1029
|
+
<span class="cline-any cline-no"> </span>
|
|
1030
|
+
<span class="cline-any cline-no"> </span>
|
|
1031
|
+
<span class="cline-any cline-no"> </span>
|
|
1032
|
+
<span class="cline-any cline-no"> </span>
|
|
1033
|
+
<span class="cline-any cline-no"> </span>
|
|
1034
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
+
<span class="cline-any cline-no"> </span>
|
|
1036
|
+
<span class="cline-any cline-no"> </span>
|
|
1037
|
+
<span class="cline-any cline-no"> </span>
|
|
1038
|
+
<span class="cline-any cline-no"> </span>
|
|
1039
|
+
<span class="cline-any cline-no"> </span>
|
|
1040
|
+
<span class="cline-any cline-no"> </span>
|
|
1041
|
+
<span class="cline-any cline-no"> </span>
|
|
1042
|
+
<span class="cline-any cline-no"> </span>
|
|
1043
|
+
<span class="cline-any cline-no"> </span>
|
|
1044
|
+
<span class="cline-any cline-no"> </span>
|
|
1045
|
+
<span class="cline-any cline-no"> </span>
|
|
1046
|
+
<span class="cline-any cline-no"> </span>
|
|
1047
|
+
<span class="cline-any cline-no"> </span>
|
|
1048
|
+
<span class="cline-any cline-no"> </span>
|
|
1049
|
+
<span class="cline-any cline-no"> </span>
|
|
1050
|
+
<span class="cline-any cline-no"> </span>
|
|
1051
|
+
<span class="cline-any cline-no"> </span>
|
|
1052
|
+
<span class="cline-any cline-no"> </span>
|
|
1053
|
+
<span class="cline-any cline-no"> </span>
|
|
1054
|
+
<span class="cline-any cline-no"> </span>
|
|
1055
|
+
<span class="cline-any cline-no"> </span>
|
|
1056
|
+
<span class="cline-any cline-no"> </span>
|
|
1057
|
+
<span class="cline-any cline-no"> </span>
|
|
1058
|
+
<span class="cline-any cline-no"> </span>
|
|
1059
|
+
<span class="cline-any cline-no"> </span>
|
|
1060
|
+
<span class="cline-any cline-no"> </span>
|
|
1061
|
+
<span class="cline-any cline-no"> </span>
|
|
1062
|
+
<span class="cline-any cline-no"> </span>
|
|
1063
|
+
<span class="cline-any cline-no"> </span>
|
|
1064
|
+
<span class="cline-any cline-no"> </span>
|
|
1065
|
+
<span class="cline-any cline-no"> </span>
|
|
1066
|
+
<span class="cline-any cline-no"> </span>
|
|
1067
|
+
<span class="cline-any cline-no"> </span>
|
|
1068
|
+
<span class="cline-any cline-no"> </span>
|
|
1069
|
+
<span class="cline-any cline-no"> </span>
|
|
1070
|
+
<span class="cline-any cline-no"> </span>
|
|
1071
|
+
<span class="cline-any cline-no"> </span>
|
|
1072
|
+
<span class="cline-any cline-no"> </span>
|
|
1073
|
+
<span class="cline-any cline-no"> </span>
|
|
1074
|
+
<span class="cline-any cline-no"> </span>
|
|
1075
|
+
<span class="cline-any cline-no"> </span>
|
|
1076
|
+
<span class="cline-any cline-no"> </span>
|
|
1077
|
+
<span class="cline-any cline-no"> </span>
|
|
1078
|
+
<span class="cline-any cline-no"> </span>
|
|
1079
|
+
<span class="cline-any cline-no"> </span>
|
|
1080
|
+
<span class="cline-any cline-no"> </span>
|
|
1081
|
+
<span class="cline-any cline-no"> </span>
|
|
1082
|
+
<span class="cline-any cline-no"> </span>
|
|
1083
|
+
<span class="cline-any cline-no"> </span>
|
|
1084
|
+
<span class="cline-any cline-no"> </span>
|
|
1085
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
+
<span class="cline-any cline-no"> </span>
|
|
1087
|
+
<span class="cline-any cline-no"> </span>
|
|
1088
|
+
<span class="cline-any cline-no"> </span>
|
|
1089
|
+
<span class="cline-any cline-no"> </span>
|
|
1090
|
+
<span class="cline-any cline-no"> </span>
|
|
1091
|
+
<span class="cline-any cline-no"> </span>
|
|
1092
|
+
<span class="cline-any cline-no"> </span>
|
|
1093
|
+
<span class="cline-any cline-no"> </span>
|
|
1094
|
+
<span class="cline-any cline-no"> </span>
|
|
1095
|
+
<span class="cline-any cline-no"> </span>
|
|
1096
|
+
<span class="cline-any cline-no"> </span>
|
|
1097
|
+
<span class="cline-any cline-no"> </span>
|
|
1098
|
+
<span class="cline-any cline-no"> </span>
|
|
1099
|
+
<span class="cline-any cline-no"> </span>
|
|
1100
|
+
<span class="cline-any cline-no"> </span>
|
|
1101
|
+
<span class="cline-any cline-no"> </span>
|
|
1102
|
+
<span class="cline-any cline-no"> </span>
|
|
1103
|
+
<span class="cline-any cline-no"> </span>
|
|
1104
|
+
<span class="cline-any cline-no"> </span>
|
|
1105
|
+
<span class="cline-any cline-no"> </span>
|
|
1106
|
+
<span class="cline-any cline-no"> </span>
|
|
1107
|
+
<span class="cline-any cline-no"> </span>
|
|
1108
|
+
<span class="cline-any cline-no"> </span>
|
|
1109
|
+
<span class="cline-any cline-no"> </span>
|
|
1110
|
+
<span class="cline-any cline-no"> </span>
|
|
1111
|
+
<span class="cline-any cline-no"> </span>
|
|
1112
|
+
<span class="cline-any cline-no"> </span>
|
|
1113
|
+
<span class="cline-any cline-no"> </span>
|
|
1114
|
+
<span class="cline-any cline-no"> </span>
|
|
1115
|
+
<span class="cline-any cline-no"> </span>
|
|
1116
|
+
<span class="cline-any cline-no"> </span>
|
|
1117
|
+
<span class="cline-any cline-no"> </span>
|
|
1118
|
+
<span class="cline-any cline-no"> </span>
|
|
1119
|
+
<span class="cline-any cline-no"> </span>
|
|
1120
|
+
<span class="cline-any cline-no"> </span>
|
|
1121
|
+
<span class="cline-any cline-no"> </span>
|
|
1122
|
+
<span class="cline-any cline-no"> </span>
|
|
1123
|
+
<span class="cline-any cline-no"> </span>
|
|
1124
|
+
<span class="cline-any cline-no"> </span>
|
|
1125
|
+
<span class="cline-any cline-no"> </span>
|
|
1126
|
+
<span class="cline-any cline-no"> </span>
|
|
1127
|
+
<span class="cline-any cline-no"> </span>
|
|
1128
|
+
<span class="cline-any cline-no"> </span>
|
|
1129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
+
<span class="cline-any cline-no"> </span>
|
|
1131
|
+
<span class="cline-any cline-no"> </span>
|
|
1132
|
+
<span class="cline-any cline-no"> </span>
|
|
1133
|
+
<span class="cline-any cline-no"> </span>
|
|
1134
|
+
<span class="cline-any cline-no"> </span>
|
|
1135
|
+
<span class="cline-any cline-no"> </span>
|
|
1136
|
+
<span class="cline-any cline-no"> </span>
|
|
1137
|
+
<span class="cline-any cline-no"> </span>
|
|
1138
|
+
<span class="cline-any cline-no"> </span>
|
|
1139
|
+
<span class="cline-any cline-no"> </span>
|
|
1140
|
+
<span class="cline-any cline-no"> </span>
|
|
1141
|
+
<span class="cline-any cline-no"> </span>
|
|
1142
|
+
<span class="cline-any cline-no"> </span>
|
|
1143
|
+
<span class="cline-any cline-no"> </span>
|
|
1144
|
+
<span class="cline-any cline-no"> </span>
|
|
1145
|
+
<span class="cline-any cline-no"> </span>
|
|
1146
|
+
<span class="cline-any cline-no"> </span>
|
|
1147
|
+
<span class="cline-any cline-no"> </span>
|
|
1148
|
+
<span class="cline-any cline-no"> </span>
|
|
1149
|
+
<span class="cline-any cline-no"> </span>
|
|
1150
|
+
<span class="cline-any cline-no"> </span>
|
|
1151
|
+
<span class="cline-any cline-no"> </span>
|
|
1152
|
+
<span class="cline-any cline-no"> </span>
|
|
1153
|
+
<span class="cline-any cline-no"> </span>
|
|
1154
|
+
<span class="cline-any cline-no"> </span>
|
|
1155
|
+
<span class="cline-any cline-no"> </span>
|
|
1156
|
+
<span class="cline-any cline-no"> </span>
|
|
1157
|
+
<span class="cline-any cline-no"> </span>
|
|
1158
|
+
<span class="cline-any cline-no"> </span>
|
|
1159
|
+
<span class="cline-any cline-no"> </span>
|
|
1160
|
+
<span class="cline-any cline-no"> </span>
|
|
1161
|
+
<span class="cline-any cline-no"> </span>
|
|
1162
|
+
<span class="cline-any cline-no"> </span>
|
|
1163
|
+
<span class="cline-any cline-no"> </span>
|
|
1164
|
+
<span class="cline-any cline-no"> </span>
|
|
1165
|
+
<span class="cline-any cline-no"> </span>
|
|
1166
|
+
<span class="cline-any cline-no"> </span>
|
|
1167
|
+
<span class="cline-any cline-no"> </span>
|
|
1168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1169
|
+
<span class="cline-any cline-no"> </span>
|
|
1170
|
+
<span class="cline-any cline-no"> </span>
|
|
1171
|
+
<span class="cline-any cline-no"> </span>
|
|
1172
|
+
<span class="cline-any cline-no"> </span>
|
|
1173
|
+
<span class="cline-any cline-no"> </span>
|
|
1174
|
+
<span class="cline-any cline-no"> </span>
|
|
1175
|
+
<span class="cline-any cline-no"> </span>
|
|
1176
|
+
<span class="cline-any cline-no"> </span>
|
|
1177
|
+
<span class="cline-any cline-no"> </span>
|
|
1178
|
+
<span class="cline-any cline-no"> </span>
|
|
1179
|
+
<span class="cline-any cline-no"> </span>
|
|
1180
|
+
<span class="cline-any cline-no"> </span>
|
|
1181
|
+
<span class="cline-any cline-no"> </span>
|
|
1182
|
+
<span class="cline-any cline-no"> </span>
|
|
1183
|
+
<span class="cline-any cline-no"> </span>
|
|
1184
|
+
<span class="cline-any cline-no"> </span>
|
|
1185
|
+
<span class="cline-any cline-no"> </span>
|
|
1186
|
+
<span class="cline-any cline-no"> </span>
|
|
1187
|
+
<span class="cline-any cline-no"> </span>
|
|
1188
|
+
<span class="cline-any cline-no"> </span>
|
|
1189
|
+
<span class="cline-any cline-no"> </span>
|
|
1190
|
+
<span class="cline-any cline-no"> </span>
|
|
1191
|
+
<span class="cline-any cline-no"> </span>
|
|
1192
|
+
<span class="cline-any cline-no"> </span>
|
|
1193
|
+
<span class="cline-any cline-no"> </span>
|
|
1194
|
+
<span class="cline-any cline-no"> </span>
|
|
1195
|
+
<span class="cline-any cline-no"> </span>
|
|
1196
|
+
<span class="cline-any cline-no"> </span>
|
|
1197
|
+
<span class="cline-any cline-no"> </span>
|
|
1198
|
+
<span class="cline-any cline-no"> </span>
|
|
1199
|
+
<span class="cline-any cline-no"> </span>
|
|
1200
|
+
<span class="cline-any cline-no"> </span>
|
|
1201
|
+
<span class="cline-any cline-no"> </span>
|
|
1202
|
+
<span class="cline-any cline-no"> </span>
|
|
1203
|
+
<span class="cline-any cline-no"> </span>
|
|
1204
|
+
<span class="cline-any cline-no"> </span>
|
|
1205
|
+
<span class="cline-any cline-no"> </span>
|
|
1206
|
+
<span class="cline-any cline-no"> </span>
|
|
1207
|
+
<span class="cline-any cline-no"> </span>
|
|
1208
|
+
<span class="cline-any cline-no"> </span>
|
|
1209
|
+
<span class="cline-any cline-no"> </span>
|
|
1210
|
+
<span class="cline-any cline-no"> </span>
|
|
1211
|
+
<span class="cline-any cline-no"> </span>
|
|
1212
|
+
<span class="cline-any cline-no"> </span>
|
|
1213
|
+
<span class="cline-any cline-no"> </span>
|
|
1214
|
+
<span class="cline-any cline-no"> </span>
|
|
1215
|
+
<span class="cline-any cline-no"> </span>
|
|
1216
|
+
<span class="cline-any cline-no"> </span>
|
|
1217
|
+
<span class="cline-any cline-no"> </span>
|
|
1218
|
+
<span class="cline-any cline-no"> </span>
|
|
1219
|
+
<span class="cline-any cline-no"> </span>
|
|
1220
|
+
<span class="cline-any cline-no"> </span>
|
|
1221
|
+
<span class="cline-any cline-no"> </span>
|
|
1222
|
+
<span class="cline-any cline-no"> </span>
|
|
1223
|
+
<span class="cline-any cline-no"> </span>
|
|
1224
|
+
<span class="cline-any cline-no"> </span>
|
|
1225
|
+
<span class="cline-any cline-no"> </span>
|
|
1226
|
+
<span class="cline-any cline-no"> </span>
|
|
1227
|
+
<span class="cline-any cline-no"> </span>
|
|
1228
|
+
<span class="cline-any cline-no"> </span>
|
|
1229
|
+
<span class="cline-any cline-no"> </span>
|
|
1230
|
+
<span class="cline-any cline-no"> </span>
|
|
1231
|
+
<span class="cline-any cline-no"> </span>
|
|
1232
|
+
<span class="cline-any cline-no"> </span>
|
|
1233
|
+
<span class="cline-any cline-no"> </span>
|
|
1234
|
+
<span class="cline-any cline-no"> </span>
|
|
1235
|
+
<span class="cline-any cline-no"> </span>
|
|
1236
|
+
<span class="cline-any cline-no"> </span>
|
|
1237
|
+
<span class="cline-any cline-no"> </span>
|
|
1238
|
+
<span class="cline-any cline-no"> </span>
|
|
1239
|
+
<span class="cline-any cline-no"> </span>
|
|
1240
|
+
<span class="cline-any cline-no"> </span>
|
|
1241
|
+
<span class="cline-any cline-no"> </span>
|
|
1242
|
+
<span class="cline-any cline-no"> </span>
|
|
1243
|
+
<span class="cline-any cline-no"> </span>
|
|
1244
|
+
<span class="cline-any cline-no"> </span>
|
|
1245
|
+
<span class="cline-any cline-no"> </span>
|
|
1246
|
+
<span class="cline-any cline-no"> </span>
|
|
1247
|
+
<span class="cline-any cline-no"> </span>
|
|
1248
|
+
<span class="cline-any cline-no"> </span>
|
|
1249
|
+
<span class="cline-any cline-no"> </span>
|
|
1250
|
+
<span class="cline-any cline-no"> </span>
|
|
1251
|
+
<span class="cline-any cline-no"> </span>
|
|
1252
|
+
<span class="cline-any cline-no"> </span>
|
|
1253
|
+
<span class="cline-any cline-no"> </span>
|
|
1254
|
+
<span class="cline-any cline-no"> </span>
|
|
1255
|
+
<span class="cline-any cline-no"> </span>
|
|
1256
|
+
<span class="cline-any cline-no"> </span>
|
|
1257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
+
<span class="cline-any cline-no"> </span>
|
|
1259
|
+
<span class="cline-any cline-no"> </span>
|
|
1260
|
+
<span class="cline-any cline-no"> </span>
|
|
1261
|
+
<span class="cline-any cline-no"> </span>
|
|
1262
|
+
<span class="cline-any cline-no"> </span>
|
|
1263
|
+
<span class="cline-any cline-no"> </span>
|
|
1264
|
+
<span class="cline-any cline-no"> </span>
|
|
1265
|
+
<span class="cline-any cline-no"> </span>
|
|
1266
|
+
<span class="cline-any cline-no"> </span>
|
|
1267
|
+
<span class="cline-any cline-no"> </span>
|
|
1268
|
+
<span class="cline-any cline-no"> </span>
|
|
1269
|
+
<span class="cline-any cline-no"> </span>
|
|
1270
|
+
<span class="cline-any cline-no"> </span>
|
|
1271
|
+
<span class="cline-any cline-no"> </span>
|
|
1272
|
+
<span class="cline-any cline-no"> </span>
|
|
1273
|
+
<span class="cline-any cline-no"> </span>
|
|
1274
|
+
<span class="cline-any cline-no"> </span>
|
|
1275
|
+
<span class="cline-any cline-no"> </span>
|
|
1276
|
+
<span class="cline-any cline-no"> </span>
|
|
1277
|
+
<span class="cline-any cline-no"> </span>
|
|
1278
|
+
<span class="cline-any cline-no"> </span>
|
|
1279
|
+
<span class="cline-any cline-no"> </span>
|
|
1280
|
+
<span class="cline-any cline-no"> </span>
|
|
1281
|
+
<span class="cline-any cline-no"> </span>
|
|
1282
|
+
<span class="cline-any cline-no"> </span>
|
|
1283
|
+
<span class="cline-any cline-no"> </span>
|
|
1284
|
+
<span class="cline-any cline-no"> </span>
|
|
1285
|
+
<span class="cline-any cline-no"> </span>
|
|
1286
|
+
<span class="cline-any cline-no"> </span>
|
|
1287
|
+
<span class="cline-any cline-no"> </span>
|
|
1288
|
+
<span class="cline-any cline-no"> </span>
|
|
1289
|
+
<span class="cline-any cline-no"> </span>
|
|
1290
|
+
<span class="cline-any cline-no"> </span>
|
|
1291
|
+
<span class="cline-any cline-no"> </span>
|
|
1292
|
+
<span class="cline-any cline-no"> </span>
|
|
1293
|
+
<span class="cline-any cline-no"> </span>
|
|
1294
|
+
<span class="cline-any cline-no"> </span>
|
|
1295
|
+
<span class="cline-any cline-no"> </span>
|
|
1296
|
+
<span class="cline-any cline-no"> </span>
|
|
1297
|
+
<span class="cline-any cline-no"> </span>
|
|
1298
|
+
<span class="cline-any cline-no"> </span>
|
|
1299
|
+
<span class="cline-any cline-no"> </span>
|
|
1300
|
+
<span class="cline-any cline-no"> </span>
|
|
1301
|
+
<span class="cline-any cline-no"> </span>
|
|
1302
|
+
<span class="cline-any cline-no"> </span>
|
|
1303
|
+
<span class="cline-any cline-no"> </span>
|
|
1304
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { GEOM_CIRCLE, GEOM_ELLIPSE, GEOM_POLYGON, GEOM_RECTANGLE, GEOM_ROUNDED_RECTANGLE } from '../../core/const.js';<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
|
|
1305
|
+
<span class="cstat-no" title="statement not covered" >import { Point } from '../../geom/point.js';</span>
|
|
1306
|
+
<span class="cstat-no" title="statement not covered" >import { hex2rgb } from '../../util/math.js';</span>
|
|
1307
|
+
<span class="cstat-no" title="statement not covered" >import { triangulate } from './earcut.js';</span>
|
|
1308
|
+
<span class="cstat-no" title="statement not covered" >import { GraphicsData } from './graphics_data.js';</span>
|
|
1309
|
+
|
|
1310
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1311
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1312
|
+
<span class="cstat-no" title="statement not covered" > * @returns {number} TBD.</span>
|
|
1313
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1314
|
+
<span class="cstat-no" title="statement not covered" >export const getStencilBufferLimit = () => {</span>
|
|
1315
|
+
<span class="cstat-no" title="statement not covered" > if (!window.PhaserRegistry.stencilBufferLimit) {</span>
|
|
1316
|
+
<span class="cstat-no" title="statement not covered" > window.PhaserRegistry.stencilBufferLimit = 6;</span>
|
|
1317
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1318
|
+
<span class="cstat-no" title="statement not covered" > return window.PhaserRegistry.stencilBufferLimit;</span>
|
|
1319
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1320
|
+
|
|
1321
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1322
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1323
|
+
<span class="cstat-no" title="statement not covered" > * @returns {object[]} TBD.</span>
|
|
1324
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1325
|
+
<span class="cstat-no" title="statement not covered" >export const getGraphicsDataPool = () => {</span>
|
|
1326
|
+
<span class="cstat-no" title="statement not covered" > if (!window.PhaserRegistry.graphicsDataPool) {</span>
|
|
1327
|
+
<span class="cstat-no" title="statement not covered" > window.PhaserRegistry.graphicsDataPool = [];</span>
|
|
1328
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1329
|
+
<span class="cstat-no" title="statement not covered" > return window.PhaserRegistry.graphicsDataPool;</span>
|
|
1330
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1331
|
+
|
|
1332
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1333
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1334
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} webGL - TBD.</span>
|
|
1335
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} type - TBD.</span>
|
|
1336
|
+
<span class="cstat-no" title="statement not covered" > * @returns {object} TBD.</span>
|
|
1337
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1338
|
+
<span class="cstat-no" title="statement not covered" >export const switchMode = (webGL, type) => {</span>
|
|
1339
|
+
<span class="cstat-no" title="statement not covered" > let webGLData;</span>
|
|
1340
|
+
<span class="cstat-no" title="statement not covered" > if (!webGL.data.length) {</span>
|
|
1341
|
+
<span class="cstat-no" title="statement not covered" > webGLData = getGraphicsDataPool().pop() || new GraphicsData(webGL.gl);</span>
|
|
1342
|
+
<span class="cstat-no" title="statement not covered" > webGLData.mode = type;</span>
|
|
1343
|
+
<span class="cstat-no" title="statement not covered" > webGL.data.push(webGLData);</span>
|
|
1344
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1345
|
+
<span class="cstat-no" title="statement not covered" > webGLData = webGL.data[webGL.data.length - 1];</span>
|
|
1346
|
+
<span class="cstat-no" title="statement not covered" > if (webGLData.mode !== type || type === 1) {</span>
|
|
1347
|
+
<span class="cstat-no" title="statement not covered" > webGLData = getGraphicsDataPool().pop() || new GraphicsData(webGL.gl);</span>
|
|
1348
|
+
<span class="cstat-no" title="statement not covered" > webGLData.mode = type;</span>
|
|
1349
|
+
<span class="cstat-no" title="statement not covered" > webGL.data.push(webGLData);</span>
|
|
1350
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1351
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1352
|
+
<span class="cstat-no" title="statement not covered" > webGLData.dirty = true;</span>
|
|
1353
|
+
<span class="cstat-no" title="statement not covered" > return webGLData;</span>
|
|
1354
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1355
|
+
|
|
1356
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1357
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1358
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1359
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1360
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1361
|
+
<span class="cstat-no" title="statement not covered" >export const buildLine = (graphicsData, webGLData) => {</span>
|
|
1362
|
+
<span class="cstat-no" title="statement not covered" > // TODO OPTIMISE!</span>
|
|
1363
|
+
<span class="cstat-no" title="statement not covered" > let i = 0;</span>
|
|
1364
|
+
<span class="cstat-no" title="statement not covered" > let points = graphicsData.points;</span>
|
|
1365
|
+
<span class="cstat-no" title="statement not covered" > if (points.length === 0) {</span>
|
|
1366
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1367
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1368
|
+
<span class="cstat-no" title="statement not covered" > // if the line width is an odd number add 0.5 to align to a whole pixel</span>
|
|
1369
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.lineWidth % 2) {</span>
|
|
1370
|
+
<span class="cstat-no" title="statement not covered" > for (i = 0; i < points.length; i += 1) {</span>
|
|
1371
|
+
<span class="cstat-no" title="statement not covered" > points[i] += 0.5;</span>
|
|
1372
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1373
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1374
|
+
<span class="cstat-no" title="statement not covered" > // get first and last point.. figure out the middle!</span>
|
|
1375
|
+
<span class="cstat-no" title="statement not covered" > const firstPoint = new Point(points[0], points[1]);</span>
|
|
1376
|
+
<span class="cstat-no" title="statement not covered" > let lastPoint = new Point(points[points.length - 2], points[points.length - 1]);</span>
|
|
1377
|
+
<span class="cstat-no" title="statement not covered" > // if the first point is the last point - gonna have issues :)</span>
|
|
1378
|
+
<span class="cstat-no" title="statement not covered" > if (firstPoint.x === lastPoint.x && firstPoint.y === lastPoint.y) {</span>
|
|
1379
|
+
<span class="cstat-no" title="statement not covered" > // need to clone as we are going to slightly modify the shape..</span>
|
|
1380
|
+
<span class="cstat-no" title="statement not covered" > points = points.slice();</span>
|
|
1381
|
+
<span class="cstat-no" title="statement not covered" > points.pop();</span>
|
|
1382
|
+
<span class="cstat-no" title="statement not covered" > points.pop();</span>
|
|
1383
|
+
<span class="cstat-no" title="statement not covered" > lastPoint = new Point(points[points.length - 2], points[points.length - 1]);</span>
|
|
1384
|
+
<span class="cstat-no" title="statement not covered" > const midPointX = lastPoint.x + (firstPoint.x - lastPoint.x) * 0.5;</span>
|
|
1385
|
+
<span class="cstat-no" title="statement not covered" > const midPointY = lastPoint.y + (firstPoint.y - lastPoint.y) * 0.5;</span>
|
|
1386
|
+
<span class="cstat-no" title="statement not covered" > points.unshift(midPointX, midPointY);</span>
|
|
1387
|
+
<span class="cstat-no" title="statement not covered" > points.push(midPointX, midPointY);</span>
|
|
1388
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1389
|
+
<span class="cstat-no" title="statement not covered" > const verts = webGLData.points;</span>
|
|
1390
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1391
|
+
<span class="cstat-no" title="statement not covered" > const length = points.length / 2;</span>
|
|
1392
|
+
<span class="cstat-no" title="statement not covered" > let indexCount = points.length;</span>
|
|
1393
|
+
<span class="cstat-no" title="statement not covered" > let indexStart = verts.length / 6;</span>
|
|
1394
|
+
<span class="cstat-no" title="statement not covered" > // DRAW the Line</span>
|
|
1395
|
+
<span class="cstat-no" title="statement not covered" > const width = graphicsData.lineWidth / 2;</span>
|
|
1396
|
+
<span class="cstat-no" title="statement not covered" > // sort color</span>
|
|
1397
|
+
<span class="cstat-no" title="statement not covered" > const color = hex2rgb(graphicsData.lineColor);</span>
|
|
1398
|
+
<span class="cstat-no" title="statement not covered" > const alpha = graphicsData.lineAlpha;</span>
|
|
1399
|
+
<span class="cstat-no" title="statement not covered" > const r = color[0] * alpha;</span>
|
|
1400
|
+
<span class="cstat-no" title="statement not covered" > const g = color[1] * alpha;</span>
|
|
1401
|
+
<span class="cstat-no" title="statement not covered" > const b = color[2] * alpha;</span>
|
|
1402
|
+
<span class="cstat-no" title="statement not covered" > let px;</span>
|
|
1403
|
+
<span class="cstat-no" title="statement not covered" > let py;</span>
|
|
1404
|
+
<span class="cstat-no" title="statement not covered" > let p1x;</span>
|
|
1405
|
+
<span class="cstat-no" title="statement not covered" > let p1y;</span>
|
|
1406
|
+
<span class="cstat-no" title="statement not covered" > let p2x;</span>
|
|
1407
|
+
<span class="cstat-no" title="statement not covered" > let p2y;</span>
|
|
1408
|
+
<span class="cstat-no" title="statement not covered" > let p3x;</span>
|
|
1409
|
+
<span class="cstat-no" title="statement not covered" > let p3y;</span>
|
|
1410
|
+
<span class="cstat-no" title="statement not covered" > let perpx;</span>
|
|
1411
|
+
<span class="cstat-no" title="statement not covered" > let perpy;</span>
|
|
1412
|
+
<span class="cstat-no" title="statement not covered" > let perp2x;</span>
|
|
1413
|
+
<span class="cstat-no" title="statement not covered" > let perp2y;</span>
|
|
1414
|
+
<span class="cstat-no" title="statement not covered" > let perp3x;</span>
|
|
1415
|
+
<span class="cstat-no" title="statement not covered" > let perp3y;</span>
|
|
1416
|
+
<span class="cstat-no" title="statement not covered" > let a1;</span>
|
|
1417
|
+
<span class="cstat-no" title="statement not covered" > let b1;</span>
|
|
1418
|
+
<span class="cstat-no" title="statement not covered" > let c1;</span>
|
|
1419
|
+
<span class="cstat-no" title="statement not covered" > let a2;</span>
|
|
1420
|
+
<span class="cstat-no" title="statement not covered" > let b2;</span>
|
|
1421
|
+
<span class="cstat-no" title="statement not covered" > let c2;</span>
|
|
1422
|
+
<span class="cstat-no" title="statement not covered" > let denom;</span>
|
|
1423
|
+
<span class="cstat-no" title="statement not covered" > let pdist;</span>
|
|
1424
|
+
<span class="cstat-no" title="statement not covered" > let dist;</span>
|
|
1425
|
+
<span class="cstat-no" title="statement not covered" > p1x = points[0];</span>
|
|
1426
|
+
<span class="cstat-no" title="statement not covered" > p1y = points[1];</span>
|
|
1427
|
+
<span class="cstat-no" title="statement not covered" > p2x = points[2];</span>
|
|
1428
|
+
<span class="cstat-no" title="statement not covered" > p2y = points[3];</span>
|
|
1429
|
+
<span class="cstat-no" title="statement not covered" > perpx = -(p1y - p2y);</span>
|
|
1430
|
+
<span class="cstat-no" title="statement not covered" > perpy = p1x - p2x;</span>
|
|
1431
|
+
<span class="cstat-no" title="statement not covered" > dist = Math.sqrt(perpx * perpx + perpy * perpy);</span>
|
|
1432
|
+
<span class="cstat-no" title="statement not covered" > perpx /= dist;</span>
|
|
1433
|
+
<span class="cstat-no" title="statement not covered" > perpy /= dist;</span>
|
|
1434
|
+
<span class="cstat-no" title="statement not covered" > perpx *= width;</span>
|
|
1435
|
+
<span class="cstat-no" title="statement not covered" > perpy *= width;</span>
|
|
1436
|
+
<span class="cstat-no" title="statement not covered" > // start</span>
|
|
1437
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p1x - perpx, p1y - perpy, r, g, b, alpha);</span>
|
|
1438
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p1x + perpx, p1y + perpy, r, g, b, alpha);</span>
|
|
1439
|
+
<span class="cstat-no" title="statement not covered" > for (i = 1; i < length - 1; i += 1) {</span>
|
|
1440
|
+
<span class="cstat-no" title="statement not covered" > p1x = points[(i - 1) * 2];</span>
|
|
1441
|
+
<span class="cstat-no" title="statement not covered" > p1y = points[(i - 1) * 2 + 1];</span>
|
|
1442
|
+
<span class="cstat-no" title="statement not covered" > p2x = points[i * 2];</span>
|
|
1443
|
+
<span class="cstat-no" title="statement not covered" > p2y = points[i * 2 + 1];</span>
|
|
1444
|
+
<span class="cstat-no" title="statement not covered" > p3x = points[(i + 1) * 2];</span>
|
|
1445
|
+
<span class="cstat-no" title="statement not covered" > p3y = points[(i + 1) * 2 + 1];</span>
|
|
1446
|
+
<span class="cstat-no" title="statement not covered" > perpx = -(p1y - p2y);</span>
|
|
1447
|
+
<span class="cstat-no" title="statement not covered" > perpy = p1x - p2x;</span>
|
|
1448
|
+
<span class="cstat-no" title="statement not covered" > dist = Math.sqrt(perpx * perpx + perpy * perpy);</span>
|
|
1449
|
+
<span class="cstat-no" title="statement not covered" > perpx /= dist;</span>
|
|
1450
|
+
<span class="cstat-no" title="statement not covered" > perpy /= dist;</span>
|
|
1451
|
+
<span class="cstat-no" title="statement not covered" > perpx *= width;</span>
|
|
1452
|
+
<span class="cstat-no" title="statement not covered" > perpy *= width;</span>
|
|
1453
|
+
<span class="cstat-no" title="statement not covered" > perp2x = -(p2y - p3y);</span>
|
|
1454
|
+
<span class="cstat-no" title="statement not covered" > perp2y = p2x - p3x;</span>
|
|
1455
|
+
<span class="cstat-no" title="statement not covered" > dist = Math.sqrt(perp2x * perp2x + perp2y * perp2y);</span>
|
|
1456
|
+
<span class="cstat-no" title="statement not covered" > perp2x /= dist;</span>
|
|
1457
|
+
<span class="cstat-no" title="statement not covered" > perp2y /= dist;</span>
|
|
1458
|
+
<span class="cstat-no" title="statement not covered" > perp2x *= width;</span>
|
|
1459
|
+
<span class="cstat-no" title="statement not covered" > perp2y *= width;</span>
|
|
1460
|
+
<span class="cstat-no" title="statement not covered" > a1 = -perpy + p1y - (-perpy + p2y);</span>
|
|
1461
|
+
<span class="cstat-no" title="statement not covered" > b1 = -perpx + p2x - (-perpx + p1x);</span>
|
|
1462
|
+
<span class="cstat-no" title="statement not covered" > c1 = (-perpx + p1x) * (-perpy + p2y) - (-perpx + p2x) * (-perpy + p1y);</span>
|
|
1463
|
+
<span class="cstat-no" title="statement not covered" > a2 = -perp2y + p3y - (-perp2y + p2y);</span>
|
|
1464
|
+
<span class="cstat-no" title="statement not covered" > b2 = -perp2x + p2x - (-perp2x + p3x);</span>
|
|
1465
|
+
<span class="cstat-no" title="statement not covered" > c2 = (-perp2x + p3x) * (-perp2y + p2y) - (-perp2x + p2x) * (-perp2y + p3y);</span>
|
|
1466
|
+
<span class="cstat-no" title="statement not covered" > denom = a1 * b2 - a2 * b1;</span>
|
|
1467
|
+
<span class="cstat-no" title="statement not covered" > if (Math.abs(denom) < 0.1) {</span>
|
|
1468
|
+
<span class="cstat-no" title="statement not covered" > denom += 10.1;</span>
|
|
1469
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x - perpx, p2y - perpy, r, g, b, alpha);</span>
|
|
1470
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x + perpx, p2y + perpy, r, g, b, alpha);</span>
|
|
1471
|
+
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
1472
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1473
|
+
<span class="cstat-no" title="statement not covered" > px = (b1 * c2 - b2 * c1) / denom;</span>
|
|
1474
|
+
<span class="cstat-no" title="statement not covered" > py = (a2 * c1 - a1 * c2) / denom;</span>
|
|
1475
|
+
<span class="cstat-no" title="statement not covered" > pdist = (px - p2x) * (px - p2x) + (py - p2y) + (py - p2y);</span>
|
|
1476
|
+
<span class="cstat-no" title="statement not covered" > if (pdist > 140 * 140) {</span>
|
|
1477
|
+
<span class="cstat-no" title="statement not covered" > perp3x = perpx - perp2x;</span>
|
|
1478
|
+
<span class="cstat-no" title="statement not covered" > perp3y = perpy - perp2y;</span>
|
|
1479
|
+
<span class="cstat-no" title="statement not covered" > dist = Math.sqrt(perp3x * perp3x + perp3y * perp3y);</span>
|
|
1480
|
+
<span class="cstat-no" title="statement not covered" > perp3x /= dist;</span>
|
|
1481
|
+
<span class="cstat-no" title="statement not covered" > perp3y /= dist;</span>
|
|
1482
|
+
<span class="cstat-no" title="statement not covered" > perp3x *= width;</span>
|
|
1483
|
+
<span class="cstat-no" title="statement not covered" > perp3y *= width;</span>
|
|
1484
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x - perp3x, p2y - perp3y);</span>
|
|
1485
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1486
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x + perp3x, p2y + perp3y);</span>
|
|
1487
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1488
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x - perp3x, p2y - perp3y);</span>
|
|
1489
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1490
|
+
<span class="cstat-no" title="statement not covered" > indexCount += 1;</span>
|
|
1491
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1492
|
+
<span class="cstat-no" title="statement not covered" > verts.push(px, py);</span>
|
|
1493
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1494
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x - (px - p2x), p2y - (py - p2y));</span>
|
|
1495
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1496
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1497
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1498
|
+
<span class="cstat-no" title="statement not covered" > p1x = points[(length - 2) * 2];</span>
|
|
1499
|
+
<span class="cstat-no" title="statement not covered" > p1y = points[(length - 2) * 2 + 1];</span>
|
|
1500
|
+
<span class="cstat-no" title="statement not covered" > p2x = points[(length - 1) * 2];</span>
|
|
1501
|
+
<span class="cstat-no" title="statement not covered" > p2y = points[(length - 1) * 2 + 1];</span>
|
|
1502
|
+
<span class="cstat-no" title="statement not covered" > perpx = -(p1y - p2y);</span>
|
|
1503
|
+
<span class="cstat-no" title="statement not covered" > perpy = p1x - p2x;</span>
|
|
1504
|
+
<span class="cstat-no" title="statement not covered" > dist = Math.sqrt(perpx * perpx + perpy * perpy);</span>
|
|
1505
|
+
<span class="cstat-no" title="statement not covered" > perpx /= dist;</span>
|
|
1506
|
+
<span class="cstat-no" title="statement not covered" > perpy /= dist;</span>
|
|
1507
|
+
<span class="cstat-no" title="statement not covered" > perpx *= width;</span>
|
|
1508
|
+
<span class="cstat-no" title="statement not covered" > perpy *= width;</span>
|
|
1509
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x - perpx, p2y - perpy);</span>
|
|
1510
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1511
|
+
<span class="cstat-no" title="statement not covered" > verts.push(p2x + perpx, p2y + perpy);</span>
|
|
1512
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1513
|
+
<span class="cstat-no" title="statement not covered" > indices.push(indexStart);</span>
|
|
1514
|
+
<span class="cstat-no" title="statement not covered" > for (i = 0; i < indexCount; i += 1) {</span>
|
|
1515
|
+
<span class="cstat-no" title="statement not covered" > indices.push(indexStart);</span>
|
|
1516
|
+
<span class="cstat-no" title="statement not covered" > indexStart += 1;</span>
|
|
1517
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1518
|
+
<span class="cstat-no" title="statement not covered" > indices.push(indexStart - 1);</span>
|
|
1519
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1520
|
+
|
|
1521
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1522
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1523
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1524
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1525
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1526
|
+
<span class="cstat-no" title="statement not covered" >export const buildRectangle = (graphicsData, webGLData) => {</span>
|
|
1527
|
+
<span class="cstat-no" title="statement not covered" > //</span>
|
|
1528
|
+
<span class="cstat-no" title="statement not covered" > // need to convert points to a nice regular data</span>
|
|
1529
|
+
<span class="cstat-no" title="statement not covered" > //</span>
|
|
1530
|
+
<span class="cstat-no" title="statement not covered" > const rectData = graphicsData.shape;</span>
|
|
1531
|
+
<span class="cstat-no" title="statement not covered" > const x = rectData.x;</span>
|
|
1532
|
+
<span class="cstat-no" title="statement not covered" > const y = rectData.y;</span>
|
|
1533
|
+
<span class="cstat-no" title="statement not covered" > const width = rectData.width;</span>
|
|
1534
|
+
<span class="cstat-no" title="statement not covered" > const height = rectData.height;</span>
|
|
1535
|
+
|
|
1536
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.fill) {</span>
|
|
1537
|
+
<span class="cstat-no" title="statement not covered" > const color = hex2rgb(graphicsData.fillColor);</span>
|
|
1538
|
+
<span class="cstat-no" title="statement not covered" > const alpha = graphicsData.fillAlpha;</span>
|
|
1539
|
+
<span class="cstat-no" title="statement not covered" > const r = color[0] * alpha;</span>
|
|
1540
|
+
<span class="cstat-no" title="statement not covered" > const g = color[1] * alpha;</span>
|
|
1541
|
+
<span class="cstat-no" title="statement not covered" > const b = color[2] * alpha;</span>
|
|
1542
|
+
<span class="cstat-no" title="statement not covered" > const verts = webGLData.points;</span>
|
|
1543
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1544
|
+
<span class="cstat-no" title="statement not covered" > const vertPos = verts.length / 6;</span>
|
|
1545
|
+
<span class="cstat-no" title="statement not covered" > // start</span>
|
|
1546
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x, y);</span>
|
|
1547
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1548
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x + width, y);</span>
|
|
1549
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1550
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x, y + height);</span>
|
|
1551
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1552
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x + width, y + height);</span>
|
|
1553
|
+
<span class="cstat-no" title="statement not covered" > verts.push(r, g, b, alpha);</span>
|
|
1554
|
+
<span class="cstat-no" title="statement not covered" > // insert 2 dead triangles..</span>
|
|
1555
|
+
<span class="cstat-no" title="statement not covered" > indices.push(vertPos, vertPos, vertPos + 1, vertPos + 2, vertPos + 3, vertPos + 3);</span>
|
|
1556
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1557
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.lineWidth) {</span>
|
|
1558
|
+
<span class="cstat-no" title="statement not covered" > const tempPoints = graphicsData.points;</span>
|
|
1559
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = [x, y, x + width, y, x + width, y + height, x, y + height, x, y];</span>
|
|
1560
|
+
<span class="cstat-no" title="statement not covered" > buildLine(graphicsData, webGLData);</span>
|
|
1561
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = tempPoints;</span>
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1563
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1564
|
+
|
|
1565
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1566
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1567
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} fromX - TBD.</span>
|
|
1568
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} fromY - TBD.</span>
|
|
1569
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} cpX - TBD.</span>
|
|
1570
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} cpY - TBD.</span>
|
|
1571
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} toX - TBD.</span>
|
|
1572
|
+
<span class="cstat-no" title="statement not covered" > * @param {number} toY - TBD.</span>
|
|
1573
|
+
<span class="cstat-no" title="statement not covered" > * @returns {number[]} TBD.</span>
|
|
1574
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1575
|
+
<span class="cstat-no" title="statement not covered" >export const quadraticBezierCurve = (fromX, fromY, cpX, cpY, toX, toY) => {</span>
|
|
1576
|
+
<span class="cstat-no" title="statement not covered" > let xa;</span>
|
|
1577
|
+
<span class="cstat-no" title="statement not covered" > let ya;</span>
|
|
1578
|
+
<span class="cstat-no" title="statement not covered" > let xb;</span>
|
|
1579
|
+
<span class="cstat-no" title="statement not covered" > let yb;</span>
|
|
1580
|
+
<span class="cstat-no" title="statement not covered" > let x;</span>
|
|
1581
|
+
<span class="cstat-no" title="statement not covered" > let y;</span>
|
|
1582
|
+
<span class="cstat-no" title="statement not covered" > const n = 20;</span>
|
|
1583
|
+
<span class="cstat-no" title="statement not covered" > const points = [];</span>
|
|
1584
|
+
<span class="cstat-no" title="statement not covered" > const getPt = (n1, n2, perc) => {</span>
|
|
1585
|
+
<span class="cstat-no" title="statement not covered" > const diff = n2 - n1;</span>
|
|
1586
|
+
<span class="cstat-no" title="statement not covered" > return n1 + diff * perc;</span>
|
|
1587
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
1588
|
+
<span class="cstat-no" title="statement not covered" > let j = 0;</span>
|
|
1589
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i <= n; i += 1) {</span>
|
|
1590
|
+
<span class="cstat-no" title="statement not covered" > j = i / n;</span>
|
|
1591
|
+
<span class="cstat-no" title="statement not covered" > // The Green Line</span>
|
|
1592
|
+
<span class="cstat-no" title="statement not covered" > xa = getPt(fromX, cpX, j);</span>
|
|
1593
|
+
<span class="cstat-no" title="statement not covered" > ya = getPt(fromY, cpY, j);</span>
|
|
1594
|
+
<span class="cstat-no" title="statement not covered" > xb = getPt(cpX, toX, j);</span>
|
|
1595
|
+
<span class="cstat-no" title="statement not covered" > yb = getPt(cpY, toY, j);</span>
|
|
1596
|
+
<span class="cstat-no" title="statement not covered" > // The Black Dot</span>
|
|
1597
|
+
<span class="cstat-no" title="statement not covered" > x = getPt(xa, xb, j);</span>
|
|
1598
|
+
<span class="cstat-no" title="statement not covered" > y = getPt(ya, yb, j);</span>
|
|
1599
|
+
<span class="cstat-no" title="statement not covered" > points.push(x, y);</span>
|
|
1600
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1601
|
+
<span class="cstat-no" title="statement not covered" > return points;</span>
|
|
1602
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1603
|
+
|
|
1604
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1605
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1606
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1607
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1608
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1609
|
+
<span class="cstat-no" title="statement not covered" >export const buildRoundedRectangle = (graphicsData, webGLData) => {</span>
|
|
1610
|
+
<span class="cstat-no" title="statement not covered" > const rrectData = graphicsData.shape;</span>
|
|
1611
|
+
<span class="cstat-no" title="statement not covered" > const x = rrectData.x;</span>
|
|
1612
|
+
<span class="cstat-no" title="statement not covered" > const y = rrectData.y;</span>
|
|
1613
|
+
<span class="cstat-no" title="statement not covered" > const width = rrectData.width;</span>
|
|
1614
|
+
<span class="cstat-no" title="statement not covered" > const height = rrectData.height;</span>
|
|
1615
|
+
<span class="cstat-no" title="statement not covered" > const radius = rrectData.radius;</span>
|
|
1616
|
+
<span class="cstat-no" title="statement not covered" > let recPoints = [];</span>
|
|
1617
|
+
<span class="cstat-no" title="statement not covered" > recPoints.push(x, y + radius);</span>
|
|
1618
|
+
<span class="cstat-no" title="statement not covered" > recPoints = recPoints.concat(quadraticBezierCurve(x, y + height - radius, x, y + height, x + radius, y + height));</span>
|
|
1619
|
+
<span class="cstat-no" title="statement not covered" > recPoints = recPoints.concat(</span>
|
|
1620
|
+
<span class="cstat-no" title="statement not covered" > quadraticBezierCurve(x + width - radius, y + height, x + width, y + height, x + width, y + height - radius)</span>
|
|
1621
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
1622
|
+
<span class="cstat-no" title="statement not covered" > recPoints = recPoints.concat(quadraticBezierCurve(x + width, y + radius, x + width, y, x + width - radius, y));</span>
|
|
1623
|
+
<span class="cstat-no" title="statement not covered" > recPoints = recPoints.concat(quadraticBezierCurve(x + radius, y, x, y, x, y + radius));</span>
|
|
1624
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.fill) {</span>
|
|
1625
|
+
<span class="cstat-no" title="statement not covered" > const color = hex2rgb(graphicsData.fillColor);</span>
|
|
1626
|
+
<span class="cstat-no" title="statement not covered" > const alpha = graphicsData.fillAlpha;</span>
|
|
1627
|
+
<span class="cstat-no" title="statement not covered" > const r = color[0] * alpha;</span>
|
|
1628
|
+
<span class="cstat-no" title="statement not covered" > const g = color[1] * alpha;</span>
|
|
1629
|
+
<span class="cstat-no" title="statement not covered" > const b = color[2] * alpha;</span>
|
|
1630
|
+
<span class="cstat-no" title="statement not covered" > const verts = webGLData.points;</span>
|
|
1631
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1632
|
+
<span class="cstat-no" title="statement not covered" > const vecPos = verts.length / 6;</span>
|
|
1633
|
+
<span class="cstat-no" title="statement not covered" > const triangles = triangulate(recPoints, null, 2);</span>
|
|
1634
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < triangles.length; i += 3) {</span>
|
|
1635
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i] + vecPos);</span>
|
|
1636
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i] + vecPos);</span>
|
|
1637
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 1] + vecPos);</span>
|
|
1638
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 2] + vecPos);</span>
|
|
1639
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 2] + vecPos);</span>
|
|
1640
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1641
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < recPoints.length; i += 2) {</span>
|
|
1642
|
+
<span class="cstat-no" title="statement not covered" > // TODO verify</span>
|
|
1643
|
+
<span class="cstat-no" title="statement not covered" > verts.push(recPoints[i], recPoints[i + 1], r, g, b, alpha);</span>
|
|
1644
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1645
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1646
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.lineWidth) {</span>
|
|
1647
|
+
<span class="cstat-no" title="statement not covered" > const tempPoints = graphicsData.points;</span>
|
|
1648
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = recPoints;</span>
|
|
1649
|
+
<span class="cstat-no" title="statement not covered" > buildLine(graphicsData, webGLData);</span>
|
|
1650
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = tempPoints;</span>
|
|
1651
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1652
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1653
|
+
|
|
1654
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1655
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1656
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1657
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1658
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1659
|
+
<span class="cstat-no" title="statement not covered" >export const buildCircle = (graphicsData, webGLData) => {</span>
|
|
1660
|
+
<span class="cstat-no" title="statement not covered" > // need to convert points to a nice regular data</span>
|
|
1661
|
+
<span class="cstat-no" title="statement not covered" > const circleData = graphicsData.shape;</span>
|
|
1662
|
+
<span class="cstat-no" title="statement not covered" > const x = circleData.x;</span>
|
|
1663
|
+
<span class="cstat-no" title="statement not covered" > const y = circleData.y;</span>
|
|
1664
|
+
<span class="cstat-no" title="statement not covered" > let width;</span>
|
|
1665
|
+
<span class="cstat-no" title="statement not covered" > let height;</span>
|
|
1666
|
+
<span class="cstat-no" title="statement not covered" > // TODO - bit hacky??</span>
|
|
1667
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.type === GEOM_CIRCLE) {</span>
|
|
1668
|
+
<span class="cstat-no" title="statement not covered" > width = circleData.radius;</span>
|
|
1669
|
+
<span class="cstat-no" title="statement not covered" > height = circleData.radius;</span>
|
|
1670
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1671
|
+
<span class="cstat-no" title="statement not covered" > width = circleData.width;</span>
|
|
1672
|
+
<span class="cstat-no" title="statement not covered" > height = circleData.height;</span>
|
|
1673
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1674
|
+
<span class="cstat-no" title="statement not covered" > const totalSegs = 40;</span>
|
|
1675
|
+
<span class="cstat-no" title="statement not covered" > const seg = (Math.PI * 2) / totalSegs;</span>
|
|
1676
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.fill) {</span>
|
|
1677
|
+
<span class="cstat-no" title="statement not covered" > const color = hex2rgb(graphicsData.fillColor);</span>
|
|
1678
|
+
<span class="cstat-no" title="statement not covered" > const alpha = graphicsData.fillAlpha;</span>
|
|
1679
|
+
<span class="cstat-no" title="statement not covered" > const r = color[0] * alpha;</span>
|
|
1680
|
+
<span class="cstat-no" title="statement not covered" > const g = color[1] * alpha;</span>
|
|
1681
|
+
<span class="cstat-no" title="statement not covered" > const b = color[2] * alpha;</span>
|
|
1682
|
+
<span class="cstat-no" title="statement not covered" > const verts = webGLData.points;</span>
|
|
1683
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1684
|
+
<span class="cstat-no" title="statement not covered" > let vecPos = verts.length / 6;</span>
|
|
1685
|
+
<span class="cstat-no" title="statement not covered" > indices.push(vecPos);</span>
|
|
1686
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < totalSegs + 1; i += 1) {</span>
|
|
1687
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x, y, r, g, b, alpha);</span>
|
|
1688
|
+
<span class="cstat-no" title="statement not covered" > verts.push(x + Math.sin(seg * i) * width, y + Math.cos(seg * i) * height, r, g, b, alpha);</span>
|
|
1689
|
+
<span class="cstat-no" title="statement not covered" > indices.push(vecPos, vecPos + 1);</span>
|
|
1690
|
+
<span class="cstat-no" title="statement not covered" > vecPos += 2;</span>
|
|
1691
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1692
|
+
<span class="cstat-no" title="statement not covered" > indices.push(vecPos - 1);</span>
|
|
1693
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1694
|
+
<span class="cstat-no" title="statement not covered" > if (graphicsData.lineWidth) {</span>
|
|
1695
|
+
<span class="cstat-no" title="statement not covered" > const tempPoints = graphicsData.points;</span>
|
|
1696
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = [];</span>
|
|
1697
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < totalSegs + 1; i += 1) {</span>
|
|
1698
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points.push(x + Math.sin(seg * i) * width, y + Math.cos(seg * i) * height);</span>
|
|
1699
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1700
|
+
<span class="cstat-no" title="statement not covered" > buildLine(graphicsData, webGLData);</span>
|
|
1701
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.points = tempPoints;</span>
|
|
1702
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1703
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1704
|
+
|
|
1705
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1706
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1707
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1708
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1709
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1710
|
+
<span class="cstat-no" title="statement not covered" >export const buildComplexPoly = (graphicsData, webGLData) => {</span>
|
|
1711
|
+
<span class="cstat-no" title="statement not covered" > // TODO - no need to copy this as it gets turned into a Float32Array anyways..</span>
|
|
1712
|
+
<span class="cstat-no" title="statement not covered" > const points = graphicsData.points.slice();</span>
|
|
1713
|
+
<span class="cstat-no" title="statement not covered" > if (points.length < 6) {</span>
|
|
1714
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1715
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1716
|
+
<span class="cstat-no" title="statement not covered" > // get first and last point.. figure out the middle!</span>
|
|
1717
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1718
|
+
<span class="cstat-no" title="statement not covered" > webGLData.points = points;</span>
|
|
1719
|
+
<span class="cstat-no" title="statement not covered" > webGLData.alpha = graphicsData.fillAlpha;</span>
|
|
1720
|
+
<span class="cstat-no" title="statement not covered" > webGLData.color = hex2rgb(graphicsData.fillColor);</span>
|
|
1721
|
+
<span class="cstat-no" title="statement not covered" > /*</span>
|
|
1722
|
+
<span class="cstat-no" title="statement not covered" > calculate the bounds..</span>
|
|
1723
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1724
|
+
<span class="cstat-no" title="statement not covered" > let minX = Infinity;</span>
|
|
1725
|
+
<span class="cstat-no" title="statement not covered" > let maxX = -Infinity;</span>
|
|
1726
|
+
<span class="cstat-no" title="statement not covered" > let minY = Infinity;</span>
|
|
1727
|
+
<span class="cstat-no" title="statement not covered" > let maxY = -Infinity;</span>
|
|
1728
|
+
<span class="cstat-no" title="statement not covered" > let x;</span>
|
|
1729
|
+
<span class="cstat-no" title="statement not covered" > let y;</span>
|
|
1730
|
+
<span class="cstat-no" title="statement not covered" > // get size..</span>
|
|
1731
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < points.length; i += 2) {</span>
|
|
1732
|
+
<span class="cstat-no" title="statement not covered" > x = points[i];</span>
|
|
1733
|
+
<span class="cstat-no" title="statement not covered" > y = points[i + 1];</span>
|
|
1734
|
+
<span class="cstat-no" title="statement not covered" > minX = x < minX ? x : minX;</span>
|
|
1735
|
+
<span class="cstat-no" title="statement not covered" > maxX = x > maxX ? x : maxX;</span>
|
|
1736
|
+
<span class="cstat-no" title="statement not covered" > minY = y < minY ? y : minY;</span>
|
|
1737
|
+
<span class="cstat-no" title="statement not covered" > maxY = y > maxY ? y : maxY;</span>
|
|
1738
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1739
|
+
<span class="cstat-no" title="statement not covered" > // add a quad to the end cos there is no point making another buffer!</span>
|
|
1740
|
+
<span class="cstat-no" title="statement not covered" > points.push(minX, minY, maxX, minY, maxX, maxY, minX, maxY);</span>
|
|
1741
|
+
<span class="cstat-no" title="statement not covered" > // push a quad onto the end..</span>
|
|
1742
|
+
<span class="cstat-no" title="statement not covered" > // TODO - this aint needed!</span>
|
|
1743
|
+
<span class="cstat-no" title="statement not covered" > const length = points.length / 2;</span>
|
|
1744
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < length; i += 1) {</span>
|
|
1745
|
+
<span class="cstat-no" title="statement not covered" > indices.push(i);</span>
|
|
1746
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1747
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1748
|
+
|
|
1749
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1750
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1751
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphicsData - TBD.</span>
|
|
1752
|
+
<span class="cstat-no" title="statement not covered" > * @param {GraphicsData} webGLData - TBD.</span>
|
|
1753
|
+
<span class="cstat-no" title="statement not covered" > * @returns {boolean} TBD.</span>
|
|
1754
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1755
|
+
<span class="cstat-no" title="statement not covered" >export const buildPoly = (graphicsData, webGLData) => {</span>
|
|
1756
|
+
<span class="cstat-no" title="statement not covered" > const points = graphicsData.points;</span>
|
|
1757
|
+
<span class="cstat-no" title="statement not covered" > if (points.length < 6) {</span>
|
|
1758
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1759
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1760
|
+
<span class="cstat-no" title="statement not covered" > // get first and last point.. figure out the middle!</span>
|
|
1761
|
+
<span class="cstat-no" title="statement not covered" > const verts = webGLData.points;</span>
|
|
1762
|
+
<span class="cstat-no" title="statement not covered" > const indices = webGLData.indices;</span>
|
|
1763
|
+
<span class="cstat-no" title="statement not covered" > const length = points.length / 2;</span>
|
|
1764
|
+
<span class="cstat-no" title="statement not covered" > // sort color</span>
|
|
1765
|
+
<span class="cstat-no" title="statement not covered" > const color = hex2rgb(graphicsData.fillColor);</span>
|
|
1766
|
+
<span class="cstat-no" title="statement not covered" > const alpha = graphicsData.fillAlpha;</span>
|
|
1767
|
+
<span class="cstat-no" title="statement not covered" > const r = color[0] * alpha;</span>
|
|
1768
|
+
<span class="cstat-no" title="statement not covered" > const g = color[1] * alpha;</span>
|
|
1769
|
+
<span class="cstat-no" title="statement not covered" > const b = color[2] * alpha;</span>
|
|
1770
|
+
<span class="cstat-no" title="statement not covered" > const triangles = triangulate(points, null, 2);</span>
|
|
1771
|
+
<span class="cstat-no" title="statement not covered" > if (!triangles) {</span>
|
|
1772
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1773
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1774
|
+
<span class="cstat-no" title="statement not covered" > const vertPos = verts.length / 6;</span>
|
|
1775
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < triangles.length; i += 3) {</span>
|
|
1776
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i] + vertPos);</span>
|
|
1777
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i] + vertPos);</span>
|
|
1778
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 1] + vertPos);</span>
|
|
1779
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 2] + vertPos);</span>
|
|
1780
|
+
<span class="cstat-no" title="statement not covered" > indices.push(triangles[i + 2] + vertPos);</span>
|
|
1781
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1782
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < length; i += 1) {</span>
|
|
1783
|
+
<span class="cstat-no" title="statement not covered" > verts.push(points[i * 2], points[i * 2 + 1], r, g, b, alpha);</span>
|
|
1784
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1785
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1786
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1787
|
+
|
|
1788
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1789
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1790
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphics - TBD.</span>
|
|
1791
|
+
<span class="cstat-no" title="statement not covered" > * @param {WebGLRenderingContext & { id: number }} gl - TBD.</span>
|
|
1792
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1793
|
+
<span class="cstat-no" title="statement not covered" >export const updateGraphics = (graphics, gl) => {</span>
|
|
1794
|
+
<span class="cstat-no" title="statement not covered" > const stencilBufferLimit = getStencilBufferLimit();</span>
|
|
1795
|
+
<span class="cstat-no" title="statement not covered" > // get the contexts graphics object</span>
|
|
1796
|
+
<span class="cstat-no" title="statement not covered" > let webGL = graphics._webGL[gl.id];</span>
|
|
1797
|
+
<span class="cstat-no" title="statement not covered" > // if the graphics object does not exist in the webGL context time to create it!</span>
|
|
1798
|
+
<span class="cstat-no" title="statement not covered" > if (!webGL) {</span>
|
|
1799
|
+
<span class="cstat-no" title="statement not covered" > webGL = { lastIndex: 0, data: [], gl };</span>
|
|
1800
|
+
<span class="cstat-no" title="statement not covered" > graphics._webGL[gl.id] = webGL;</span>
|
|
1801
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1802
|
+
<span class="cstat-no" title="statement not covered" > // flag the graphics as not dirty as we are about to update it...</span>
|
|
1803
|
+
<span class="cstat-no" title="statement not covered" > graphics.dirty = false;</span>
|
|
1804
|
+
<span class="cstat-no" title="statement not covered" > let i;</span>
|
|
1805
|
+
<span class="cstat-no" title="statement not covered" > // if the user cleared the graphics object we will need to clear every object</span>
|
|
1806
|
+
<span class="cstat-no" title="statement not covered" > if (graphics.clearDirty) {</span>
|
|
1807
|
+
<span class="cstat-no" title="statement not covered" > graphics.clearDirty = false;</span>
|
|
1808
|
+
<span class="cstat-no" title="statement not covered" > // lop through and return all the webGLDatas to the object pool so than can be reused later on</span>
|
|
1809
|
+
<span class="cstat-no" title="statement not covered" > for (i = 0; i < webGL.data.length; i += 1) {</span>
|
|
1810
|
+
<span class="cstat-no" title="statement not covered" > const graphicsData = webGL.data[i];</span>
|
|
1811
|
+
<span class="cstat-no" title="statement not covered" > graphicsData.reset();</span>
|
|
1812
|
+
<span class="cstat-no" title="statement not covered" > getGraphicsDataPool().push(graphicsData);</span>
|
|
1813
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1814
|
+
<span class="cstat-no" title="statement not covered" > // clear the array and reset the index..</span>
|
|
1815
|
+
<span class="cstat-no" title="statement not covered" > webGL.data = [];</span>
|
|
1816
|
+
<span class="cstat-no" title="statement not covered" > webGL.lastIndex = 0;</span>
|
|
1817
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1818
|
+
<span class="cstat-no" title="statement not covered" > let webGLData;</span>
|
|
1819
|
+
<span class="cstat-no" title="statement not covered" > // loop through the graphics datas and construct each one..</span>
|
|
1820
|
+
<span class="cstat-no" title="statement not covered" > // if the object is a complex fill then the new stencil buffer technique will be used</span>
|
|
1821
|
+
<span class="cstat-no" title="statement not covered" > // other wise graphics objects will be pushed into a batch..</span>
|
|
1822
|
+
<span class="cstat-no" title="statement not covered" > for (i = webGL.lastIndex; i < graphics.graphicsData.length; i += 1) {</span>
|
|
1823
|
+
<span class="cstat-no" title="statement not covered" > const data = graphics.graphicsData[i];</span>
|
|
1824
|
+
<span class="cstat-no" title="statement not covered" > if (data.type === GEOM_POLYGON) {</span>
|
|
1825
|
+
<span class="cstat-no" title="statement not covered" > // need to add the points the the graphics object..</span>
|
|
1826
|
+
<span class="cstat-no" title="statement not covered" > data.points = data.shape.points.slice();</span>
|
|
1827
|
+
<span class="cstat-no" title="statement not covered" > if (data.shape.closed) {</span>
|
|
1828
|
+
<span class="cstat-no" title="statement not covered" > // close the poly if the value is true!</span>
|
|
1829
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
1830
|
+
<span class="cstat-no" title="statement not covered" > data.points[0] !== data.points[data.points.length - 2] ||</span>
|
|
1831
|
+
<span class="cstat-no" title="statement not covered" > data.points[1] !== data.points[data.points.length - 1]</span>
|
|
1832
|
+
<span class="cstat-no" title="statement not covered" > ) {</span>
|
|
1833
|
+
<span class="cstat-no" title="statement not covered" > data.points.push(data.points[0], data.points[1]);</span>
|
|
1834
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1835
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1836
|
+
<span class="cstat-no" title="statement not covered" > // MAKE SURE WE HAVE THE CORRECT TYPE..</span>
|
|
1837
|
+
<span class="cstat-no" title="statement not covered" > if (data.fill) {</span>
|
|
1838
|
+
<span class="cstat-no" title="statement not covered" > if (data.points.length >= stencilBufferLimit) {</span>
|
|
1839
|
+
<span class="cstat-no" title="statement not covered" > if (data.points.length < stencilBufferLimit * 2) {</span>
|
|
1840
|
+
<span class="cstat-no" title="statement not covered" > webGLData = switchMode(webGL, 0);</span>
|
|
1841
|
+
<span class="cstat-no" title="statement not covered" > const canDrawUsingSimple = buildPoly(data, webGLData);</span>
|
|
1842
|
+
<span class="cstat-no" title="statement not covered" > if (!canDrawUsingSimple) {</span>
|
|
1843
|
+
<span class="cstat-no" title="statement not covered" > webGLData = switchMode(webGL, 1);</span>
|
|
1844
|
+
<span class="cstat-no" title="statement not covered" > buildComplexPoly(data, webGLData);</span>
|
|
1845
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1846
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1847
|
+
<span class="cstat-no" title="statement not covered" > webGLData = switchMode(webGL, 1);</span>
|
|
1848
|
+
<span class="cstat-no" title="statement not covered" > buildComplexPoly(data, webGLData);</span>
|
|
1849
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1850
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1851
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1852
|
+
<span class="cstat-no" title="statement not covered" > if (data.lineWidth > 0) {</span>
|
|
1853
|
+
<span class="cstat-no" title="statement not covered" > webGLData = switchMode(webGL, 0);</span>
|
|
1854
|
+
<span class="cstat-no" title="statement not covered" > buildLine(data, webGLData);</span>
|
|
1855
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1856
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1857
|
+
<span class="cstat-no" title="statement not covered" > webGLData = switchMode(webGL, 0);</span>
|
|
1858
|
+
<span class="cstat-no" title="statement not covered" > if (data.type === GEOM_RECTANGLE) {</span>
|
|
1859
|
+
<span class="cstat-no" title="statement not covered" > buildRectangle(data, webGLData);</span>
|
|
1860
|
+
<span class="cstat-no" title="statement not covered" > } else if (data.type === GEOM_CIRCLE || data.type === GEOM_ELLIPSE) {</span>
|
|
1861
|
+
<span class="cstat-no" title="statement not covered" > buildCircle(data, webGLData);</span>
|
|
1862
|
+
<span class="cstat-no" title="statement not covered" > } else if (data.type === GEOM_ROUNDED_RECTANGLE) {</span>
|
|
1863
|
+
<span class="cstat-no" title="statement not covered" > buildRoundedRectangle(data, webGLData);</span>
|
|
1864
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1865
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1866
|
+
<span class="cstat-no" title="statement not covered" > webGL.lastIndex += 1;</span>
|
|
1867
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1868
|
+
<span class="cstat-no" title="statement not covered" > // upload all the dirty data...</span>
|
|
1869
|
+
<span class="cstat-no" title="statement not covered" > for (i = 0; i < webGL.data.length; i += 1) {</span>
|
|
1870
|
+
<span class="cstat-no" title="statement not covered" > webGLData = webGL.data[i];</span>
|
|
1871
|
+
<span class="cstat-no" title="statement not covered" > if (webGLData.dirty) {</span>
|
|
1872
|
+
<span class="cstat-no" title="statement not covered" > webGLData.upload();</span>
|
|
1873
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1874
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1875
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1876
|
+
|
|
1877
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1878
|
+
<span class="cstat-no" title="statement not covered" > * TBD.</span>
|
|
1879
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} graphics - TBD.</span>
|
|
1880
|
+
<span class="cstat-no" title="statement not covered" > * @param {object} renderSession - TBD.</span>
|
|
1881
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1882
|
+
<span class="cstat-no" title="statement not covered" >export const renderGraphics = (graphics, renderSession) => {</span>
|
|
1883
|
+
<span class="cstat-no" title="statement not covered" > const gl = renderSession.gl;</span>
|
|
1884
|
+
<span class="cstat-no" title="statement not covered" > const projection = renderSession.projection;</span>
|
|
1885
|
+
<span class="cstat-no" title="statement not covered" > const offset = renderSession.offset;</span>
|
|
1886
|
+
<span class="cstat-no" title="statement not covered" > let shader = renderSession.shaderManager.primitiveShader;</span>
|
|
1887
|
+
<span class="cstat-no" title="statement not covered" > let webGLData;</span>
|
|
1888
|
+
<span class="cstat-no" title="statement not covered" > if (graphics.dirty) {</span>
|
|
1889
|
+
<span class="cstat-no" title="statement not covered" > updateGraphics(graphics, gl);</span>
|
|
1890
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1891
|
+
<span class="cstat-no" title="statement not covered" > const webGL = graphics._webGL[gl.id];</span>
|
|
1892
|
+
<span class="cstat-no" title="statement not covered" > // https://github.com/photonstorm/phaser-ce/pull/179</span>
|
|
1893
|
+
<span class="cstat-no" title="statement not covered" > if (!webGL) {</span>
|
|
1894
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1895
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1896
|
+
<span class="cstat-no" title="statement not covered" > // This could be speeded up for sure!</span>
|
|
1897
|
+
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < webGL.data.length; i += 1) {</span>
|
|
1898
|
+
<span class="cstat-no" title="statement not covered" > if (webGL.data[i].mode === 1) {</span>
|
|
1899
|
+
<span class="cstat-no" title="statement not covered" > webGLData = webGL.data[i];</span>
|
|
1900
|
+
<span class="cstat-no" title="statement not covered" > renderSession.stencilManager.pushStencil(graphics, webGLData, renderSession);</span>
|
|
1901
|
+
<span class="cstat-no" title="statement not covered" > // render quad..</span>
|
|
1902
|
+
<span class="cstat-no" title="statement not covered" > gl.drawElements(gl.TRIANGLE_FAN, 4, gl.UNSIGNED_SHORT, (webGLData.indices.length - 4) * 2);</span>
|
|
1903
|
+
<span class="cstat-no" title="statement not covered" > renderSession.stencilManager.popStencil(graphics, webGLData, renderSession);</span>
|
|
1904
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1905
|
+
<span class="cstat-no" title="statement not covered" > webGLData = webGL.data[i];</span>
|
|
1906
|
+
<span class="cstat-no" title="statement not covered" > renderSession.shaderManager.setShader(shader); // activatePrimitiveShader();</span>
|
|
1907
|
+
<span class="cstat-no" title="statement not covered" > shader = renderSession.shaderManager.primitiveShader;</span>
|
|
1908
|
+
<span class="cstat-no" title="statement not covered" > gl.uniformMatrix3fv(shader.translationMatrix, false, graphics.worldTransform.toArray(true));</span>
|
|
1909
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform1f(shader.flipY, 1);</span>
|
|
1910
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform2f(shader.projectionVector, projection.x, -projection.y);</span>
|
|
1911
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform2f(shader.offsetVector, -offset.x, -offset.y);</span>
|
|
1912
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform3fv(shader.tintColor, hex2rgb(graphics.tint));</span>
|
|
1913
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform1f(shader.alpha, graphics.worldAlpha);</span>
|
|
1914
|
+
<span class="cstat-no" title="statement not covered" > gl.bindBuffer(gl.ARRAY_BUFFER, webGLData.buffer);</span>
|
|
1915
|
+
<span class="cstat-no" title="statement not covered" > gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 4 * 6, 0);</span>
|
|
1916
|
+
<span class="cstat-no" title="statement not covered" > gl.vertexAttribPointer(shader.colorAttribute, 4, gl.FLOAT, false, 4 * 6, 2 * 4);</span>
|
|
1917
|
+
<span class="cstat-no" title="statement not covered" > // set the index buffer!</span>
|
|
1918
|
+
<span class="cstat-no" title="statement not covered" > gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, webGLData.indexBuffer);</span>
|
|
1919
|
+
<span class="cstat-no" title="statement not covered" > gl.drawElements(gl.TRIANGLE_STRIP, webGLData.indices.length, gl.UNSIGNED_SHORT, 0);</span>
|
|
1920
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1921
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1922
|
+
<span class="cstat-no" title="statement not covered" >};</span>
|
|
1923
|
+
</pre></td></tr></table></pre>
|
|
1924
|
+
|
|
1925
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
1926
|
+
</div><!-- /wrapper -->
|
|
1927
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
1928
|
+
Code coverage generated by
|
|
1929
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1930
|
+
at 2025-08-19T06:39:20.400Z
|
|
1931
|
+
</div>
|
|
1932
|
+
<script src="../../../../prettify.js"></script>
|
|
1933
|
+
<script>
|
|
1934
|
+
window.onload = function () {
|
|
1935
|
+
prettyPrint();
|
|
1936
|
+
};
|
|
1937
|
+
</script>
|
|
1938
|
+
<script src="../../../../sorter.js"></script>
|
|
1939
|
+
<script src="../../../../block-navigation.js"></script>
|
|
1940
|
+
</body>
|
|
1941
|
+
</html>
|
|
1942
|
+
|