@dintero/checkout-web-sdk 0.6.1 → 0.6.3

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.
Files changed (31) hide show
  1. package/.github/workflows/build.yml +14 -15
  2. package/.github/workflows/release.yml +4 -5
  3. package/.prettierrc.yml +8 -0
  4. package/.releaserc.json +7 -9
  5. package/CHANGELOG.md +11 -9
  6. package/README.md +39 -25
  7. package/dist/declarations/src/checkout.d.ts +2 -2
  8. package/dist/dintero-checkout-web-sdk.cjs.dev.js +105 -97
  9. package/dist/dintero-checkout-web-sdk.cjs.prod.js +105 -97
  10. package/dist/dintero-checkout-web-sdk.esm.js +105 -97
  11. package/dist/dintero-checkout-web-sdk.umd.min.js +1 -1
  12. package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -1
  13. package/package.json +45 -49
  14. package/patches/vitest+0.34.6.patch +33 -0
  15. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/base.css +0 -224
  16. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/block-navigation.js +0 -79
  17. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/checkout.ts.html +0 -473
  18. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/createIframeAsync.ts.html +0 -263
  19. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/favicon.png +0 -0
  20. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/index.html +0 -216
  21. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/index.ts.html +0 -2366
  22. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/popOut.ts.html +0 -377
  23. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/popOutBackdrop.ts.html +0 -1046
  24. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/popOutButton.ts.html +0 -374
  25. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/prettify.css +0 -1
  26. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/prettify.js +0 -2
  27. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/sort-arrow-sprite.png +0 -0
  28. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/sorter.js +0 -170
  29. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/subscribe.ts.html +0 -632
  30. package/coverage/Chrome Headless 117.0.5938.149 (Linux x86_64)/html/url.ts.html +0 -284
  31. package/karma.conf.js +0 -33
@@ -1,2366 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for index.ts</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> index.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">81.96% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>159/194</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">65.82% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>52/79</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">82.35% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>42/51</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">80.34% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>143/178</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
- </div>
58
- <div class='status-line high'></div>
59
- <pre><table class="coverage">
60
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
- <a name='L2'></a><a href='#L2'>2</a>
62
- <a name='L3'></a><a href='#L3'>3</a>
63
- <a name='L4'></a><a href='#L4'>4</a>
64
- <a name='L5'></a><a href='#L5'>5</a>
65
- <a name='L6'></a><a href='#L6'>6</a>
66
- <a name='L7'></a><a href='#L7'>7</a>
67
- <a name='L8'></a><a href='#L8'>8</a>
68
- <a name='L9'></a><a href='#L9'>9</a>
69
- <a name='L10'></a><a href='#L10'>10</a>
70
- <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a>
73
- <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a>
112
- <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a>
114
- <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a>
116
- <a name='L57'></a><a href='#L57'>57</a>
117
- <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a>
119
- <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a>
121
- <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a>
123
- <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a>
128
- <a name='L69'></a><a href='#L69'>69</a>
129
- <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a>
135
- <a name='L76'></a><a href='#L76'>76</a>
136
- <a name='L77'></a><a href='#L77'>77</a>
137
- <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a>
139
- <a name='L80'></a><a href='#L80'>80</a>
140
- <a name='L81'></a><a href='#L81'>81</a>
141
- <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a>
143
- <a name='L84'></a><a href='#L84'>84</a>
144
- <a name='L85'></a><a href='#L85'>85</a>
145
- <a name='L86'></a><a href='#L86'>86</a>
146
- <a name='L87'></a><a href='#L87'>87</a>
147
- <a name='L88'></a><a href='#L88'>88</a>
148
- <a name='L89'></a><a href='#L89'>89</a>
149
- <a name='L90'></a><a href='#L90'>90</a>
150
- <a name='L91'></a><a href='#L91'>91</a>
151
- <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a>
154
- <a name='L95'></a><a href='#L95'>95</a>
155
- <a name='L96'></a><a href='#L96'>96</a>
156
- <a name='L97'></a><a href='#L97'>97</a>
157
- <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a>
159
- <a name='L100'></a><a href='#L100'>100</a>
160
- <a name='L101'></a><a href='#L101'>101</a>
161
- <a name='L102'></a><a href='#L102'>102</a>
162
- <a name='L103'></a><a href='#L103'>103</a>
163
- <a name='L104'></a><a href='#L104'>104</a>
164
- <a name='L105'></a><a href='#L105'>105</a>
165
- <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a>
167
- <a name='L108'></a><a href='#L108'>108</a>
168
- <a name='L109'></a><a href='#L109'>109</a>
169
- <a name='L110'></a><a href='#L110'>110</a>
170
- <a name='L111'></a><a href='#L111'>111</a>
171
- <a name='L112'></a><a href='#L112'>112</a>
172
- <a name='L113'></a><a href='#L113'>113</a>
173
- <a name='L114'></a><a href='#L114'>114</a>
174
- <a name='L115'></a><a href='#L115'>115</a>
175
- <a name='L116'></a><a href='#L116'>116</a>
176
- <a name='L117'></a><a href='#L117'>117</a>
177
- <a name='L118'></a><a href='#L118'>118</a>
178
- <a name='L119'></a><a href='#L119'>119</a>
179
- <a name='L120'></a><a href='#L120'>120</a>
180
- <a name='L121'></a><a href='#L121'>121</a>
181
- <a name='L122'></a><a href='#L122'>122</a>
182
- <a name='L123'></a><a href='#L123'>123</a>
183
- <a name='L124'></a><a href='#L124'>124</a>
184
- <a name='L125'></a><a href='#L125'>125</a>
185
- <a name='L126'></a><a href='#L126'>126</a>
186
- <a name='L127'></a><a href='#L127'>127</a>
187
- <a name='L128'></a><a href='#L128'>128</a>
188
- <a name='L129'></a><a href='#L129'>129</a>
189
- <a name='L130'></a><a href='#L130'>130</a>
190
- <a name='L131'></a><a href='#L131'>131</a>
191
- <a name='L132'></a><a href='#L132'>132</a>
192
- <a name='L133'></a><a href='#L133'>133</a>
193
- <a name='L134'></a><a href='#L134'>134</a>
194
- <a name='L135'></a><a href='#L135'>135</a>
195
- <a name='L136'></a><a href='#L136'>136</a>
196
- <a name='L137'></a><a href='#L137'>137</a>
197
- <a name='L138'></a><a href='#L138'>138</a>
198
- <a name='L139'></a><a href='#L139'>139</a>
199
- <a name='L140'></a><a href='#L140'>140</a>
200
- <a name='L141'></a><a href='#L141'>141</a>
201
- <a name='L142'></a><a href='#L142'>142</a>
202
- <a name='L143'></a><a href='#L143'>143</a>
203
- <a name='L144'></a><a href='#L144'>144</a>
204
- <a name='L145'></a><a href='#L145'>145</a>
205
- <a name='L146'></a><a href='#L146'>146</a>
206
- <a name='L147'></a><a href='#L147'>147</a>
207
- <a name='L148'></a><a href='#L148'>148</a>
208
- <a name='L149'></a><a href='#L149'>149</a>
209
- <a name='L150'></a><a href='#L150'>150</a>
210
- <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a>
214
- <a name='L155'></a><a href='#L155'>155</a>
215
- <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a>
217
- <a name='L158'></a><a href='#L158'>158</a>
218
- <a name='L159'></a><a href='#L159'>159</a>
219
- <a name='L160'></a><a href='#L160'>160</a>
220
- <a name='L161'></a><a href='#L161'>161</a>
221
- <a name='L162'></a><a href='#L162'>162</a>
222
- <a name='L163'></a><a href='#L163'>163</a>
223
- <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a>
225
- <a name='L166'></a><a href='#L166'>166</a>
226
- <a name='L167'></a><a href='#L167'>167</a>
227
- <a name='L168'></a><a href='#L168'>168</a>
228
- <a name='L169'></a><a href='#L169'>169</a>
229
- <a name='L170'></a><a href='#L170'>170</a>
230
- <a name='L171'></a><a href='#L171'>171</a>
231
- <a name='L172'></a><a href='#L172'>172</a>
232
- <a name='L173'></a><a href='#L173'>173</a>
233
- <a name='L174'></a><a href='#L174'>174</a>
234
- <a name='L175'></a><a href='#L175'>175</a>
235
- <a name='L176'></a><a href='#L176'>176</a>
236
- <a name='L177'></a><a href='#L177'>177</a>
237
- <a name='L178'></a><a href='#L178'>178</a>
238
- <a name='L179'></a><a href='#L179'>179</a>
239
- <a name='L180'></a><a href='#L180'>180</a>
240
- <a name='L181'></a><a href='#L181'>181</a>
241
- <a name='L182'></a><a href='#L182'>182</a>
242
- <a name='L183'></a><a href='#L183'>183</a>
243
- <a name='L184'></a><a href='#L184'>184</a>
244
- <a name='L185'></a><a href='#L185'>185</a>
245
- <a name='L186'></a><a href='#L186'>186</a>
246
- <a name='L187'></a><a href='#L187'>187</a>
247
- <a name='L188'></a><a href='#L188'>188</a>
248
- <a name='L189'></a><a href='#L189'>189</a>
249
- <a name='L190'></a><a href='#L190'>190</a>
250
- <a name='L191'></a><a href='#L191'>191</a>
251
- <a name='L192'></a><a href='#L192'>192</a>
252
- <a name='L193'></a><a href='#L193'>193</a>
253
- <a name='L194'></a><a href='#L194'>194</a>
254
- <a name='L195'></a><a href='#L195'>195</a>
255
- <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a>
292
- <a name='L233'></a><a href='#L233'>233</a>
293
- <a name='L234'></a><a href='#L234'>234</a>
294
- <a name='L235'></a><a href='#L235'>235</a>
295
- <a name='L236'></a><a href='#L236'>236</a>
296
- <a name='L237'></a><a href='#L237'>237</a>
297
- <a name='L238'></a><a href='#L238'>238</a>
298
- <a name='L239'></a><a href='#L239'>239</a>
299
- <a name='L240'></a><a href='#L240'>240</a>
300
- <a name='L241'></a><a href='#L241'>241</a>
301
- <a name='L242'></a><a href='#L242'>242</a>
302
- <a name='L243'></a><a href='#L243'>243</a>
303
- <a name='L244'></a><a href='#L244'>244</a>
304
- <a name='L245'></a><a href='#L245'>245</a>
305
- <a name='L246'></a><a href='#L246'>246</a>
306
- <a name='L247'></a><a href='#L247'>247</a>
307
- <a name='L248'></a><a href='#L248'>248</a>
308
- <a name='L249'></a><a href='#L249'>249</a>
309
- <a name='L250'></a><a href='#L250'>250</a>
310
- <a name='L251'></a><a href='#L251'>251</a>
311
- <a name='L252'></a><a href='#L252'>252</a>
312
- <a name='L253'></a><a href='#L253'>253</a>
313
- <a name='L254'></a><a href='#L254'>254</a>
314
- <a name='L255'></a><a href='#L255'>255</a>
315
- <a name='L256'></a><a href='#L256'>256</a>
316
- <a name='L257'></a><a href='#L257'>257</a>
317
- <a name='L258'></a><a href='#L258'>258</a>
318
- <a name='L259'></a><a href='#L259'>259</a>
319
- <a name='L260'></a><a href='#L260'>260</a>
320
- <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a>
322
- <a name='L263'></a><a href='#L263'>263</a>
323
- <a name='L264'></a><a href='#L264'>264</a>
324
- <a name='L265'></a><a href='#L265'>265</a>
325
- <a name='L266'></a><a href='#L266'>266</a>
326
- <a name='L267'></a><a href='#L267'>267</a>
327
- <a name='L268'></a><a href='#L268'>268</a>
328
- <a name='L269'></a><a href='#L269'>269</a>
329
- <a name='L270'></a><a href='#L270'>270</a>
330
- <a name='L271'></a><a href='#L271'>271</a>
331
- <a name='L272'></a><a href='#L272'>272</a>
332
- <a name='L273'></a><a href='#L273'>273</a>
333
- <a name='L274'></a><a href='#L274'>274</a>
334
- <a name='L275'></a><a href='#L275'>275</a>
335
- <a name='L276'></a><a href='#L276'>276</a>
336
- <a name='L277'></a><a href='#L277'>277</a>
337
- <a name='L278'></a><a href='#L278'>278</a>
338
- <a name='L279'></a><a href='#L279'>279</a>
339
- <a name='L280'></a><a href='#L280'>280</a>
340
- <a name='L281'></a><a href='#L281'>281</a>
341
- <a name='L282'></a><a href='#L282'>282</a>
342
- <a name='L283'></a><a href='#L283'>283</a>
343
- <a name='L284'></a><a href='#L284'>284</a>
344
- <a name='L285'></a><a href='#L285'>285</a>
345
- <a name='L286'></a><a href='#L286'>286</a>
346
- <a name='L287'></a><a href='#L287'>287</a>
347
- <a name='L288'></a><a href='#L288'>288</a>
348
- <a name='L289'></a><a href='#L289'>289</a>
349
- <a name='L290'></a><a href='#L290'>290</a>
350
- <a name='L291'></a><a href='#L291'>291</a>
351
- <a name='L292'></a><a href='#L292'>292</a>
352
- <a name='L293'></a><a href='#L293'>293</a>
353
- <a name='L294'></a><a href='#L294'>294</a>
354
- <a name='L295'></a><a href='#L295'>295</a>
355
- <a name='L296'></a><a href='#L296'>296</a>
356
- <a name='L297'></a><a href='#L297'>297</a>
357
- <a name='L298'></a><a href='#L298'>298</a>
358
- <a name='L299'></a><a href='#L299'>299</a>
359
- <a name='L300'></a><a href='#L300'>300</a>
360
- <a name='L301'></a><a href='#L301'>301</a>
361
- <a name='L302'></a><a href='#L302'>302</a>
362
- <a name='L303'></a><a href='#L303'>303</a>
363
- <a name='L304'></a><a href='#L304'>304</a>
364
- <a name='L305'></a><a href='#L305'>305</a>
365
- <a name='L306'></a><a href='#L306'>306</a>
366
- <a name='L307'></a><a href='#L307'>307</a>
367
- <a name='L308'></a><a href='#L308'>308</a>
368
- <a name='L309'></a><a href='#L309'>309</a>
369
- <a name='L310'></a><a href='#L310'>310</a>
370
- <a name='L311'></a><a href='#L311'>311</a>
371
- <a name='L312'></a><a href='#L312'>312</a>
372
- <a name='L313'></a><a href='#L313'>313</a>
373
- <a name='L314'></a><a href='#L314'>314</a>
374
- <a name='L315'></a><a href='#L315'>315</a>
375
- <a name='L316'></a><a href='#L316'>316</a>
376
- <a name='L317'></a><a href='#L317'>317</a>
377
- <a name='L318'></a><a href='#L318'>318</a>
378
- <a name='L319'></a><a href='#L319'>319</a>
379
- <a name='L320'></a><a href='#L320'>320</a>
380
- <a name='L321'></a><a href='#L321'>321</a>
381
- <a name='L322'></a><a href='#L322'>322</a>
382
- <a name='L323'></a><a href='#L323'>323</a>
383
- <a name='L324'></a><a href='#L324'>324</a>
384
- <a name='L325'></a><a href='#L325'>325</a>
385
- <a name='L326'></a><a href='#L326'>326</a>
386
- <a name='L327'></a><a href='#L327'>327</a>
387
- <a name='L328'></a><a href='#L328'>328</a>
388
- <a name='L329'></a><a href='#L329'>329</a>
389
- <a name='L330'></a><a href='#L330'>330</a>
390
- <a name='L331'></a><a href='#L331'>331</a>
391
- <a name='L332'></a><a href='#L332'>332</a>
392
- <a name='L333'></a><a href='#L333'>333</a>
393
- <a name='L334'></a><a href='#L334'>334</a>
394
- <a name='L335'></a><a href='#L335'>335</a>
395
- <a name='L336'></a><a href='#L336'>336</a>
396
- <a name='L337'></a><a href='#L337'>337</a>
397
- <a name='L338'></a><a href='#L338'>338</a>
398
- <a name='L339'></a><a href='#L339'>339</a>
399
- <a name='L340'></a><a href='#L340'>340</a>
400
- <a name='L341'></a><a href='#L341'>341</a>
401
- <a name='L342'></a><a href='#L342'>342</a>
402
- <a name='L343'></a><a href='#L343'>343</a>
403
- <a name='L344'></a><a href='#L344'>344</a>
404
- <a name='L345'></a><a href='#L345'>345</a>
405
- <a name='L346'></a><a href='#L346'>346</a>
406
- <a name='L347'></a><a href='#L347'>347</a>
407
- <a name='L348'></a><a href='#L348'>348</a>
408
- <a name='L349'></a><a href='#L349'>349</a>
409
- <a name='L350'></a><a href='#L350'>350</a>
410
- <a name='L351'></a><a href='#L351'>351</a>
411
- <a name='L352'></a><a href='#L352'>352</a>
412
- <a name='L353'></a><a href='#L353'>353</a>
413
- <a name='L354'></a><a href='#L354'>354</a>
414
- <a name='L355'></a><a href='#L355'>355</a>
415
- <a name='L356'></a><a href='#L356'>356</a>
416
- <a name='L357'></a><a href='#L357'>357</a>
417
- <a name='L358'></a><a href='#L358'>358</a>
418
- <a name='L359'></a><a href='#L359'>359</a>
419
- <a name='L360'></a><a href='#L360'>360</a>
420
- <a name='L361'></a><a href='#L361'>361</a>
421
- <a name='L362'></a><a href='#L362'>362</a>
422
- <a name='L363'></a><a href='#L363'>363</a>
423
- <a name='L364'></a><a href='#L364'>364</a>
424
- <a name='L365'></a><a href='#L365'>365</a>
425
- <a name='L366'></a><a href='#L366'>366</a>
426
- <a name='L367'></a><a href='#L367'>367</a>
427
- <a name='L368'></a><a href='#L368'>368</a>
428
- <a name='L369'></a><a href='#L369'>369</a>
429
- <a name='L370'></a><a href='#L370'>370</a>
430
- <a name='L371'></a><a href='#L371'>371</a>
431
- <a name='L372'></a><a href='#L372'>372</a>
432
- <a name='L373'></a><a href='#L373'>373</a>
433
- <a name='L374'></a><a href='#L374'>374</a>
434
- <a name='L375'></a><a href='#L375'>375</a>
435
- <a name='L376'></a><a href='#L376'>376</a>
436
- <a name='L377'></a><a href='#L377'>377</a>
437
- <a name='L378'></a><a href='#L378'>378</a>
438
- <a name='L379'></a><a href='#L379'>379</a>
439
- <a name='L380'></a><a href='#L380'>380</a>
440
- <a name='L381'></a><a href='#L381'>381</a>
441
- <a name='L382'></a><a href='#L382'>382</a>
442
- <a name='L383'></a><a href='#L383'>383</a>
443
- <a name='L384'></a><a href='#L384'>384</a>
444
- <a name='L385'></a><a href='#L385'>385</a>
445
- <a name='L386'></a><a href='#L386'>386</a>
446
- <a name='L387'></a><a href='#L387'>387</a>
447
- <a name='L388'></a><a href='#L388'>388</a>
448
- <a name='L389'></a><a href='#L389'>389</a>
449
- <a name='L390'></a><a href='#L390'>390</a>
450
- <a name='L391'></a><a href='#L391'>391</a>
451
- <a name='L392'></a><a href='#L392'>392</a>
452
- <a name='L393'></a><a href='#L393'>393</a>
453
- <a name='L394'></a><a href='#L394'>394</a>
454
- <a name='L395'></a><a href='#L395'>395</a>
455
- <a name='L396'></a><a href='#L396'>396</a>
456
- <a name='L397'></a><a href='#L397'>397</a>
457
- <a name='L398'></a><a href='#L398'>398</a>
458
- <a name='L399'></a><a href='#L399'>399</a>
459
- <a name='L400'></a><a href='#L400'>400</a>
460
- <a name='L401'></a><a href='#L401'>401</a>
461
- <a name='L402'></a><a href='#L402'>402</a>
462
- <a name='L403'></a><a href='#L403'>403</a>
463
- <a name='L404'></a><a href='#L404'>404</a>
464
- <a name='L405'></a><a href='#L405'>405</a>
465
- <a name='L406'></a><a href='#L406'>406</a>
466
- <a name='L407'></a><a href='#L407'>407</a>
467
- <a name='L408'></a><a href='#L408'>408</a>
468
- <a name='L409'></a><a href='#L409'>409</a>
469
- <a name='L410'></a><a href='#L410'>410</a>
470
- <a name='L411'></a><a href='#L411'>411</a>
471
- <a name='L412'></a><a href='#L412'>412</a>
472
- <a name='L413'></a><a href='#L413'>413</a>
473
- <a name='L414'></a><a href='#L414'>414</a>
474
- <a name='L415'></a><a href='#L415'>415</a>
475
- <a name='L416'></a><a href='#L416'>416</a>
476
- <a name='L417'></a><a href='#L417'>417</a>
477
- <a name='L418'></a><a href='#L418'>418</a>
478
- <a name='L419'></a><a href='#L419'>419</a>
479
- <a name='L420'></a><a href='#L420'>420</a>
480
- <a name='L421'></a><a href='#L421'>421</a>
481
- <a name='L422'></a><a href='#L422'>422</a>
482
- <a name='L423'></a><a href='#L423'>423</a>
483
- <a name='L424'></a><a href='#L424'>424</a>
484
- <a name='L425'></a><a href='#L425'>425</a>
485
- <a name='L426'></a><a href='#L426'>426</a>
486
- <a name='L427'></a><a href='#L427'>427</a>
487
- <a name='L428'></a><a href='#L428'>428</a>
488
- <a name='L429'></a><a href='#L429'>429</a>
489
- <a name='L430'></a><a href='#L430'>430</a>
490
- <a name='L431'></a><a href='#L431'>431</a>
491
- <a name='L432'></a><a href='#L432'>432</a>
492
- <a name='L433'></a><a href='#L433'>433</a>
493
- <a name='L434'></a><a href='#L434'>434</a>
494
- <a name='L435'></a><a href='#L435'>435</a>
495
- <a name='L436'></a><a href='#L436'>436</a>
496
- <a name='L437'></a><a href='#L437'>437</a>
497
- <a name='L438'></a><a href='#L438'>438</a>
498
- <a name='L439'></a><a href='#L439'>439</a>
499
- <a name='L440'></a><a href='#L440'>440</a>
500
- <a name='L441'></a><a href='#L441'>441</a>
501
- <a name='L442'></a><a href='#L442'>442</a>
502
- <a name='L443'></a><a href='#L443'>443</a>
503
- <a name='L444'></a><a href='#L444'>444</a>
504
- <a name='L445'></a><a href='#L445'>445</a>
505
- <a name='L446'></a><a href='#L446'>446</a>
506
- <a name='L447'></a><a href='#L447'>447</a>
507
- <a name='L448'></a><a href='#L448'>448</a>
508
- <a name='L449'></a><a href='#L449'>449</a>
509
- <a name='L450'></a><a href='#L450'>450</a>
510
- <a name='L451'></a><a href='#L451'>451</a>
511
- <a name='L452'></a><a href='#L452'>452</a>
512
- <a name='L453'></a><a href='#L453'>453</a>
513
- <a name='L454'></a><a href='#L454'>454</a>
514
- <a name='L455'></a><a href='#L455'>455</a>
515
- <a name='L456'></a><a href='#L456'>456</a>
516
- <a name='L457'></a><a href='#L457'>457</a>
517
- <a name='L458'></a><a href='#L458'>458</a>
518
- <a name='L459'></a><a href='#L459'>459</a>
519
- <a name='L460'></a><a href='#L460'>460</a>
520
- <a name='L461'></a><a href='#L461'>461</a>
521
- <a name='L462'></a><a href='#L462'>462</a>
522
- <a name='L463'></a><a href='#L463'>463</a>
523
- <a name='L464'></a><a href='#L464'>464</a>
524
- <a name='L465'></a><a href='#L465'>465</a>
525
- <a name='L466'></a><a href='#L466'>466</a>
526
- <a name='L467'></a><a href='#L467'>467</a>
527
- <a name='L468'></a><a href='#L468'>468</a>
528
- <a name='L469'></a><a href='#L469'>469</a>
529
- <a name='L470'></a><a href='#L470'>470</a>
530
- <a name='L471'></a><a href='#L471'>471</a>
531
- <a name='L472'></a><a href='#L472'>472</a>
532
- <a name='L473'></a><a href='#L473'>473</a>
533
- <a name='L474'></a><a href='#L474'>474</a>
534
- <a name='L475'></a><a href='#L475'>475</a>
535
- <a name='L476'></a><a href='#L476'>476</a>
536
- <a name='L477'></a><a href='#L477'>477</a>
537
- <a name='L478'></a><a href='#L478'>478</a>
538
- <a name='L479'></a><a href='#L479'>479</a>
539
- <a name='L480'></a><a href='#L480'>480</a>
540
- <a name='L481'></a><a href='#L481'>481</a>
541
- <a name='L482'></a><a href='#L482'>482</a>
542
- <a name='L483'></a><a href='#L483'>483</a>
543
- <a name='L484'></a><a href='#L484'>484</a>
544
- <a name='L485'></a><a href='#L485'>485</a>
545
- <a name='L486'></a><a href='#L486'>486</a>
546
- <a name='L487'></a><a href='#L487'>487</a>
547
- <a name='L488'></a><a href='#L488'>488</a>
548
- <a name='L489'></a><a href='#L489'>489</a>
549
- <a name='L490'></a><a href='#L490'>490</a>
550
- <a name='L491'></a><a href='#L491'>491</a>
551
- <a name='L492'></a><a href='#L492'>492</a>
552
- <a name='L493'></a><a href='#L493'>493</a>
553
- <a name='L494'></a><a href='#L494'>494</a>
554
- <a name='L495'></a><a href='#L495'>495</a>
555
- <a name='L496'></a><a href='#L496'>496</a>
556
- <a name='L497'></a><a href='#L497'>497</a>
557
- <a name='L498'></a><a href='#L498'>498</a>
558
- <a name='L499'></a><a href='#L499'>499</a>
559
- <a name='L500'></a><a href='#L500'>500</a>
560
- <a name='L501'></a><a href='#L501'>501</a>
561
- <a name='L502'></a><a href='#L502'>502</a>
562
- <a name='L503'></a><a href='#L503'>503</a>
563
- <a name='L504'></a><a href='#L504'>504</a>
564
- <a name='L505'></a><a href='#L505'>505</a>
565
- <a name='L506'></a><a href='#L506'>506</a>
566
- <a name='L507'></a><a href='#L507'>507</a>
567
- <a name='L508'></a><a href='#L508'>508</a>
568
- <a name='L509'></a><a href='#L509'>509</a>
569
- <a name='L510'></a><a href='#L510'>510</a>
570
- <a name='L511'></a><a href='#L511'>511</a>
571
- <a name='L512'></a><a href='#L512'>512</a>
572
- <a name='L513'></a><a href='#L513'>513</a>
573
- <a name='L514'></a><a href='#L514'>514</a>
574
- <a name='L515'></a><a href='#L515'>515</a>
575
- <a name='L516'></a><a href='#L516'>516</a>
576
- <a name='L517'></a><a href='#L517'>517</a>
577
- <a name='L518'></a><a href='#L518'>518</a>
578
- <a name='L519'></a><a href='#L519'>519</a>
579
- <a name='L520'></a><a href='#L520'>520</a>
580
- <a name='L521'></a><a href='#L521'>521</a>
581
- <a name='L522'></a><a href='#L522'>522</a>
582
- <a name='L523'></a><a href='#L523'>523</a>
583
- <a name='L524'></a><a href='#L524'>524</a>
584
- <a name='L525'></a><a href='#L525'>525</a>
585
- <a name='L526'></a><a href='#L526'>526</a>
586
- <a name='L527'></a><a href='#L527'>527</a>
587
- <a name='L528'></a><a href='#L528'>528</a>
588
- <a name='L529'></a><a href='#L529'>529</a>
589
- <a name='L530'></a><a href='#L530'>530</a>
590
- <a name='L531'></a><a href='#L531'>531</a>
591
- <a name='L532'></a><a href='#L532'>532</a>
592
- <a name='L533'></a><a href='#L533'>533</a>
593
- <a name='L534'></a><a href='#L534'>534</a>
594
- <a name='L535'></a><a href='#L535'>535</a>
595
- <a name='L536'></a><a href='#L536'>536</a>
596
- <a name='L537'></a><a href='#L537'>537</a>
597
- <a name='L538'></a><a href='#L538'>538</a>
598
- <a name='L539'></a><a href='#L539'>539</a>
599
- <a name='L540'></a><a href='#L540'>540</a>
600
- <a name='L541'></a><a href='#L541'>541</a>
601
- <a name='L542'></a><a href='#L542'>542</a>
602
- <a name='L543'></a><a href='#L543'>543</a>
603
- <a name='L544'></a><a href='#L544'>544</a>
604
- <a name='L545'></a><a href='#L545'>545</a>
605
- <a name='L546'></a><a href='#L546'>546</a>
606
- <a name='L547'></a><a href='#L547'>547</a>
607
- <a name='L548'></a><a href='#L548'>548</a>
608
- <a name='L549'></a><a href='#L549'>549</a>
609
- <a name='L550'></a><a href='#L550'>550</a>
610
- <a name='L551'></a><a href='#L551'>551</a>
611
- <a name='L552'></a><a href='#L552'>552</a>
612
- <a name='L553'></a><a href='#L553'>553</a>
613
- <a name='L554'></a><a href='#L554'>554</a>
614
- <a name='L555'></a><a href='#L555'>555</a>
615
- <a name='L556'></a><a href='#L556'>556</a>
616
- <a name='L557'></a><a href='#L557'>557</a>
617
- <a name='L558'></a><a href='#L558'>558</a>
618
- <a name='L559'></a><a href='#L559'>559</a>
619
- <a name='L560'></a><a href='#L560'>560</a>
620
- <a name='L561'></a><a href='#L561'>561</a>
621
- <a name='L562'></a><a href='#L562'>562</a>
622
- <a name='L563'></a><a href='#L563'>563</a>
623
- <a name='L564'></a><a href='#L564'>564</a>
624
- <a name='L565'></a><a href='#L565'>565</a>
625
- <a name='L566'></a><a href='#L566'>566</a>
626
- <a name='L567'></a><a href='#L567'>567</a>
627
- <a name='L568'></a><a href='#L568'>568</a>
628
- <a name='L569'></a><a href='#L569'>569</a>
629
- <a name='L570'></a><a href='#L570'>570</a>
630
- <a name='L571'></a><a href='#L571'>571</a>
631
- <a name='L572'></a><a href='#L572'>572</a>
632
- <a name='L573'></a><a href='#L573'>573</a>
633
- <a name='L574'></a><a href='#L574'>574</a>
634
- <a name='L575'></a><a href='#L575'>575</a>
635
- <a name='L576'></a><a href='#L576'>576</a>
636
- <a name='L577'></a><a href='#L577'>577</a>
637
- <a name='L578'></a><a href='#L578'>578</a>
638
- <a name='L579'></a><a href='#L579'>579</a>
639
- <a name='L580'></a><a href='#L580'>580</a>
640
- <a name='L581'></a><a href='#L581'>581</a>
641
- <a name='L582'></a><a href='#L582'>582</a>
642
- <a name='L583'></a><a href='#L583'>583</a>
643
- <a name='L584'></a><a href='#L584'>584</a>
644
- <a name='L585'></a><a href='#L585'>585</a>
645
- <a name='L586'></a><a href='#L586'>586</a>
646
- <a name='L587'></a><a href='#L587'>587</a>
647
- <a name='L588'></a><a href='#L588'>588</a>
648
- <a name='L589'></a><a href='#L589'>589</a>
649
- <a name='L590'></a><a href='#L590'>590</a>
650
- <a name='L591'></a><a href='#L591'>591</a>
651
- <a name='L592'></a><a href='#L592'>592</a>
652
- <a name='L593'></a><a href='#L593'>593</a>
653
- <a name='L594'></a><a href='#L594'>594</a>
654
- <a name='L595'></a><a href='#L595'>595</a>
655
- <a name='L596'></a><a href='#L596'>596</a>
656
- <a name='L597'></a><a href='#L597'>597</a>
657
- <a name='L598'></a><a href='#L598'>598</a>
658
- <a name='L599'></a><a href='#L599'>599</a>
659
- <a name='L600'></a><a href='#L600'>600</a>
660
- <a name='L601'></a><a href='#L601'>601</a>
661
- <a name='L602'></a><a href='#L602'>602</a>
662
- <a name='L603'></a><a href='#L603'>603</a>
663
- <a name='L604'></a><a href='#L604'>604</a>
664
- <a name='L605'></a><a href='#L605'>605</a>
665
- <a name='L606'></a><a href='#L606'>606</a>
666
- <a name='L607'></a><a href='#L607'>607</a>
667
- <a name='L608'></a><a href='#L608'>608</a>
668
- <a name='L609'></a><a href='#L609'>609</a>
669
- <a name='L610'></a><a href='#L610'>610</a>
670
- <a name='L611'></a><a href='#L611'>611</a>
671
- <a name='L612'></a><a href='#L612'>612</a>
672
- <a name='L613'></a><a href='#L613'>613</a>
673
- <a name='L614'></a><a href='#L614'>614</a>
674
- <a name='L615'></a><a href='#L615'>615</a>
675
- <a name='L616'></a><a href='#L616'>616</a>
676
- <a name='L617'></a><a href='#L617'>617</a>
677
- <a name='L618'></a><a href='#L618'>618</a>
678
- <a name='L619'></a><a href='#L619'>619</a>
679
- <a name='L620'></a><a href='#L620'>620</a>
680
- <a name='L621'></a><a href='#L621'>621</a>
681
- <a name='L622'></a><a href='#L622'>622</a>
682
- <a name='L623'></a><a href='#L623'>623</a>
683
- <a name='L624'></a><a href='#L624'>624</a>
684
- <a name='L625'></a><a href='#L625'>625</a>
685
- <a name='L626'></a><a href='#L626'>626</a>
686
- <a name='L627'></a><a href='#L627'>627</a>
687
- <a name='L628'></a><a href='#L628'>628</a>
688
- <a name='L629'></a><a href='#L629'>629</a>
689
- <a name='L630'></a><a href='#L630'>630</a>
690
- <a name='L631'></a><a href='#L631'>631</a>
691
- <a name='L632'></a><a href='#L632'>632</a>
692
- <a name='L633'></a><a href='#L633'>633</a>
693
- <a name='L634'></a><a href='#L634'>634</a>
694
- <a name='L635'></a><a href='#L635'>635</a>
695
- <a name='L636'></a><a href='#L636'>636</a>
696
- <a name='L637'></a><a href='#L637'>637</a>
697
- <a name='L638'></a><a href='#L638'>638</a>
698
- <a name='L639'></a><a href='#L639'>639</a>
699
- <a name='L640'></a><a href='#L640'>640</a>
700
- <a name='L641'></a><a href='#L641'>641</a>
701
- <a name='L642'></a><a href='#L642'>642</a>
702
- <a name='L643'></a><a href='#L643'>643</a>
703
- <a name='L644'></a><a href='#L644'>644</a>
704
- <a name='L645'></a><a href='#L645'>645</a>
705
- <a name='L646'></a><a href='#L646'>646</a>
706
- <a name='L647'></a><a href='#L647'>647</a>
707
- <a name='L648'></a><a href='#L648'>648</a>
708
- <a name='L649'></a><a href='#L649'>649</a>
709
- <a name='L650'></a><a href='#L650'>650</a>
710
- <a name='L651'></a><a href='#L651'>651</a>
711
- <a name='L652'></a><a href='#L652'>652</a>
712
- <a name='L653'></a><a href='#L653'>653</a>
713
- <a name='L654'></a><a href='#L654'>654</a>
714
- <a name='L655'></a><a href='#L655'>655</a>
715
- <a name='L656'></a><a href='#L656'>656</a>
716
- <a name='L657'></a><a href='#L657'>657</a>
717
- <a name='L658'></a><a href='#L658'>658</a>
718
- <a name='L659'></a><a href='#L659'>659</a>
719
- <a name='L660'></a><a href='#L660'>660</a>
720
- <a name='L661'></a><a href='#L661'>661</a>
721
- <a name='L662'></a><a href='#L662'>662</a>
722
- <a name='L663'></a><a href='#L663'>663</a>
723
- <a name='L664'></a><a href='#L664'>664</a>
724
- <a name='L665'></a><a href='#L665'>665</a>
725
- <a name='L666'></a><a href='#L666'>666</a>
726
- <a name='L667'></a><a href='#L667'>667</a>
727
- <a name='L668'></a><a href='#L668'>668</a>
728
- <a name='L669'></a><a href='#L669'>669</a>
729
- <a name='L670'></a><a href='#L670'>670</a>
730
- <a name='L671'></a><a href='#L671'>671</a>
731
- <a name='L672'></a><a href='#L672'>672</a>
732
- <a name='L673'></a><a href='#L673'>673</a>
733
- <a name='L674'></a><a href='#L674'>674</a>
734
- <a name='L675'></a><a href='#L675'>675</a>
735
- <a name='L676'></a><a href='#L676'>676</a>
736
- <a name='L677'></a><a href='#L677'>677</a>
737
- <a name='L678'></a><a href='#L678'>678</a>
738
- <a name='L679'></a><a href='#L679'>679</a>
739
- <a name='L680'></a><a href='#L680'>680</a>
740
- <a name='L681'></a><a href='#L681'>681</a>
741
- <a name='L682'></a><a href='#L682'>682</a>
742
- <a name='L683'></a><a href='#L683'>683</a>
743
- <a name='L684'></a><a href='#L684'>684</a>
744
- <a name='L685'></a><a href='#L685'>685</a>
745
- <a name='L686'></a><a href='#L686'>686</a>
746
- <a name='L687'></a><a href='#L687'>687</a>
747
- <a name='L688'></a><a href='#L688'>688</a>
748
- <a name='L689'></a><a href='#L689'>689</a>
749
- <a name='L690'></a><a href='#L690'>690</a>
750
- <a name='L691'></a><a href='#L691'>691</a>
751
- <a name='L692'></a><a href='#L692'>692</a>
752
- <a name='L693'></a><a href='#L693'>693</a>
753
- <a name='L694'></a><a href='#L694'>694</a>
754
- <a name='L695'></a><a href='#L695'>695</a>
755
- <a name='L696'></a><a href='#L696'>696</a>
756
- <a name='L697'></a><a href='#L697'>697</a>
757
- <a name='L698'></a><a href='#L698'>698</a>
758
- <a name='L699'></a><a href='#L699'>699</a>
759
- <a name='L700'></a><a href='#L700'>700</a>
760
- <a name='L701'></a><a href='#L701'>701</a>
761
- <a name='L702'></a><a href='#L702'>702</a>
762
- <a name='L703'></a><a href='#L703'>703</a>
763
- <a name='L704'></a><a href='#L704'>704</a>
764
- <a name='L705'></a><a href='#L705'>705</a>
765
- <a name='L706'></a><a href='#L706'>706</a>
766
- <a name='L707'></a><a href='#L707'>707</a>
767
- <a name='L708'></a><a href='#L708'>708</a>
768
- <a name='L709'></a><a href='#L709'>709</a>
769
- <a name='L710'></a><a href='#L710'>710</a>
770
- <a name='L711'></a><a href='#L711'>711</a>
771
- <a name='L712'></a><a href='#L712'>712</a>
772
- <a name='L713'></a><a href='#L713'>713</a>
773
- <a name='L714'></a><a href='#L714'>714</a>
774
- <a name='L715'></a><a href='#L715'>715</a>
775
- <a name='L716'></a><a href='#L716'>716</a>
776
- <a name='L717'></a><a href='#L717'>717</a>
777
- <a name='L718'></a><a href='#L718'>718</a>
778
- <a name='L719'></a><a href='#L719'>719</a>
779
- <a name='L720'></a><a href='#L720'>720</a>
780
- <a name='L721'></a><a href='#L721'>721</a>
781
- <a name='L722'></a><a href='#L722'>722</a>
782
- <a name='L723'></a><a href='#L723'>723</a>
783
- <a name='L724'></a><a href='#L724'>724</a>
784
- <a name='L725'></a><a href='#L725'>725</a>
785
- <a name='L726'></a><a href='#L726'>726</a>
786
- <a name='L727'></a><a href='#L727'>727</a>
787
- <a name='L728'></a><a href='#L728'>728</a>
788
- <a name='L729'></a><a href='#L729'>729</a>
789
- <a name='L730'></a><a href='#L730'>730</a>
790
- <a name='L731'></a><a href='#L731'>731</a>
791
- <a name='L732'></a><a href='#L732'>732</a>
792
- <a name='L733'></a><a href='#L733'>733</a>
793
- <a name='L734'></a><a href='#L734'>734</a>
794
- <a name='L735'></a><a href='#L735'>735</a>
795
- <a name='L736'></a><a href='#L736'>736</a>
796
- <a name='L737'></a><a href='#L737'>737</a>
797
- <a name='L738'></a><a href='#L738'>738</a>
798
- <a name='L739'></a><a href='#L739'>739</a>
799
- <a name='L740'></a><a href='#L740'>740</a>
800
- <a name='L741'></a><a href='#L741'>741</a>
801
- <a name='L742'></a><a href='#L742'>742</a>
802
- <a name='L743'></a><a href='#L743'>743</a>
803
- <a name='L744'></a><a href='#L744'>744</a>
804
- <a name='L745'></a><a href='#L745'>745</a>
805
- <a name='L746'></a><a href='#L746'>746</a>
806
- <a name='L747'></a><a href='#L747'>747</a>
807
- <a name='L748'></a><a href='#L748'>748</a>
808
- <a name='L749'></a><a href='#L749'>749</a>
809
- <a name='L750'></a><a href='#L750'>750</a>
810
- <a name='L751'></a><a href='#L751'>751</a>
811
- <a name='L752'></a><a href='#L752'>752</a>
812
- <a name='L753'></a><a href='#L753'>753</a>
813
- <a name='L754'></a><a href='#L754'>754</a>
814
- <a name='L755'></a><a href='#L755'>755</a>
815
- <a name='L756'></a><a href='#L756'>756</a>
816
- <a name='L757'></a><a href='#L757'>757</a>
817
- <a name='L758'></a><a href='#L758'>758</a>
818
- <a name='L759'></a><a href='#L759'>759</a>
819
- <a name='L760'></a><a href='#L760'>760</a>
820
- <a name='L761'></a><a href='#L761'>761</a>
821
- <a name='L762'></a><a href='#L762'>762</a>
822
- <a name='L763'></a><a href='#L763'>763</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-yes">1x</span>
825
- <span class="cline-any cline-yes">1x</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-yes">1x</span>
844
- <span class="cline-any cline-yes">1x</span>
845
- <span class="cline-any cline-yes">1x</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-yes">1x</span>
860
- <span class="cline-any cline-yes">1x</span>
861
- <span class="cline-any cline-yes">1x</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-yes">1x</span>
951
- <span class="cline-any cline-yes">3x</span>
952
- <span class="cline-any cline-yes">3x</span>
953
- <span class="cline-any cline-yes">3x</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-yes">1x</span>
961
- <span class="cline-any cline-yes">1x</span>
962
- <span class="cline-any cline-yes">1x</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-yes">1x</span>
974
- <span class="cline-any cline-yes">1x</span>
975
- <span class="cline-any cline-yes">1x</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-yes">1x</span>
989
- <span class="cline-any cline-yes">1x</span>
990
- <span class="cline-any cline-yes">1x</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-yes">1x</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-no">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-no">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-yes">1x</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-yes">3x</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-no">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-yes">3x</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-yes">3x</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-no">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-no">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-no">&nbsp;</span>
1036
- <span class="cline-any cline-no">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-no">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-no">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-yes">3x</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-yes">1x</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-no">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-no">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-no">&nbsp;</span>
1068
- <span class="cline-any cline-no">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-yes">3x</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-yes">3x</span>
1079
- <span class="cline-any cline-yes">1x</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-yes">4x</span>
1087
- <span class="cline-any cline-yes">4x</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-yes">3x</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-yes">1x</span>
1095
- <span class="cline-any cline-yes">1x</span>
1096
- <span class="cline-any cline-yes">1x</span>
1097
- <span class="cline-any cline-yes">1x</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-yes">4x</span>
1101
- <span class="cline-any cline-yes">4x</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-yes">4x</span>
1104
- <span class="cline-any cline-yes">4x</span>
1105
- <span class="cline-any cline-yes">4x</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-no">&nbsp;</span>
1108
- <span class="cline-any cline-no">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-yes">1x</span>
1118
- <span class="cline-any cline-no">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-no">&nbsp;</span>
1122
- <span class="cline-any cline-no">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-no">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-no">&nbsp;</span>
1134
- <span class="cline-any cline-no">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-no">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-yes">4x</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-yes">4x</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-yes">4x</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-no">&nbsp;</span>
1154
- <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-no">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-no">&nbsp;</span>
1160
- <span class="cline-any cline-no">&nbsp;</span>
1161
- <span class="cline-any cline-neutral">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-no">&nbsp;</span>
1167
- <span class="cline-any cline-no">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-yes">1x</span>
1179
- <span class="cline-any cline-yes">6x</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-yes">1x</span>
1186
- <span class="cline-any cline-yes">6x</span>
1187
- <span class="cline-any cline-yes">6x</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-yes">4x</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-yes">6x</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-yes">1x</span>
1205
- <span class="cline-any cline-yes">1x</span>
1206
- <span class="cline-any cline-yes">1x</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-yes">1x</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-yes">19x</span>
1213
- <span class="cline-any cline-yes">19x</span>
1214
- <span class="cline-any cline-yes">19x</span>
1215
- <span class="cline-any cline-yes">3x</span>
1216
- <span class="cline-any cline-yes">3x</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-yes">3x</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-neutral">&nbsp;</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-yes">1x</span>
1230
- <span class="cline-any cline-yes">37x</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-yes">37x</span>
1234
- <span class="cline-any cline-yes">37x</span>
1235
- <span class="cline-any cline-yes">37x</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-yes">37x</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-neutral">&nbsp;</span>
1240
- <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-neutral">&nbsp;</span>
1243
- <span class="cline-any cline-yes">37x</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-neutral">&nbsp;</span>
1247
- <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-neutral">&nbsp;</span>
1260
- <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-yes">37x</span>
1262
- <span class="cline-any cline-yes">37x</span>
1263
- <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-yes">37x</span>
1266
- <span class="cline-any cline-yes">37x</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-neutral">&nbsp;</span>
1270
- <span class="cline-any cline-neutral">&nbsp;</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-neutral">&nbsp;</span>
1274
- <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-yes">37x</span>
1284
- <span class="cline-any cline-yes">9x</span>
1285
- <span class="cline-any cline-yes">9x</span>
1286
- <span class="cline-any cline-yes">9x</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-yes">6x</span>
1289
- <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-yes">108x</span>
1291
- <span class="cline-any cline-yes">9x</span>
1292
- <span class="cline-any cline-yes">8x</span>
1293
- <span class="cline-any cline-neutral">&nbsp;</span>
1294
- <span class="cline-any cline-neutral">&nbsp;</span>
1295
- <span class="cline-any cline-yes">9x</span>
1296
- <span class="cline-any cline-yes">8x</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-neutral">&nbsp;</span>
1300
- <span class="cline-any cline-neutral">&nbsp;</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-yes">37x</span>
1305
- <span class="cline-any cline-yes">4x</span>
1306
- <span class="cline-any cline-no">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-yes">4x</span>
1309
- <span class="cline-any cline-yes">4x</span>
1310
- <span class="cline-any cline-yes">4x</span>
1311
- <span class="cline-any cline-neutral">&nbsp;</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-yes">4x</span>
1315
- <span class="cline-any cline-yes">2x</span>
1316
- <span class="cline-any cline-neutral">&nbsp;</span>
1317
- <span class="cline-any cline-neutral">&nbsp;</span>
1318
- <span class="cline-any cline-neutral">&nbsp;</span>
1319
- <span class="cline-any cline-neutral">&nbsp;</span>
1320
- <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-yes">4x</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-neutral">&nbsp;</span>
1324
- <span class="cline-any cline-neutral">&nbsp;</span>
1325
- <span class="cline-any cline-yes">4x</span>
1326
- <span class="cline-any cline-yes">2x</span>
1327
- <span class="cline-any cline-neutral">&nbsp;</span>
1328
- <span class="cline-any cline-neutral">&nbsp;</span>
1329
- <span class="cline-any cline-neutral">&nbsp;</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-neutral">&nbsp;</span>
1332
- <span class="cline-any cline-yes">4x</span>
1333
- <span class="cline-any cline-neutral">&nbsp;</span>
1334
- <span class="cline-any cline-neutral">&nbsp;</span>
1335
- <span class="cline-any cline-neutral">&nbsp;</span>
1336
- <span class="cline-any cline-yes">37x</span>
1337
- <span class="cline-any cline-yes">2x</span>
1338
- <span class="cline-any cline-yes">2x</span>
1339
- <span class="cline-any cline-neutral">&nbsp;</span>
1340
- <span class="cline-any cline-neutral">&nbsp;</span>
1341
- <span class="cline-any cline-neutral">&nbsp;</span>
1342
- <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-neutral">&nbsp;</span>
1344
- <span class="cline-any cline-yes">37x</span>
1345
- <span class="cline-any cline-yes">2x</span>
1346
- <span class="cline-any cline-yes">2x</span>
1347
- <span class="cline-any cline-neutral">&nbsp;</span>
1348
- <span class="cline-any cline-neutral">&nbsp;</span>
1349
- <span class="cline-any cline-neutral">&nbsp;</span>
1350
- <span class="cline-any cline-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-yes">37x</span>
1353
- <span class="cline-any cline-no">&nbsp;</span>
1354
- <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-yes">37x</span>
1357
- <span class="cline-any cline-no">&nbsp;</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-neutral">&nbsp;</span>
1361
- <span class="cline-any cline-neutral">&nbsp;</span>
1362
- <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-neutral">&nbsp;</span>
1364
- <span class="cline-any cline-neutral">&nbsp;</span>
1365
- <span class="cline-any cline-yes">37x</span>
1366
- <span class="cline-any cline-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-neutral">&nbsp;</span>
1368
- <span class="cline-any cline-neutral">&nbsp;</span>
1369
- <span class="cline-any cline-neutral">&nbsp;</span>
1370
- <span class="cline-any cline-yes">12x</span>
1371
- <span class="cline-any cline-yes">7x</span>
1372
- <span class="cline-any cline-yes">7x</span>
1373
- <span class="cline-any cline-yes">7x</span>
1374
- <span class="cline-any cline-neutral">&nbsp;</span>
1375
- <span class="cline-any cline-yes">7x</span>
1376
- <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-neutral">&nbsp;</span>
1381
- <span class="cline-any cline-yes">28x</span>
1382
- <span class="cline-any cline-yes">7x</span>
1383
- <span class="cline-any cline-yes">2x</span>
1384
- <span class="cline-any cline-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-yes">7x</span>
1386
- <span class="cline-any cline-yes">7x</span>
1387
- <span class="cline-any cline-yes">7x</span>
1388
- <span class="cline-any cline-yes">44x</span>
1389
- <span class="cline-any cline-yes">28x</span>
1390
- <span class="cline-any cline-neutral">&nbsp;</span>
1391
- <span class="cline-any cline-yes">7x</span>
1392
- <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&nbsp;</span>
1394
- <span class="cline-any cline-neutral">&nbsp;</span>
1395
- <span class="cline-any cline-yes">7x</span>
1396
- <span class="cline-any cline-neutral">&nbsp;</span>
1397
- <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-neutral">&nbsp;</span>
1401
- <span class="cline-any cline-yes">37x</span>
1402
- <span class="cline-any cline-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-neutral">&nbsp;</span>
1404
- <span class="cline-any cline-neutral">&nbsp;</span>
1405
- <span class="cline-any cline-yes">2x</span>
1406
- <span class="cline-any cline-yes">1x</span>
1407
- <span class="cline-any cline-yes">1x</span>
1408
- <span class="cline-any cline-neutral">&nbsp;</span>
1409
- <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-no">&nbsp;</span>
1413
- <span class="cline-any cline-no">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&nbsp;</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-neutral">&nbsp;</span>
1418
- <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-neutral">&nbsp;</span>
1420
- <span class="cline-any cline-neutral">&nbsp;</span>
1421
- <span class="cline-any cline-yes">37x</span>
1422
- <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-neutral">&nbsp;</span>
1425
- <span class="cline-any cline-yes">2x</span>
1426
- <span class="cline-any cline-yes">1x</span>
1427
- <span class="cline-any cline-neutral">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-yes">37x</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&nbsp;</span>
1434
- <span class="cline-any cline-neutral">&nbsp;</span>
1435
- <span class="cline-any cline-yes">4x</span>
1436
- <span class="cline-any cline-yes">4x</span>
1437
- <span class="cline-any cline-yes">3x</span>
1438
- <span class="cline-any cline-neutral">&nbsp;</span>
1439
- <span class="cline-any cline-neutral">&nbsp;</span>
1440
- <span class="cline-any cline-neutral">&nbsp;</span>
1441
- <span class="cline-any cline-neutral">&nbsp;</span>
1442
- <span class="cline-any cline-yes">37x</span>
1443
- <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&nbsp;</span>
1445
- <span class="cline-any cline-neutral">&nbsp;</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-neutral">&nbsp;</span>
1448
- <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-neutral">&nbsp;</span>
1461
- <span class="cline-any cline-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&nbsp;</span>
1463
- <span class="cline-any cline-neutral">&nbsp;</span>
1464
- <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-neutral">&nbsp;</span>
1466
- <span class="cline-any cline-neutral">&nbsp;</span>
1467
- <span class="cline-any cline-neutral">&nbsp;</span>
1468
- <span class="cline-any cline-neutral">&nbsp;</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-neutral">&nbsp;</span>
1472
- <span class="cline-any cline-neutral">&nbsp;</span>
1473
- <span class="cline-any cline-neutral">&nbsp;</span>
1474
- <span class="cline-any cline-neutral">&nbsp;</span>
1475
- <span class="cline-any cline-neutral">&nbsp;</span>
1476
- <span class="cline-any cline-neutral">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-neutral">&nbsp;</span>
1479
- <span class="cline-any cline-neutral">&nbsp;</span>
1480
- <span class="cline-any cline-neutral">&nbsp;</span>
1481
- <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-neutral">&nbsp;</span>
1483
- <span class="cline-any cline-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-neutral">&nbsp;</span>
1485
- <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-neutral">&nbsp;</span>
1487
- <span class="cline-any cline-neutral">&nbsp;</span>
1488
- <span class="cline-any cline-neutral">&nbsp;</span>
1489
- <span class="cline-any cline-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-neutral">&nbsp;</span>
1491
- <span class="cline-any cline-neutral">&nbsp;</span>
1492
- <span class="cline-any cline-neutral">&nbsp;</span>
1493
- <span class="cline-any cline-neutral">&nbsp;</span>
1494
- <span class="cline-any cline-neutral">&nbsp;</span>
1495
- <span class="cline-any cline-neutral">&nbsp;</span>
1496
- <span class="cline-any cline-neutral">&nbsp;</span>
1497
- <span class="cline-any cline-neutral">&nbsp;</span>
1498
- <span class="cline-any cline-neutral">&nbsp;</span>
1499
- <span class="cline-any cline-neutral">&nbsp;</span>
1500
- <span class="cline-any cline-neutral">&nbsp;</span>
1501
- <span class="cline-any cline-neutral">&nbsp;</span>
1502
- <span class="cline-any cline-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-neutral">&nbsp;</span>
1504
- <span class="cline-any cline-neutral">&nbsp;</span>
1505
- <span class="cline-any cline-neutral">&nbsp;</span>
1506
- <span class="cline-any cline-neutral">&nbsp;</span>
1507
- <span class="cline-any cline-neutral">&nbsp;</span>
1508
- <span class="cline-any cline-neutral">&nbsp;</span>
1509
- <span class="cline-any cline-neutral">&nbsp;</span>
1510
- <span class="cline-any cline-neutral">&nbsp;</span>
1511
- <span class="cline-any cline-neutral">&nbsp;</span>
1512
- <span class="cline-any cline-neutral">&nbsp;</span>
1513
- <span class="cline-any cline-neutral">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&nbsp;</span>
1516
- <span class="cline-any cline-neutral">&nbsp;</span>
1517
- <span class="cline-any cline-neutral">&nbsp;</span>
1518
- <span class="cline-any cline-neutral">&nbsp;</span>
1519
- <span class="cline-any cline-neutral">&nbsp;</span>
1520
- <span class="cline-any cline-neutral">&nbsp;</span>
1521
- <span class="cline-any cline-yes">37x</span>
1522
- <span class="cline-any cline-neutral">&nbsp;</span>
1523
- <span class="cline-any cline-neutral">&nbsp;</span>
1524
- <span class="cline-any cline-neutral">&nbsp;</span>
1525
- <span class="cline-any cline-neutral">&nbsp;</span>
1526
- <span class="cline-any cline-neutral">&nbsp;</span>
1527
- <span class="cline-any cline-neutral">&nbsp;</span>
1528
- <span class="cline-any cline-neutral">&nbsp;</span>
1529
- <span class="cline-any cline-neutral">&nbsp;</span>
1530
- <span class="cline-any cline-neutral">&nbsp;</span>
1531
- <span class="cline-any cline-neutral">&nbsp;</span>
1532
- <span class="cline-any cline-neutral">&nbsp;</span>
1533
- <span class="cline-any cline-neutral">&nbsp;</span>
1534
- <span class="cline-any cline-neutral">&nbsp;</span>
1535
- <span class="cline-any cline-yes">555x</span>
1536
- <span class="cline-any cline-yes">555x</span>
1537
- <span class="cline-any cline-yes">448x</span>
1538
- <span class="cline-any cline-neutral">&nbsp;</span>
1539
- <span class="cline-any cline-neutral">&nbsp;</span>
1540
- <span class="cline-any cline-neutral">&nbsp;</span>
1541
- <span class="cline-any cline-neutral">&nbsp;</span>
1542
- <span class="cline-any cline-neutral">&nbsp;</span>
1543
- <span class="cline-any cline-neutral">&nbsp;</span>
1544
- <span class="cline-any cline-neutral">&nbsp;</span>
1545
- <span class="cline-any cline-neutral">&nbsp;</span>
1546
- <span class="cline-any cline-neutral">&nbsp;</span>
1547
- <span class="cline-any cline-neutral">&nbsp;</span>
1548
- <span class="cline-any cline-neutral">&nbsp;</span>
1549
- <span class="cline-any cline-neutral">&nbsp;</span>
1550
- <span class="cline-any cline-neutral">&nbsp;</span>
1551
- <span class="cline-any cline-yes">74x</span>
1552
- <span class="cline-any cline-neutral">&nbsp;</span>
1553
- <span class="cline-any cline-yes">37x</span>
1554
- <span class="cline-any cline-neutral">&nbsp;</span>
1555
- <span class="cline-any cline-neutral">&nbsp;</span>
1556
- <span class="cline-any cline-neutral">&nbsp;</span>
1557
- <span class="cline-any cline-neutral">&nbsp;</span>
1558
- <span class="cline-any cline-neutral">&nbsp;</span>
1559
- <span class="cline-any cline-neutral">&nbsp;</span>
1560
- <span class="cline-any cline-yes">1x</span>
1561
- <span class="cline-any cline-neutral">&nbsp;</span>
1562
- <span class="cline-any cline-neutral">&nbsp;</span>
1563
- <span class="cline-any cline-neutral">&nbsp;</span>
1564
- <span class="cline-any cline-yes">2x</span>
1565
- <span class="cline-any cline-yes">6x</span>
1566
- <span class="cline-any cline-neutral">&nbsp;</span>
1567
- <span class="cline-any cline-yes">2x</span>
1568
- <span class="cline-any cline-neutral">&nbsp;</span>
1569
- <span class="cline-any cline-neutral">&nbsp;</span>
1570
- <span class="cline-any cline-neutral">&nbsp;</span>
1571
- <span class="cline-any cline-neutral">&nbsp;</span>
1572
- <span class="cline-any cline-neutral">&nbsp;</span>
1573
- <span class="cline-any cline-neutral">&nbsp;</span>
1574
- <span class="cline-any cline-neutral">&nbsp;</span>
1575
- <span class="cline-any cline-neutral">&nbsp;</span>
1576
- <span class="cline-any cline-neutral">&nbsp;</span>
1577
- <span class="cline-any cline-neutral">&nbsp;</span>
1578
- <span class="cline-any cline-neutral">&nbsp;</span>
1579
- <span class="cline-any cline-neutral">&nbsp;</span>
1580
- <span class="cline-any cline-neutral">&nbsp;</span>
1581
- <span class="cline-any cline-neutral">&nbsp;</span>
1582
- <span class="cline-any cline-neutral">&nbsp;</span>
1583
- <span class="cline-any cline-neutral">&nbsp;</span>
1584
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import "native-promise-only";
1585
- &nbsp;
1586
- import pkg from "../package.json";
1587
- import {
1588
- CheckoutEvents,
1589
- InternalCheckoutEvents,
1590
- SessionNotFound,
1591
- SessionLoaded,
1592
- SessionUpdated,
1593
- SessionCancel,
1594
- SessionPaymentOnHold,
1595
- SessionPaymentAuthorized,
1596
- SessionPaymentError,
1597
- SessionLocked,
1598
- SessionLockFailed,
1599
- ActivePaymentProductType,
1600
- ValidateSession,
1601
- SessionValidationCallback,
1602
- SessionEvent,
1603
- ShowPopOutButton
1604
- } from "./checkout";
1605
- import { getPopOutUrl, getSessionUrl, windowLocationAssign } from "./url";
1606
- import { createIframeAsync } from "./createIframeAsync";
1607
- import {
1608
- subscribe,
1609
- SubscriptionHandler,
1610
- Subscription,
1611
- postSessionLock,
1612
- postSessionRefresh,
1613
- postActivePaymentProductType,
1614
- postValidationResult,
1615
- postSetLanguage,
1616
- postOpenPopOutEvent,
1617
- postClosePopOutEvent,
1618
- postValidatePopOutEvent,
1619
- postOpenPopOutFailedEvent,
1620
- } from "./subscribe";
1621
- import { createBackdrop, removeBackdrop, setBackdropLabels } from "./popOutBackdrop";
1622
- import { addPopOutButton, removePopOutButton, setPopOutButtonDisabled } from "./popOutButton";
1623
- import { openPopOut } from "./popOut";
1624
- import { Session } from "./session";
1625
- &nbsp;
1626
- export interface DinteroCheckoutInstance {
1627
- /**
1628
- * Remove iframe and all event listeners.
1629
- */
1630
- destroy: () =&gt; void;
1631
- iframe: HTMLIFrameElement;
1632
- language: string;
1633
- lockSession: () =&gt; Promise&lt;SessionEvent&gt;;
1634
- refreshSession: () =&gt; Promise&lt;SessionEvent&gt;;
1635
- setActivePaymentProductType: (paymentProductType: string) =&gt; void;
1636
- submitValidationResult: (result: SessionValidationCallback) =&gt; void;
1637
- options: InternalDinteroEmbedCheckoutOptions;
1638
- handlers: ({
1639
- handler: SubscriptionHandler;
1640
- eventTypes: InternalCheckoutEvents[];
1641
- } | {
1642
- handler: SubscriptionHandler;
1643
- eventTypes: CheckoutEvents[];
1644
- })[];
1645
- session: Session | undefined;
1646
- popOutWindow: Window | undefined;
1647
- }
1648
- &nbsp;
1649
- export interface DinteroCheckoutOptions {
1650
- sid: string;
1651
- endpoint?: string;
1652
- language?: string;
1653
- }
1654
- &nbsp;
1655
- export interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {
1656
- container: HTMLDivElement;
1657
- popOut?: boolean;
1658
- onPayment?: (
1659
- event: SessionPaymentAuthorized | SessionPaymentOnHold,
1660
- checkout: DinteroCheckoutInstance
1661
- ) =&gt; void;
1662
- /**
1663
- * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.
1664
- */
1665
- onPaymentAuthorized?: (
1666
- event: SessionPaymentAuthorized,
1667
- checkout: DinteroCheckoutInstance
1668
- ) =&gt; void;
1669
- onSession?: (
1670
- event: SessionLoaded | SessionUpdated,
1671
- checkout: DinteroCheckoutInstance
1672
- ) =&gt; void;
1673
- onPaymentError?: (
1674
- event: SessionPaymentError,
1675
- checkout: DinteroCheckoutInstance
1676
- ) =&gt; void;
1677
- onSessionCancel?: (
1678
- event: SessionCancel,
1679
- checkout: DinteroCheckoutInstance
1680
- ) =&gt; void;
1681
- onSessionNotFound?: (
1682
- event: SessionNotFound,
1683
- checkout: DinteroCheckoutInstance
1684
- ) =&gt; void;
1685
- onSessionLocked?: (
1686
- event: SessionLocked,
1687
- checkout: DinteroCheckoutInstance,
1688
- callback: () =&gt; void,
1689
- ) =&gt; void;
1690
- onSessionLockFailed?: (
1691
- event: SessionLockFailed,
1692
- checkout: DinteroCheckoutInstance
1693
- ) =&gt; void;
1694
- onActivePaymentType?: (
1695
- event: ActivePaymentProductType,
1696
- checkout: DinteroCheckoutInstance
1697
- ) =&gt; void;
1698
- onValidateSession?: (
1699
- event: ValidateSession,
1700
- checkout: DinteroCheckoutInstance,
1701
- callback: (result: SessionValidationCallback) =&gt; void,
1702
- ) =&gt; void;
1703
- }
1704
- &nbsp;
1705
- interface InternalDinteroEmbedCheckoutOptions extends DinteroEmbedCheckoutOptions {
1706
- innerContainer: HTMLDivElement;
1707
- }
1708
- &nbsp;
1709
- /**
1710
- * An event handler that navigates to the href in the event.
1711
- */
1712
- const followHref: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1713
- cleanUpPopOut(checkout);
1714
- <span class="missing-if-branch" title="else path not taken" >E</span>if (event.href) {
1715
- windowLocationAssign(event.href);
1716
- }
1717
- };
1718
- &nbsp;
1719
- /**
1720
- * An event handler that sets height of the iframe.
1721
- */
1722
- const setIframeHeight: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1723
- <span class="missing-if-branch" title="else path not taken" >E</span>if (event.height || <span class="branch-1 cbranch-no" title="branch not covered" >event.height === 0)</span> {
1724
- checkout.iframe.setAttribute(
1725
- "style",
1726
- `width:100%; height:${event.height}px;`
1727
- );
1728
- }
1729
- };
1730
- &nbsp;
1731
- /**
1732
- * An event handler that scrolls to the top of the iframe. This is useful when the user
1733
- * is navigated to another page.
1734
- */
1735
- const scrollToIframeTop: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1736
- try {
1737
- checkout.iframe.scrollIntoView({
1738
- block: 'start',
1739
- behavior: 'smooth',
1740
- });
1741
- } catch (e){
1742
- // Ignore error silently bug log it to the console.
1743
- <span class="cstat-no" title="statement not covered" > console.error(e);</span>
1744
- }
1745
- };
1746
- &nbsp;
1747
- /**
1748
- * An event handler that sets language in the iframe.
1749
- */
1750
- const setLanguage: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1751
- <span class="missing-if-branch" title="else path not taken" >E</span>if (event.language) {
1752
- checkout.language = event.language;
1753
- }
1754
- };
1755
- &nbsp;
1756
- /**
1757
- * Wrap function with try catch so an error in a single function won't short circuit other code in the current context.
1758
- */
1759
- const safelyInvoke = <span class="fstat-no" title="function not covered" >(f</span>n: () =&gt; void) =&gt; {
1760
- <span class="cstat-no" title="statement not covered" > try {</span>
1761
- <span class="cstat-no" title="statement not covered" > fn();</span>
1762
- } catch (e) {
1763
- <span class="cstat-no" title="statement not covered" > console.error(e);</span>
1764
- }
1765
- }
1766
- &nbsp;
1767
- /**
1768
- * Handle messages sendt to the SDK from the pop out.
1769
- */
1770
- const createPopOutMessageHandler = (source: Window, checkout: DinteroCheckoutInstance) =&gt; {
1771
- // Change language in embed if changed in pop out
1772
- const popOutChangedLanguageHandler = {
1773
- internalPopOutHandler: true,
1774
- eventTypes: [InternalCheckoutEvents.LanguageChanged],
1775
- handler: <span class="fstat-no" title="function not covered" >(e</span>ventData: any, checkout: DinteroCheckoutInstance) =&gt; {
1776
- // Tell the embedded checkout to change language.
1777
- <span class="cstat-no" title="statement not covered" > postSetLanguage(checkout.iframe, checkout.options.sid, eventData.language);</span>
1778
- }
1779
- };
1780
- &nbsp;
1781
- // Close pop out, and remove SDK rendered button when payment is completed.
1782
- const paymentCompletedEvents = [
1783
- CheckoutEvents.SessionCancel,
1784
- CheckoutEvents.SessionPaymentOnHold,
1785
- CheckoutEvents.SessionPaymentAuthorized,
1786
- CheckoutEvents.SessionPaymentError
1787
- ];
1788
- const popOutCompletedHandler = {
1789
- internalPopOutHandler: true,
1790
- eventTypes: paymentCompletedEvents,
1791
- handler: <span class="fstat-no" title="function not covered" >(e</span>ventData: any, checkout: DinteroCheckoutInstance) =&gt; {
1792
- <span class="cstat-no" title="statement not covered" > if (eventData.href) {</span>
1793
- // Remove open pop out button rendered by SDK
1794
- <span class="cstat-no" title="statement not covered" > removePopOutButton();</span>
1795
- &nbsp;
1796
- // Close checkout
1797
- <span class="cstat-no" title="statement not covered" > try {</span>
1798
- <span class="cstat-no" title="statement not covered" > source.close();</span>
1799
- } catch (e) {
1800
- <span class="cstat-no" title="statement not covered" > console.error(e);</span>
1801
- }
1802
- }
1803
- else {
1804
- <span class="cstat-no" title="statement not covered" > console.error('Payment Complete event missing href property');</span>
1805
- }
1806
- }
1807
- };
1808
- &nbsp;
1809
- // Listens to messages from pop out window and routes the events to dedicated handlers
1810
- const messageRouter = (event: MessageEvent) =&gt; {
1811
- // Check that we should handle the message
1812
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
1813
- event.source === source &amp;&amp;
1814
- <span class="branch-1 cbranch-no" title="branch not covered" > event.data.context === 'popOut' </span>&amp;&amp;
1815
- <span class="branch-2 cbranch-no" title="branch not covered" > event.data.sid === checkout.options.sid</span>
1816
- ) {
1817
- // Check if handler matches incoming event and trigger the handler if so.
1818
- <span class="cstat-no" title="statement not covered" > [</span>
1819
- // SDK events for managing the pop out flow.
1820
- popOutChangedLanguageHandler,
1821
- popOutCompletedHandler,
1822
- &nbsp;
1823
- // Events configured when the checkout was embedded.
1824
- ...checkout.handlers
1825
- ]
1826
- .forEach(<span class="fstat-no" title="function not covered" >handlerObject </span>=&gt; {
1827
- <span class="cstat-no" title="statement not covered" > if ((handlerObject.eventTypes as string[]).includes(event.data.type) &amp;&amp; handlerObject.handler) {</span>
1828
- // Invoking the handler function if the event type matches the handler.
1829
- <span class="cstat-no" title="statement not covered" > safelyInvoke(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1830
- <span class="cstat-no" title="statement not covered" > handlerObject.handler(event.data, checkout)</span>
1831
- })
1832
- }
1833
- });
1834
- }
1835
- };
1836
- // Add messageRouter event listener to the Pop Out
1837
- window.addEventListener('message', messageRouter);
1838
- &nbsp;
1839
- // Return unsubscribe function
1840
- return () =&gt; {
1841
- window.removeEventListener('message', messageRouter);
1842
- };
1843
- };
1844
- &nbsp;
1845
- /**
1846
- * Configures and shows the pop out with the payment options.
1847
- */
1848
- const showPopOut = async (event: ShowPopOutButton, checkout: DinteroCheckoutInstance) =&gt; {
1849
- const { close, focus, popOutWindow } = await openPopOut({
1850
- sid: checkout.options.sid,
1851
- endpoint: checkout.options.endpoint,
1852
- shouldCallValidateSession: Boolean(checkout.options.onValidateSession),
1853
- language: event.language,
1854
- onOpen: (popOutWindow: Window) =&gt; createPopOutMessageHandler(popOutWindow, checkout),
1855
- onClose: () =&gt; {
1856
- removeBackdrop();
1857
- postClosePopOutEvent(checkout.iframe, checkout.options.sid);
1858
- setPopOutButtonDisabled(false);
1859
- checkout.popOutWindow = undefined;
1860
- },
1861
- })
1862
- <span class="missing-if-branch" title="else path not taken" >E</span>if(popOutWindow){
1863
- postOpenPopOutEvent(checkout.iframe, checkout.options.sid);
1864
- // Add pop out window to checkout instance
1865
- checkout.popOutWindow = popOutWindow;
1866
- createBackdrop({ focus, close, event });
1867
- return true;
1868
- } else {
1869
- <span class="cstat-no" title="statement not covered" > postOpenPopOutFailedEvent(checkout.iframe, checkout.options.sid);</span>
1870
- <span class="cstat-no" title="statement not covered" > return false;</span>
1871
- }
1872
- }
1873
- &nbsp;
1874
- /**
1875
- * Create callback function for the client side validation flow. It allows the
1876
- * host application to validate the content of the payment session before the
1877
- * pop out is opened.
1878
- */
1879
- const createPopOutValidationCallback = <span class="fstat-no" title="function not covered" >(e</span>vent: ShowPopOutButton, checkout: DinteroCheckoutInstance) =&gt; {
1880
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >(r</span>esult: SessionValidationCallback) =&gt; {</span>
1881
- // Tell the embedded iframe about the validation result so it can show an error message if
1882
- // the validation failed.
1883
- <span class="cstat-no" title="statement not covered" > postValidationResult(checkout.iframe, checkout.options.sid, result);</span>
1884
- <span class="cstat-no" title="statement not covered" > if (result.success &amp;&amp; checkout.popOutWindow) {</span>
1885
- // Redirect user to session in pop out window
1886
- <span class="cstat-no" title="statement not covered" > checkout.popOutWindow.location.href = getPopOutUrl({</span>
1887
- sid: checkout.options.sid,
1888
- endpoint: checkout.options.endpoint,
1889
- shouldCallValidateSession: false,
1890
- language: event.language,
1891
- });
1892
- &nbsp;
1893
- } else {
1894
- // Close pop out
1895
- <span class="cstat-no" title="statement not covered" > if (checkout.popOutWindow) {</span>
1896
- <span class="cstat-no" title="statement not covered" > checkout.popOutWindow.close();</span>
1897
- }
1898
- // Log validation error to console log.
1899
- <span class="cstat-no" title="statement not covered" > console.error(result.clientValidationError);</span>
1900
- }
1901
- }
1902
- }
1903
- &nbsp;
1904
- /**
1905
- * Handle click event on the SDK rendered pop out button
1906
- */
1907
- const handlePopOutButtonClick = async (event: ShowPopOutButton, checkout: DinteroCheckoutInstance) =&gt; {
1908
- // Disable button while pop out is open
1909
- const opened = await showPopOut(event, checkout);
1910
- &nbsp;
1911
- <span class="missing-if-branch" title="if path not taken" >I</span>if (opened &amp;&amp; checkout.options.onValidateSession) {
1912
- // Let the host application validate the payment session before opening checkout.
1913
- &nbsp;
1914
- // Tell the embedded iframe that we are validating the session
1915
- <span class="cstat-no" title="statement not covered" > postValidatePopOutEvent(checkout.iframe, checkout.options.sid);</span>
1916
- &nbsp;
1917
- // Create callback function added to the SDK event and onValidateSession attributes
1918
- const <span class="cstat-no" title="statement not covered" >callback = createPopOutValidationCallback(event, checkout)</span>
1919
- &nbsp;
1920
- // Invoke onValidateSession function defined in checkout options
1921
- <span class="cstat-no" title="statement not covered" > try {</span>
1922
- <span class="cstat-no" title="statement not covered" > checkout.options.onValidateSession({</span>
1923
- type: CheckoutEvents.ValidateSession,
1924
- session: checkout.session,
1925
- callback
1926
- }, checkout, callback);
1927
- } catch (e) {
1928
- <span class="cstat-no" title="statement not covered" > console.error(e);</span>
1929
- <span class="cstat-no" title="statement not covered" > postValidationResult(checkout.iframe, checkout.options.sid, {</span>
1930
- success: false,
1931
- clientValidationError: 'Validation runtime error'
1932
- });
1933
- }
1934
- }
1935
- }
1936
- &nbsp;
1937
- /**
1938
- * Type guard for ShowPopOutButton
1939
- */
1940
- const isShowPopOutButton = (event: any): event is ShowPopOutButton =&gt; {
1941
- return event &amp;&amp; event.type === InternalCheckoutEvents.ShowPopOutButton;
1942
- }
1943
- &nbsp;
1944
- /**
1945
- * Display the SDK rendered pop out button on top of the embedded iframe
1946
- */
1947
- const handleShowButton: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1948
- <span class="missing-if-branch" title="else path not taken" >E</span>if (isShowPopOutButton(event)) {
1949
- addPopOutButton({
1950
- container: checkout.options.innerContainer,
1951
- label: event.openLabel,
1952
- top: event.top,
1953
- left: event.left,
1954
- right: event.right,
1955
- styles: event.styles,
1956
- disabled: event.disabled,
1957
- onClick: () =&gt; handlePopOutButtonClick(event, checkout)
1958
- });
1959
- setBackdropLabels(event);
1960
- }
1961
- };
1962
- &nbsp;
1963
- /**
1964
- * Remove the pop out button above the embedded iframe
1965
- */
1966
- const handleRemoveButton: SubscriptionHandler = (event: any, checkout: DinteroCheckoutInstance): void =&gt; {
1967
- <span class="missing-if-branch" title="else path not taken" >E</span>if (event.type === InternalCheckoutEvents.HidePopOutButton) {
1968
- removePopOutButton();
1969
- }
1970
- };
1971
- &nbsp;
1972
- const cleanUpPopOut = (checkout: DinteroCheckoutInstance) =&gt; {
1973
- // Ensures that the pop out is no longer open when the payment is completed or the checkout is destroyed.
1974
- removePopOutButton();
1975
- removeBackdrop();
1976
- if (checkout.popOutWindow) {
1977
- try {
1978
- checkout.popOutWindow.close();
1979
- // Pop out message handlers will be removed when the pop out window is closed
1980
- // via the interval created by openPopOut.
1981
- } catch (e) {
1982
- console.error(e);
1983
- }
1984
- }
1985
- }
1986
- &nbsp;
1987
- &nbsp;
1988
- /**
1989
- * Show a dintero payment session in an embedded iframe.
1990
- */
1991
- export const embed = async (
1992
- options: DinteroEmbedCheckoutOptions
1993
- ): Promise&lt;DinteroCheckoutInstance&gt; =&gt; {
1994
- // Create inner container to offset any styling on the container.
1995
- const innerContainer = document.createElement('div');
1996
- innerContainer.style.position = 'relative';
1997
- innerContainer.style['box-sizing'] = 'border-box';
1998
- &nbsp;
1999
- const internalOptions = {
2000
- endpoint: "https://checkout.dintero.com",
2001
- innerContainer: innerContainer,
2002
- ...options
2003
- };
2004
- const {
2005
- container,
2006
- sid,
2007
- language,
2008
- endpoint,
2009
- onSession,
2010
- onSessionCancel,
2011
- onPayment,
2012
- onPaymentAuthorized,
2013
- onPaymentError,
2014
- onSessionNotFound,
2015
- onSessionLocked,
2016
- onSessionLockFailed,
2017
- onActivePaymentType,
2018
- onValidateSession,
2019
- popOut
2020
- } = internalOptions;
2021
- &nbsp;
2022
- let checkout: DinteroCheckoutInstance | undefined;
2023
- const subscriptions: Subscription[] = [];
2024
- let has_delivered_final_event = false;
2025
- &nbsp;
2026
- // Create iframe
2027
- container.appendChild(innerContainer);
2028
- const { iframe, initiate } = createIframeAsync(
2029
- innerContainer,
2030
- endpoint,
2031
- getSessionUrl({
2032
- sid,
2033
- endpoint,
2034
- language,
2035
- ui: "inline",
2036
- shouldCallValidateSession: onValidateSession !== undefined,
2037
- popOut,
2038
- }),
2039
- );
2040
- &nbsp;
2041
- &nbsp;
2042
- /**
2043
- * Function that removes the iframe, pop out and all event listeners.
2044
- */
2045
- const destroy = () =&gt; {
2046
- cleanUpPopOut(checkout);
2047
- <span class="missing-if-branch" title="else path not taken" >E</span>if (iframe) {
2048
- if (internalOptions.popOut) {
2049
- // Try to remove backdrop if it exists
2050
- removeBackdrop();
2051
- }
2052
- subscriptions.forEach((sub) =&gt; sub.unsubscribe());
2053
- if (iframe.parentElement) {
2054
- innerContainer.removeChild(iframe);
2055
- }
2056
- }
2057
- if(innerContainer.parentElement){
2058
- container.removeChild(innerContainer);
2059
- }
2060
- };
2061
- &nbsp;
2062
- /**
2063
- * Turn an action into a promise by specifying resolve and
2064
- * reject events.
2065
- */
2066
- const promisifyAction = (action:()=&gt; void, resolveEvent:CheckoutEvents, rejectEvent:CheckoutEvents) =&gt; {
2067
- <span class="missing-if-branch" title="if path not taken" >I</span>if(!checkout){
2068
- <span class="cstat-no" title="statement not covered" > throw new Error("Unable to create action promise: checkout is undefined");</span>
2069
- }
2070
- return new Promise&lt;SessionEvent&gt;((resolve, reject)=&gt; {
2071
- const eventSubscriptions:Subscription[] = [];
2072
- eventSubscriptions.push(subscribe({
2073
- sid,
2074
- endpoint,
2075
- handler: (sessionEvent) =&gt; {
2076
- eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
2077
- resolve(sessionEvent);
2078
- },
2079
- eventTypes: [resolveEvent],
2080
- checkout,
2081
- source: checkout.iframe.contentWindow,
2082
- }));
2083
- eventSubscriptions.push(subscribe({
2084
- sid,
2085
- endpoint,
2086
- handler: () =&gt; {
2087
- eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
2088
- reject(`Received unexpected event: ${rejectEvent}`);
2089
- },
2090
- eventTypes: [rejectEvent],
2091
- checkout,
2092
- source: checkout.iframe.contentWindow,
2093
- }));
2094
- action();
2095
- });
2096
- }
2097
- &nbsp;
2098
- const lockSession = () =&gt; {
2099
- return promisifyAction(
2100
- ()=&gt;{postSessionLock(iframe, sid)},
2101
- CheckoutEvents.SessionLocked,
2102
- CheckoutEvents.SessionLockFailed
2103
- );
2104
- };
2105
- &nbsp;
2106
- const refreshSession = () =&gt; {
2107
- return promisifyAction(
2108
- ()=&gt;{postSessionRefresh(iframe, sid)},
2109
- CheckoutEvents.SessionUpdated,
2110
- CheckoutEvents.SessionNotFound
2111
- );
2112
- };
2113
- &nbsp;
2114
- const setActivePaymentProductType = <span class="fstat-no" title="function not covered" >(p</span>aymentProductType?:string) =&gt; {
2115
- <span class="cstat-no" title="statement not covered" > postActivePaymentProductType(iframe, sid, paymentProductType);</span>
2116
- };
2117
- &nbsp;
2118
- const submitValidationResult = <span class="fstat-no" title="function not covered" >(r</span>esult: SessionValidationCallback) =&gt; {
2119
- <span class="cstat-no" title="statement not covered" > postValidationResult(iframe, sid, result);</span>
2120
- }
2121
- &nbsp;
2122
- /**
2123
- * Internal result event message handler wrapper, to replace the content of the iframe with a success/or
2124
- * error message. Only used when the embed function in the SDK has a dedicated handler for onPayment, onError etc.
2125
- * If no custom handler is set the followHref handler is used instead.
2126
- */
2127
- const handleWithResult = (
2128
- sid: string,
2129
- endpoint: string,
2130
- handler: SubscriptionHandler
2131
- ): SubscriptionHandler =&gt; {
2132
- return (event: any, checkout: DinteroCheckoutInstance) =&gt; {
2133
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!has_delivered_final_event) {
2134
- has_delivered_final_event = true;
2135
- cleanUpPopOut(checkout);
2136
- &nbsp;
2137
- const eventKeys = [
2138
- "sid",
2139
- "merchant_reference",
2140
- "transaction_id",
2141
- "error",
2142
- ];
2143
- const pairs = eventKeys.map((key) =&gt; [key, event[key]]);
2144
- if (event.type === CheckoutEvents.SessionCancel &amp;&amp; !event.error) {
2145
- pairs.push(["error", "cancelled"]);
2146
- }
2147
- pairs.push(["language", checkout.language]);
2148
- pairs.push(["sdk", pkg.version]);
2149
- const urlQuery = pairs
2150
- .filter(([key, value]) =&gt; value)
2151
- .map(([key, value]) =&gt; `${key}=${value}`)
2152
- .join("&amp;");
2153
- checkout.iframe.setAttribute(
2154
- "src",
2155
- `${endpoint}/embedResult/?${urlQuery}`
2156
- );
2157
- handler(event, checkout);
2158
- };
2159
- }
2160
- };
2161
- &nbsp;
2162
- &nbsp;
2163
- const wrappedOnValidateSession = (
2164
- event: ValidateSession,
2165
- checkout: DinteroCheckoutInstance,
2166
- ) =&gt; {
2167
- if (onValidateSession) {
2168
- try {
2169
- onValidateSession({
2170
- ...event,
2171
- callback: submitValidationResult
2172
- }, checkout, submitValidationResult);
2173
- } catch (e) {
2174
- <span class="cstat-no" title="statement not covered" > console.error(e);</span>
2175
- <span class="cstat-no" title="statement not covered" > submitValidationResult({</span>
2176
- success: false,
2177
- clientValidationError: "Validation runtime error"
2178
- })
2179
- }
2180
- }
2181
- }
2182
- &nbsp;
2183
- const wrappedOnSessionLocked = (
2184
- event: SessionLocked,
2185
- checkout: DinteroCheckoutInstance,
2186
- ) =&gt; {
2187
- if (onSessionLocked) {
2188
- onSessionLocked(event, checkout, refreshSession);
2189
- }
2190
- }
2191
- &nbsp;
2192
- const wrappedOnLoadedOrUpdated = (
2193
- event: SessionLoaded | SessionUpdated,
2194
- checkout: DinteroCheckoutInstance,
2195
- ) =&gt; {
2196
- // Update the checkout instance to include the session object
2197
- checkout.session = event.session;
2198
- if (onSession) {
2199
- onSession(event, checkout);
2200
- }
2201
- }
2202
- &nbsp;
2203
- // Add event handlers (or in some cases add a fallback href handler).
2204
- const handlers = [
2205
- {
2206
- handler: setLanguage,
2207
- eventTypes: [InternalCheckoutEvents.LanguageChanged],
2208
- },
2209
- {
2210
- handler: setIframeHeight,
2211
- eventTypes: [InternalCheckoutEvents.HeightChanged],
2212
- },
2213
- {
2214
- handler: scrollToIframeTop,
2215
- eventTypes: [InternalCheckoutEvents.ScrollToTop],
2216
- },
2217
- {
2218
- handler: wrappedOnLoadedOrUpdated as SubscriptionHandler | undefined,
2219
- eventTypes: [
2220
- CheckoutEvents.SessionLoaded,
2221
- CheckoutEvents.SessionUpdated,
2222
- ],
2223
- },
2224
- {
2225
- eventTypes: [CheckoutEvents.SessionPaymentOnHold],
2226
- handler: onPayment
2227
- ? handleWithResult(sid, endpoint, onPayment)
2228
- : followHref,
2229
- },
2230
- {
2231
- eventTypes: [CheckoutEvents.SessionPaymentAuthorized],
2232
- handler:
2233
- onPaymentAuthorized || onPayment
2234
- ? handleWithResult(
2235
- sid,
2236
- endpoint,
2237
- onPaymentAuthorized || onPayment
2238
- )
2239
- : followHref,
2240
- },
2241
- {
2242
- handler: onSessionCancel
2243
- ? handleWithResult(sid, endpoint, onSessionCancel)
2244
- : followHref,
2245
- eventTypes: [CheckoutEvents.SessionCancel],
2246
- },
2247
- {
2248
- handler: onPaymentError
2249
- ? handleWithResult(sid, endpoint, onPaymentError)
2250
- : followHref,
2251
- eventTypes: [CheckoutEvents.SessionPaymentError],
2252
- },
2253
- {
2254
- handler: onSessionNotFound as SubscriptionHandler | undefined,
2255
- eventTypes: [CheckoutEvents.SessionNotFound],
2256
- },
2257
- {
2258
- handler: wrappedOnSessionLocked as SubscriptionHandler | undefined,
2259
- eventTypes: [CheckoutEvents.SessionLocked],
2260
- },
2261
- {
2262
- handler: onSessionLockFailed as SubscriptionHandler | undefined,
2263
- eventTypes: [CheckoutEvents.SessionLockFailed],
2264
- },
2265
- {
2266
- handler: onActivePaymentType as SubscriptionHandler | undefined,
2267
- eventTypes: [CheckoutEvents.ActivePaymentProductType],
2268
- },
2269
- {
2270
- handler: wrappedOnValidateSession as SubscriptionHandler | undefined,
2271
- eventTypes: [CheckoutEvents.ValidateSession],
2272
- },
2273
- {
2274
- handler: handleShowButton as SubscriptionHandler,
2275
- eventTypes: [InternalCheckoutEvents.ShowPopOutButton],
2276
- },
2277
- {
2278
- handler: handleRemoveButton as SubscriptionHandler,
2279
- eventTypes: [InternalCheckoutEvents.HidePopOutButton],
2280
- },
2281
- ];
2282
- // Create checkout object that wraps the destroy function.
2283
- checkout = {
2284
- destroy,
2285
- iframe,
2286
- language,
2287
- lockSession,
2288
- refreshSession,
2289
- setActivePaymentProductType,
2290
- submitValidationResult,
2291
- options: internalOptions,
2292
- handlers,
2293
- session: undefined,
2294
- popOutWindow: undefined,
2295
- };
2296
- &nbsp;
2297
- handlers.forEach(({ handler, eventTypes }) =&gt; {
2298
- if (handler) {
2299
- subscriptions.push(
2300
- subscribe({
2301
- sid,
2302
- endpoint,
2303
- handler,
2304
- eventTypes,
2305
- checkout,
2306
- source: checkout.iframe.contentWindow
2307
- })
2308
- );
2309
- }
2310
- });
2311
- &nbsp;
2312
- // Add iframe to DOM
2313
- await initiate();
2314
- // Return object with function to destroy the checkout.
2315
- return checkout;
2316
- };
2317
- &nbsp;
2318
- &nbsp;
2319
- /**
2320
- * Redirect the customer to a payment session in the Dintero Checkout.
2321
- */
2322
- export const redirect = (options: DinteroCheckoutOptions) =&gt; {
2323
- const {
2324
- sid,
2325
- language,
2326
- endpoint = "https://checkout.dintero.com"<span class="branch-1 cbranch-no" title="branch not covered" >,</span>
2327
- } = options;
2328
- // Redirect the current browser window to the checkout session url.
2329
- windowLocationAssign(getSessionUrl({ sid, endpoint, language, shouldCallValidateSession: false }));
2330
- };
2331
- &nbsp;
2332
- export type {
2333
- SessionNotFound,
2334
- SessionLoaded,
2335
- SessionUpdated,
2336
- SessionCancel,
2337
- SessionPaymentOnHold,
2338
- SessionPaymentAuthorized,
2339
- SessionPaymentError,
2340
- SessionLocked,
2341
- SessionLockFailed,
2342
- ActivePaymentProductType,
2343
- ValidateSession,
2344
- SessionValidationCallback,
2345
- } from "./checkout";
2346
- &nbsp;</pre></td></tr></table></pre>
2347
-
2348
- <div class='push'></div><!-- for sticky footer -->
2349
- </div><!-- /wrapper -->
2350
- <div class='footer quiet pad2 space-top1 center small'>
2351
- Code coverage generated by
2352
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
2353
- at Thu Oct 05 2023 22:10:07 GMT+0000 (Coordinated Universal Time)
2354
- </div>
2355
- </div>
2356
- <script src="prettify.js"></script>
2357
- <script>
2358
- window.onload = function () {
2359
- prettyPrint();
2360
- };
2361
- </script>
2362
- <script src="sorter.js"></script>
2363
- <script src="block-navigation.js"></script>
2364
- </body>
2365
- </html>
2366
-