@basementuniverse/kanbn 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +2 -0
  2. package/coverage/base.css +224 -0
  3. package/coverage/block-navigation.js +87 -0
  4. package/coverage/coverage-summary.json +31 -0
  5. package/coverage/favicon.png +0 -0
  6. package/coverage/index.html +146 -0
  7. package/coverage/kanbn/index.html +116 -0
  8. package/coverage/kanbn/index.js.html +217 -0
  9. package/coverage/kanbn/src/board.js.html +646 -0
  10. package/coverage/kanbn/src/controller/add.js.html +1729 -0
  11. package/coverage/kanbn/src/controller/archive.js.html +277 -0
  12. package/coverage/kanbn/src/controller/board.js.html +217 -0
  13. package/coverage/kanbn/src/controller/burndown.js.html +607 -0
  14. package/coverage/kanbn/src/controller/comment.js.html +397 -0
  15. package/coverage/kanbn/src/controller/edit.js.html +2920 -0
  16. package/coverage/kanbn/src/controller/find.js.html +1597 -0
  17. package/coverage/kanbn/src/controller/gantt.js.html +1342 -0
  18. package/coverage/kanbn/src/controller/help.js.html +115 -0
  19. package/coverage/kanbn/src/controller/history.js.html +400 -0
  20. package/coverage/kanbn/src/controller/index.html +431 -0
  21. package/coverage/kanbn/src/controller/init.js.html +511 -0
  22. package/coverage/kanbn/src/controller/move.js.html +514 -0
  23. package/coverage/kanbn/src/controller/remove-all.js.html +226 -0
  24. package/coverage/kanbn/src/controller/remove.js.html +307 -0
  25. package/coverage/kanbn/src/controller/rename.js.html +397 -0
  26. package/coverage/kanbn/src/controller/restore.js.html +268 -0
  27. package/coverage/kanbn/src/controller/sort.js.html +1318 -0
  28. package/coverage/kanbn/src/controller/sprint.js.html +361 -0
  29. package/coverage/kanbn/src/controller/status.js.html +310 -0
  30. package/coverage/kanbn/src/controller/task.js.html +244 -0
  31. package/coverage/kanbn/src/controller/validate.js.html +367 -0
  32. package/coverage/kanbn/src/controller/version.js.html +100 -0
  33. package/coverage/kanbn/src/index.html +191 -0
  34. package/coverage/kanbn/src/main.js.html +9787 -0
  35. package/coverage/kanbn/src/parse-index.js.html +1063 -0
  36. package/coverage/kanbn/src/parse-markdown.js.html +202 -0
  37. package/coverage/kanbn/src/parse-task.js.html +2191 -0
  38. package/coverage/kanbn/src/utility.js.html +616 -0
  39. package/coverage/lcov.info +11837 -0
  40. package/coverage/prettify.css +1 -0
  41. package/coverage/prettify.js +2 -0
  42. package/coverage/sort-arrow-sprite.png +0 -0
  43. package/coverage/sorter.js +210 -0
  44. package/coverage/tmp/coverage-214292-1787777191526-0.json +1 -0
  45. package/coverage/tmp/coverage-214293-1787777184569-0.json +1 -0
  46. package/docs/advanced-configuration.md +2 -0
  47. package/docs/commands/add.txt +10 -0
  48. package/docs/commands/board.txt +3 -1
  49. package/docs/commands/burndown.txt +2 -4
  50. package/docs/commands/edit.txt +22 -0
  51. package/docs/commands/find.txt +45 -1
  52. package/docs/commands/help.txt +1 -0
  53. package/docs/commands/move.txt +1 -1
  54. package/docs/commands/sort.txt +13 -2
  55. package/docs/commands/validate.txt +12 -0
  56. package/docs/filtering-and-sorting.md +218 -0
  57. package/docs/index-structure.md +68 -19
  58. package/docs/index.md +26 -2
  59. package/docs/migration-2.0.md +92 -0
  60. package/docs/quick-start.md +37 -1
  61. package/docs/task-structure.md +12 -3
  62. package/docs/views.md +229 -0
  63. package/example/README.md +70 -0
  64. package/example/advanced/.kanbn/index.md +26 -0
  65. package/example/advanced/.kanbn/tasks/add-rate-limiting.md +18 -0
  66. package/example/advanced/.kanbn/tasks/add-sso-support.md +15 -0
  67. package/example/advanced/.kanbn/tasks/migrate-to-new-cdn.md +14 -0
  68. package/example/advanced/.kanbn/tasks/refresh-marketing-site.md +14 -0
  69. package/example/advanced/.kanbn/tasks/rotate-api-keys.md +15 -0
  70. package/example/advanced/.kanbn/tasks/split-billing-service.md +17 -0
  71. package/example/advanced/.kanbn/tasks/upgrade-node-runtime.md +19 -0
  72. package/example/advanced/kanbn.yml +59 -0
  73. package/example/views/.kanbn/index.md +140 -0
  74. package/example/views/.kanbn/tasks/add-audit-log-export.md +18 -0
  75. package/example/views/.kanbn/tasks/add-dark-mode-toggle.md +16 -0
  76. package/example/views/.kanbn/tasks/build-webhook-retry-queue.md +15 -0
  77. package/example/views/.kanbn/tasks/fix-avatar-upload-crash.md +13 -0
  78. package/example/views/.kanbn/tasks/fix-expired-session-redirect.md +15 -0
  79. package/example/views/.kanbn/tasks/investigate-offline-mode.md +12 -0
  80. package/example/views/.kanbn/tasks/rewrite-search-indexer.md +12 -0
  81. package/example/views/.kanbn/tasks/tidy-up-settings-copy.md +12 -0
  82. package/package.json +4 -3
  83. package/routes/edit.json +2 -1
  84. package/routes/validate.json +4 -2
  85. package/skills/kanbn-plan/references/index-structure.md +1 -0
  86. package/skills/kanbn-plan/references/task-structure.md +2 -0
  87. package/src/board.js +1 -0
  88. package/src/controller/board.js +6 -0
  89. package/src/controller/edit.js +65 -12
  90. package/src/controller/gantt.js +46 -1
  91. package/src/controller/status.js +12 -0
  92. package/src/controller/task.js +1 -1
  93. package/src/controller/validate.js +78 -15
  94. package/src/main.js +324 -152
  95. package/src/parse-index.js +3 -0
  96. package/src/parse-markdown.js +3 -1
  97. package/src/parse-task.js +28 -1
  98. package/src/utility.js +26 -1
  99. /package/example/{.kanbn → basic/.kanbn}/index.md +0 -0
  100. /package/example/{.kanbn → basic/.kanbn}/tasks/add-basic-activity-feed.md +0 -0
  101. /package/example/{.kanbn → basic/.kanbn}/tasks/add-passwordless-login-option.md +0 -0
  102. /package/example/{.kanbn → basic/.kanbn}/tasks/add-usage-alert-email-thresholds.md +0 -0
  103. /package/example/{.kanbn → basic/.kanbn}/tasks/build-email-template-system.md +0 -0
  104. /package/example/{.kanbn → basic/.kanbn}/tasks/build-invoice-download-endpoint.md +0 -0
  105. /package/example/{.kanbn → basic/.kanbn}/tasks/build-tenant-settings-page.md +0 -0
  106. /package/example/{.kanbn → basic/.kanbn}/tasks/create-organization-switcher.md +0 -0
  107. /package/example/{.kanbn → basic/.kanbn}/tasks/create-sandbox-environment-provisioner.md +0 -0
  108. /package/example/{.kanbn → basic/.kanbn}/tasks/create-self-serve-cancellation-flow.md +0 -0
  109. /package/example/{.kanbn → basic/.kanbn}/tasks/define-product-pricing-strategy.md +0 -0
  110. /package/example/{.kanbn → basic/.kanbn}/tasks/design-onboarding-checklist.md +0 -0
  111. /package/example/{.kanbn → basic/.kanbn}/tasks/design-team-invite-expiry-flow.md +0 -0
  112. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-data-retention-policy-jobs.md +0 -0
  113. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-feature-flags-foundation.md +0 -0
  114. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-project-creation-wizard.md +0 -0
  115. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-stripe-webhook-signature-check.md +0 -0
  116. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-team-permissions-ui.md +0 -0
  117. /package/example/{.kanbn → basic/.kanbn}/tasks/implement-user-signup-and-login.md +0 -0
  118. /package/example/{.kanbn → basic/.kanbn}/tasks/integrate-crm-lead-sync.md +0 -0
  119. /package/example/{.kanbn → basic/.kanbn}/tasks/legal-review-terms-and-privacy.md +0 -0
  120. /package/example/{.kanbn → basic/.kanbn}/tasks/migrate-legacy-events-to-new-schema.md +0 -0
  121. /package/example/{.kanbn → basic/.kanbn}/tasks/optimize-dashboard-first-load.md +0 -0
  122. /package/example/{.kanbn → basic/.kanbn}/tasks/prototype-report-export-scheduler.md +0 -0
  123. /package/example/{.kanbn → basic/.kanbn}/tasks/publish-internal-qa-checklist.md +0 -0
  124. /package/example/{.kanbn → basic/.kanbn}/tasks/setup-ci-pipeline.md +0 -0
@@ -0,0 +1,2920 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for kanbn/src/controller/edit.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">kanbn/src/controller</a> edit.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">89.41% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>845/945</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">83.15% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>153/184</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">92.85% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>26/28</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">89.41% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>845/945</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
1012
+ <span class="cline-any cline-yes">24x</span>
1013
+ <span class="cline-any cline-yes">24x</span>
1014
+ <span class="cline-any cline-yes">24x</span>
1015
+ <span class="cline-any cline-yes">24x</span>
1016
+ <span class="cline-any cline-yes">24x</span>
1017
+ <span class="cline-any cline-yes">24x</span>
1018
+ <span class="cline-any cline-yes">24x</span>
1019
+ <span class="cline-any cline-yes">24x</span>
1020
+ <span class="cline-any cline-yes">24x</span>
1021
+ <span class="cline-any cline-yes">24x</span>
1022
+ <span class="cline-any cline-yes">24x</span>
1023
+ <span class="cline-any cline-yes">24x</span>
1024
+ <span class="cline-any cline-yes">24x</span>
1025
+ <span class="cline-any cline-yes">24x</span>
1026
+ <span class="cline-any cline-yes">24x</span>
1027
+ <span class="cline-any cline-yes">24x</span>
1028
+ <span class="cline-any cline-yes">24x</span>
1029
+ <span class="cline-any cline-yes">24x</span>
1030
+ <span class="cline-any cline-yes">22x</span>
1031
+ <span class="cline-any cline-yes">22x</span>
1032
+ <span class="cline-any cline-yes">22x</span>
1033
+ <span class="cline-any cline-yes">22x</span>
1034
+ <span class="cline-any cline-yes">20x</span>
1035
+ <span class="cline-any cline-yes">22x</span>
1036
+ <span class="cline-any cline-yes">22x</span>
1037
+ <span class="cline-any cline-yes">22x</span>
1038
+ <span class="cline-any cline-yes">22x</span>
1039
+ <span class="cline-any cline-no">&nbsp;</span>
1040
+ <span class="cline-any cline-yes">22x</span>
1041
+ <span class="cline-any cline-yes">22x</span>
1042
+ <span class="cline-any cline-yes">22x</span>
1043
+ <span class="cline-any cline-yes">22x</span>
1044
+ <span class="cline-any cline-no">&nbsp;</span>
1045
+ <span class="cline-any cline-yes">22x</span>
1046
+ <span class="cline-any cline-yes">22x</span>
1047
+ <span class="cline-any cline-yes">22x</span>
1048
+ <span class="cline-any cline-yes">22x</span>
1049
+ <span class="cline-any cline-yes">21x</span>
1050
+ <span class="cline-any cline-yes">22x</span>
1051
+ <span class="cline-any cline-yes">22x</span>
1052
+ <span class="cline-any cline-yes">22x</span>
1053
+ <span class="cline-any cline-yes">22x</span>
1054
+ <span class="cline-any cline-yes">22x</span>
1055
+ <span class="cline-any cline-yes">22x</span>
1056
+ <span class="cline-any cline-yes">22x</span>
1057
+ <span class="cline-any cline-yes">22x</span>
1058
+ <span class="cline-any cline-yes">22x</span>
1059
+ <span class="cline-any cline-yes">1x</span>
1060
+ <span class="cline-any cline-yes">1x</span>
1061
+ <span class="cline-any cline-yes">21x</span>
1062
+ <span class="cline-any cline-yes">22x</span>
1063
+ <span class="cline-any cline-yes">22x</span>
1064
+ <span class="cline-any cline-yes">22x</span>
1065
+ <span class="cline-any cline-yes">22x</span>
1066
+ <span class="cline-any cline-yes">22x</span>
1067
+ <span class="cline-any cline-yes">22x</span>
1068
+ <span class="cline-any cline-yes">22x</span>
1069
+ <span class="cline-any cline-yes">22x</span>
1070
+ <span class="cline-any cline-yes">22x</span>
1071
+ <span class="cline-any cline-yes">22x</span>
1072
+ <span class="cline-any cline-yes">22x</span>
1073
+ <span class="cline-any cline-yes">22x</span>
1074
+ <span class="cline-any cline-yes">22x</span>
1075
+ <span class="cline-any cline-yes">22x</span>
1076
+ <span class="cline-any cline-yes">22x</span>
1077
+ <span class="cline-any cline-yes">22x</span>
1078
+ <span class="cline-any cline-yes">22x</span>
1079
+ <span class="cline-any cline-yes">22x</span>
1080
+ <span class="cline-any cline-yes">22x</span>
1081
+ <span class="cline-any cline-yes">22x</span>
1082
+ <span class="cline-any cline-yes">22x</span>
1083
+ <span class="cline-any cline-yes">22x</span>
1084
+ <span class="cline-any cline-yes">22x</span>
1085
+ <span class="cline-any cline-yes">22x</span>
1086
+ <span class="cline-any cline-yes">22x</span>
1087
+ <span class="cline-any cline-yes">22x</span>
1088
+ <span class="cline-any cline-yes">22x</span>
1089
+ <span class="cline-any cline-yes">22x</span>
1090
+ <span class="cline-any cline-yes">22x</span>
1091
+ <span class="cline-any cline-yes">22x</span>
1092
+ <span class="cline-any cline-yes">22x</span>
1093
+ <span class="cline-any cline-yes">22x</span>
1094
+ <span class="cline-any cline-yes">22x</span>
1095
+ <span class="cline-any cline-yes">22x</span>
1096
+ <span class="cline-any cline-yes">22x</span>
1097
+ <span class="cline-any cline-yes">22x</span>
1098
+ <span class="cline-any cline-yes">22x</span>
1099
+ <span class="cline-any cline-yes">22x</span>
1100
+ <span class="cline-any cline-yes">22x</span>
1101
+ <span class="cline-any cline-yes">22x</span>
1102
+ <span class="cline-any cline-yes">22x</span>
1103
+ <span class="cline-any cline-yes">22x</span>
1104
+ <span class="cline-any cline-yes">22x</span>
1105
+ <span class="cline-any cline-yes">22x</span>
1106
+ <span class="cline-any cline-yes">22x</span>
1107
+ <span class="cline-any cline-yes">22x</span>
1108
+ <span class="cline-any cline-yes">22x</span>
1109
+ <span class="cline-any cline-yes">22x</span>
1110
+ <span class="cline-any cline-yes">22x</span>
1111
+ <span class="cline-any cline-yes">22x</span>
1112
+ <span class="cline-any cline-yes">22x</span>
1113
+ <span class="cline-any cline-yes">22x</span>
1114
+ <span class="cline-any cline-yes">22x</span>
1115
+ <span class="cline-any cline-yes">22x</span>
1116
+ <span class="cline-any cline-yes">22x</span>
1117
+ <span class="cline-any cline-yes">22x</span>
1118
+ <span class="cline-any cline-yes">22x</span>
1119
+ <span class="cline-any cline-yes">22x</span>
1120
+ <span class="cline-any cline-yes">22x</span>
1121
+ <span class="cline-any cline-yes">22x</span>
1122
+ <span class="cline-any cline-yes">22x</span>
1123
+ <span class="cline-any cline-yes">22x</span>
1124
+ <span class="cline-any cline-yes">22x</span>
1125
+ <span class="cline-any cline-yes">22x</span>
1126
+ <span class="cline-any cline-yes">22x</span>
1127
+ <span class="cline-any cline-yes">22x</span>
1128
+ <span class="cline-any cline-yes">22x</span>
1129
+ <span class="cline-any cline-yes">22x</span>
1130
+ <span class="cline-any cline-yes">22x</span>
1131
+ <span class="cline-any cline-yes">22x</span>
1132
+ <span class="cline-any cline-yes">22x</span>
1133
+ <span class="cline-any cline-yes">22x</span>
1134
+ <span class="cline-any cline-yes">22x</span>
1135
+ <span class="cline-any cline-yes">22x</span>
1136
+ <span class="cline-any cline-yes">22x</span>
1137
+ <span class="cline-any cline-yes">22x</span>
1138
+ <span class="cline-any cline-yes">22x</span>
1139
+ <span class="cline-any cline-yes">22x</span>
1140
+ <span class="cline-any cline-yes">22x</span>
1141
+ <span class="cline-any cline-yes">22x</span>
1142
+ <span class="cline-any cline-yes">22x</span>
1143
+ <span class="cline-any cline-yes">22x</span>
1144
+ <span class="cline-any cline-yes">22x</span>
1145
+ <span class="cline-any cline-yes">22x</span>
1146
+ <span class="cline-any cline-yes">22x</span>
1147
+ <span class="cline-any cline-yes">22x</span>
1148
+ <span class="cline-any cline-yes">22x</span>
1149
+ <span class="cline-any cline-yes">22x</span>
1150
+ <span class="cline-any cline-yes">22x</span>
1151
+ <span class="cline-any cline-yes">22x</span>
1152
+ <span class="cline-any cline-yes">22x</span>
1153
+ <span class="cline-any cline-yes">22x</span>
1154
+ <span class="cline-any cline-yes">22x</span>
1155
+ <span class="cline-any cline-yes">22x</span>
1156
+ <span class="cline-any cline-yes">22x</span>
1157
+ <span class="cline-any cline-yes">22x</span>
1158
+ <span class="cline-any cline-yes">22x</span>
1159
+ <span class="cline-any cline-yes">22x</span>
1160
+ <span class="cline-any cline-yes">22x</span>
1161
+ <span class="cline-any cline-yes">22x</span>
1162
+ <span class="cline-any cline-yes">22x</span>
1163
+ <span class="cline-any cline-yes">22x</span>
1164
+ <span class="cline-any cline-yes">22x</span>
1165
+ <span class="cline-any cline-yes">22x</span>
1166
+ <span class="cline-any cline-yes">22x</span>
1167
+ <span class="cline-any cline-yes">22x</span>
1168
+ <span class="cline-any cline-yes">22x</span>
1169
+ <span class="cline-any cline-yes">22x</span>
1170
+ <span class="cline-any cline-yes">22x</span>
1171
+ <span class="cline-any cline-yes">22x</span>
1172
+ <span class="cline-any cline-yes">22x</span>
1173
+ <span class="cline-any cline-yes">22x</span>
1174
+ <span class="cline-any cline-yes">22x</span>
1175
+ <span class="cline-any cline-yes">22x</span>
1176
+ <span class="cline-any cline-yes">22x</span>
1177
+ <span class="cline-any cline-yes">22x</span>
1178
+ <span class="cline-any cline-yes">22x</span>
1179
+ <span class="cline-any cline-yes">22x</span>
1180
+ <span class="cline-any cline-yes">22x</span>
1181
+ <span class="cline-any cline-yes">22x</span>
1182
+ <span class="cline-any cline-yes">22x</span>
1183
+ <span class="cline-any cline-yes">22x</span>
1184
+ <span class="cline-any cline-yes">22x</span>
1185
+ <span class="cline-any cline-yes">22x</span>
1186
+ <span class="cline-any cline-yes">22x</span>
1187
+ <span class="cline-any cline-yes">22x</span>
1188
+ <span class="cline-any cline-yes">22x</span>
1189
+ <span class="cline-any cline-yes">22x</span>
1190
+ <span class="cline-any cline-yes">22x</span>
1191
+ <span class="cline-any cline-yes">22x</span>
1192
+ <span class="cline-any cline-yes">22x</span>
1193
+ <span class="cline-any cline-yes">22x</span>
1194
+ <span class="cline-any cline-yes">22x</span>
1195
+ <span class="cline-any cline-yes">22x</span>
1196
+ <span class="cline-any cline-yes">22x</span>
1197
+ <span class="cline-any cline-yes">22x</span>
1198
+ <span class="cline-any cline-yes">22x</span>
1199
+ <span class="cline-any cline-yes">22x</span>
1200
+ <span class="cline-any cline-yes">22x</span>
1201
+ <span class="cline-any cline-yes">22x</span>
1202
+ <span class="cline-any cline-yes">22x</span>
1203
+ <span class="cline-any cline-yes">22x</span>
1204
+ <span class="cline-any cline-yes">22x</span>
1205
+ <span class="cline-any cline-yes">22x</span>
1206
+ <span class="cline-any cline-yes">22x</span>
1207
+ <span class="cline-any cline-yes">22x</span>
1208
+ <span class="cline-any cline-yes">22x</span>
1209
+ <span class="cline-any cline-yes">22x</span>
1210
+ <span class="cline-any cline-yes">22x</span>
1211
+ <span class="cline-any cline-yes">22x</span>
1212
+ <span class="cline-any cline-yes">22x</span>
1213
+ <span class="cline-any cline-yes">22x</span>
1214
+ <span class="cline-any cline-yes">22x</span>
1215
+ <span class="cline-any cline-yes">22x</span>
1216
+ <span class="cline-any cline-yes">22x</span>
1217
+ <span class="cline-any cline-yes">22x</span>
1218
+ <span class="cline-any cline-yes">22x</span>
1219
+ <span class="cline-any cline-yes">22x</span>
1220
+ <span class="cline-any cline-yes">22x</span>
1221
+ <span class="cline-any cline-yes">22x</span>
1222
+ <span class="cline-any cline-yes">22x</span>
1223
+ <span class="cline-any cline-yes">22x</span>
1224
+ <span class="cline-any cline-yes">22x</span>
1225
+ <span class="cline-any cline-yes">22x</span>
1226
+ <span class="cline-any cline-yes">22x</span>
1227
+ <span class="cline-any cline-yes">22x</span>
1228
+ <span class="cline-any cline-yes">22x</span>
1229
+ <span class="cline-any cline-yes">22x</span>
1230
+ <span class="cline-any cline-yes">22x</span>
1231
+ <span class="cline-any cline-yes">22x</span>
1232
+ <span class="cline-any cline-yes">22x</span>
1233
+ <span class="cline-any cline-yes">22x</span>
1234
+ <span class="cline-any cline-yes">22x</span>
1235
+ <span class="cline-any cline-yes">22x</span>
1236
+ <span class="cline-any cline-yes">22x</span>
1237
+ <span class="cline-any cline-yes">22x</span>
1238
+ <span class="cline-any cline-yes">22x</span>
1239
+ <span class="cline-any cline-yes">22x</span>
1240
+ <span class="cline-any cline-yes">22x</span>
1241
+ <span class="cline-any cline-yes">22x</span>
1242
+ <span class="cline-any cline-yes">22x</span>
1243
+ <span class="cline-any cline-yes">22x</span>
1244
+ <span class="cline-any cline-yes">22x</span>
1245
+ <span class="cline-any cline-yes">22x</span>
1246
+ <span class="cline-any cline-yes">22x</span>
1247
+ <span class="cline-any cline-yes">22x</span>
1248
+ <span class="cline-any cline-yes">22x</span>
1249
+ <span class="cline-any cline-yes">22x</span>
1250
+ <span class="cline-any cline-yes">22x</span>
1251
+ <span class="cline-any cline-yes">22x</span>
1252
+ <span class="cline-any cline-yes">22x</span>
1253
+ <span class="cline-any cline-yes">22x</span>
1254
+ <span class="cline-any cline-yes">22x</span>
1255
+ <span class="cline-any cline-yes">3x</span>
1256
+ <span class="cline-any cline-yes">1x</span>
1257
+ <span class="cline-any cline-yes">1x</span>
1258
+ <span class="cline-any cline-yes">2x</span>
1259
+ <span class="cline-any cline-yes">3x</span>
1260
+ <span class="cline-any cline-yes">22x</span>
1261
+ <span class="cline-any cline-yes">22x</span>
1262
+ <span class="cline-any cline-yes">22x</span>
1263
+ <span class="cline-any cline-yes">22x</span>
1264
+ <span class="cline-any cline-yes">22x</span>
1265
+ <span class="cline-any cline-yes">22x</span>
1266
+ <span class="cline-any cline-yes">22x</span>
1267
+ <span class="cline-any cline-yes">22x</span>
1268
+ <span class="cline-any cline-yes">22x</span>
1269
+ <span class="cline-any cline-yes">22x</span>
1270
+ <span class="cline-any cline-yes">22x</span>
1271
+ <span class="cline-any cline-yes">22x</span>
1272
+ <span class="cline-any cline-yes">22x</span>
1273
+ <span class="cline-any cline-yes">22x</span>
1274
+ <span class="cline-any cline-yes">22x</span>
1275
+ <span class="cline-any cline-yes">22x</span>
1276
+ <span class="cline-any cline-yes">22x</span>
1277
+ <span class="cline-any cline-yes">22x</span>
1278
+ <span class="cline-any cline-yes">22x</span>
1279
+ <span class="cline-any cline-yes">22x</span>
1280
+ <span class="cline-any cline-yes">22x</span>
1281
+ <span class="cline-any cline-yes">22x</span>
1282
+ <span class="cline-any cline-yes">22x</span>
1283
+ <span class="cline-any cline-yes">22x</span>
1284
+ <span class="cline-any cline-yes">22x</span>
1285
+ <span class="cline-any cline-yes">22x</span>
1286
+ <span class="cline-any cline-yes">22x</span>
1287
+ <span class="cline-any cline-yes">22x</span>
1288
+ <span class="cline-any cline-yes">22x</span>
1289
+ <span class="cline-any cline-yes">22x</span>
1290
+ <span class="cline-any cline-yes">22x</span>
1291
+ <span class="cline-any cline-yes">22x</span>
1292
+ <span class="cline-any cline-yes">22x</span>
1293
+ <span class="cline-any cline-yes">22x</span>
1294
+ <span class="cline-any cline-yes">22x</span>
1295
+ <span class="cline-any cline-yes">22x</span>
1296
+ <span class="cline-any cline-yes">22x</span>
1297
+ <span class="cline-any cline-yes">22x</span>
1298
+ <span class="cline-any cline-yes">22x</span>
1299
+ <span class="cline-any cline-yes">22x</span>
1300
+ <span class="cline-any cline-yes">22x</span>
1301
+ <span class="cline-any cline-yes">22x</span>
1302
+ <span class="cline-any cline-yes">22x</span>
1303
+ <span class="cline-any cline-yes">22x</span>
1304
+ <span class="cline-any cline-yes">22x</span>
1305
+ <span class="cline-any cline-yes">22x</span>
1306
+ <span class="cline-any cline-yes">22x</span>
1307
+ <span class="cline-any cline-yes">22x</span>
1308
+ <span class="cline-any cline-yes">22x</span>
1309
+ <span class="cline-any cline-yes">22x</span>
1310
+ <span class="cline-any cline-yes">22x</span>
1311
+ <span class="cline-any cline-yes">22x</span>
1312
+ <span class="cline-any cline-yes">22x</span>
1313
+ <span class="cline-any cline-yes">22x</span>
1314
+ <span class="cline-any cline-yes">22x</span>
1315
+ <span class="cline-any cline-yes">22x</span>
1316
+ <span class="cline-any cline-yes">22x</span>
1317
+ <span class="cline-any cline-yes">22x</span>
1318
+ <span class="cline-any cline-yes">22x</span>
1319
+ <span class="cline-any cline-yes">22x</span>
1320
+ <span class="cline-any cline-yes">22x</span>
1321
+ <span class="cline-any cline-yes">22x</span>
1322
+ <span class="cline-any cline-yes">22x</span>
1323
+ <span class="cline-any cline-yes">22x</span>
1324
+ <span class="cline-any cline-yes">22x</span>
1325
+ <span class="cline-any cline-yes">22x</span>
1326
+ <span class="cline-any cline-yes">22x</span>
1327
+ <span class="cline-any cline-yes">22x</span>
1328
+ <span class="cline-any cline-yes">1x</span>
1329
+ <span class="cline-any cline-no">&nbsp;</span>
1330
+ <span class="cline-any cline-no">&nbsp;</span>
1331
+ <span class="cline-any cline-yes">1x</span>
1332
+ <span class="cline-any cline-yes">1x</span>
1333
+ <span class="cline-any cline-yes">22x</span>
1334
+ <span class="cline-any cline-yes">22x</span>
1335
+ <span class="cline-any cline-yes">22x</span>
1336
+ <span class="cline-any cline-yes">22x</span>
1337
+ <span class="cline-any cline-yes">22x</span>
1338
+ <span class="cline-any cline-yes">22x</span>
1339
+ <span class="cline-any cline-yes">22x</span>
1340
+ <span class="cline-any cline-yes">22x</span>
1341
+ <span class="cline-any cline-yes">22x</span>
1342
+ <span class="cline-any cline-yes">22x</span>
1343
+ <span class="cline-any cline-yes">20x</span>
1344
+ <span class="cline-any cline-yes">20x</span>
1345
+ <span class="cline-any cline-yes">19x</span>
1346
+ <span class="cline-any cline-yes">22x</span>
1347
+ <span class="cline-any cline-yes">22x</span>
1348
+ <span class="cline-any cline-yes">22x</span>
1349
+ <span class="cline-any cline-yes">22x</span>
1350
+ <span class="cline-any cline-yes">22x</span>
1351
+ <span class="cline-any cline-yes">22x</span>
1352
+ <span class="cline-any cline-yes">22x</span>
1353
+ <span class="cline-any cline-yes">22x</span>
1354
+ <span class="cline-any cline-yes">22x</span>
1355
+ <span class="cline-any cline-yes">22x</span>
1356
+ <span class="cline-any cline-yes">22x</span>
1357
+ <span class="cline-any cline-yes">22x</span>
1358
+ <span class="cline-any cline-yes">22x</span>
1359
+ <span class="cline-any cline-yes">22x</span>
1360
+ <span class="cline-any cline-yes">22x</span>
1361
+ <span class="cline-any cline-yes">22x</span>
1362
+ <span class="cline-any cline-yes">22x</span>
1363
+ <span class="cline-any cline-yes">22x</span>
1364
+ <span class="cline-any cline-yes">22x</span>
1365
+ <span class="cline-any cline-yes">22x</span>
1366
+ <span class="cline-any cline-yes">22x</span>
1367
+ <span class="cline-any cline-yes">22x</span>
1368
+ <span class="cline-any cline-yes">22x</span>
1369
+ <span class="cline-any cline-no">&nbsp;</span>
1370
+ <span class="cline-any cline-no">&nbsp;</span>
1371
+ <span class="cline-any cline-no">&nbsp;</span>
1372
+ <span class="cline-any cline-no">&nbsp;</span>
1373
+ <span class="cline-any cline-no">&nbsp;</span>
1374
+ <span class="cline-any cline-no">&nbsp;</span>
1375
+ <span class="cline-any cline-yes">22x</span>
1376
+ <span class="cline-any cline-yes">22x</span>
1377
+ <span class="cline-any cline-yes">22x</span>
1378
+ <span class="cline-any cline-yes">22x</span>
1379
+ <span class="cline-any cline-yes">22x</span>
1380
+ <span class="cline-any cline-yes">22x</span>
1381
+ <span class="cline-any cline-yes">22x</span>
1382
+ <span class="cline-any cline-yes">22x</span>
1383
+ <span class="cline-any cline-yes">22x</span>
1384
+ <span class="cline-any cline-yes">22x</span>
1385
+ <span class="cline-any cline-yes">22x</span>
1386
+ <span class="cline-any cline-yes">22x</span>
1387
+ <span class="cline-any cline-yes">22x</span>
1388
+ <span class="cline-any cline-yes">22x</span>
1389
+ <span class="cline-any cline-yes">22x</span>
1390
+ <span class="cline-any cline-yes">22x</span>
1391
+ <span class="cline-any cline-yes">22x</span>
1392
+ <span class="cline-any cline-yes">22x</span>
1393
+ <span class="cline-any cline-yes">22x</span>
1394
+ <span class="cline-any cline-yes">22x</span>
1395
+ <span class="cline-any cline-yes">22x</span>
1396
+ <span class="cline-any cline-yes">22x</span>
1397
+ <span class="cline-any cline-yes">22x</span>
1398
+ <span class="cline-any cline-yes">22x</span>
1399
+ <span class="cline-any cline-yes">22x</span>
1400
+ <span class="cline-any cline-yes">22x</span>
1401
+ <span class="cline-any cline-yes">22x</span>
1402
+ <span class="cline-any cline-yes">22x</span>
1403
+ <span class="cline-any cline-yes">22x</span>
1404
+ <span class="cline-any cline-yes">22x</span>
1405
+ <span class="cline-any cline-yes">22x</span>
1406
+ <span class="cline-any cline-yes">22x</span>
1407
+ <span class="cline-any cline-yes">22x</span>
1408
+ <span class="cline-any cline-yes">22x</span>
1409
+ <span class="cline-any cline-yes">22x</span>
1410
+ <span class="cline-any cline-yes">22x</span>
1411
+ <span class="cline-any cline-yes">22x</span>
1412
+ <span class="cline-any cline-yes">22x</span>
1413
+ <span class="cline-any cline-yes">22x</span>
1414
+ <span class="cline-any cline-yes">22x</span>
1415
+ <span class="cline-any cline-yes">22x</span>
1416
+ <span class="cline-any cline-yes">22x</span>
1417
+ <span class="cline-any cline-yes">22x</span>
1418
+ <span class="cline-any cline-yes">22x</span>
1419
+ <span class="cline-any cline-yes">22x</span>
1420
+ <span class="cline-any cline-yes">22x</span>
1421
+ <span class="cline-any cline-yes">22x</span>
1422
+ <span class="cline-any cline-yes">22x</span>
1423
+ <span class="cline-any cline-yes">22x</span>
1424
+ <span class="cline-any cline-yes">22x</span>
1425
+ <span class="cline-any cline-yes">22x</span>
1426
+ <span class="cline-any cline-yes">22x</span>
1427
+ <span class="cline-any cline-yes">22x</span>
1428
+ <span class="cline-any cline-yes">22x</span>
1429
+ <span class="cline-any cline-yes">22x</span>
1430
+ <span class="cline-any cline-yes">22x</span>
1431
+ <span class="cline-any cline-yes">22x</span>
1432
+ <span class="cline-any cline-yes">24x</span>
1433
+ <span class="cline-any cline-yes">24x</span>
1434
+ <span class="cline-any cline-yes">24x</span>
1435
+ <span class="cline-any cline-yes">24x</span>
1436
+ <span class="cline-any cline-yes">24x</span>
1437
+ <span class="cline-any cline-yes">24x</span>
1438
+ <span class="cline-any cline-yes">24x</span>
1439
+ <span class="cline-any cline-yes">24x</span>
1440
+ <span class="cline-any cline-yes">24x</span>
1441
+ <span class="cline-any cline-yes">24x</span>
1442
+ <span class="cline-any cline-yes">24x</span>
1443
+ <span class="cline-any cline-yes">24x</span>
1444
+ <span class="cline-any cline-yes">24x</span>
1445
+ <span class="cline-any cline-yes">24x</span>
1446
+ <span class="cline-any cline-yes">24x</span>
1447
+ <span class="cline-any cline-yes">24x</span>
1448
+ <span class="cline-any cline-yes">24x</span>
1449
+ <span class="cline-any cline-yes">24x</span>
1450
+ <span class="cline-any cline-yes">24x</span>
1451
+ <span class="cline-any cline-yes">24x</span>
1452
+ <span class="cline-any cline-yes">24x</span>
1453
+ <span class="cline-any cline-yes">24x</span>
1454
+ <span class="cline-any cline-yes">24x</span>
1455
+ <span class="cline-any cline-yes">36x</span>
1456
+ <span class="cline-any cline-yes">36x</span>
1457
+ <span class="cline-any cline-yes">36x</span>
1458
+ <span class="cline-any cline-yes">36x</span>
1459
+ <span class="cline-any cline-yes">36x</span>
1460
+ <span class="cline-any cline-yes">36x</span>
1461
+ <span class="cline-any cline-yes">36x</span>
1462
+ <span class="cline-any cline-no">&nbsp;</span>
1463
+ <span class="cline-any cline-yes">36x</span>
1464
+ <span class="cline-any cline-yes">36x</span>
1465
+ <span class="cline-any cline-yes">24x</span>
1466
+ <span class="cline-any cline-yes">24x</span>
1467
+ <span class="cline-any cline-yes">51x</span>
1468
+ <span class="cline-any cline-yes">51x</span>
1469
+ <span class="cline-any cline-yes">51x</span>
1470
+ <span class="cline-any cline-yes">1x</span>
1471
+ <span class="cline-any cline-yes">1x</span>
1472
+ <span class="cline-any cline-yes">1x</span>
1473
+ <span class="cline-any cline-yes">50x</span>
1474
+ <span class="cline-any cline-yes">50x</span>
1475
+ <span class="cline-any cline-yes">50x</span>
1476
+ <span class="cline-any cline-yes">51x</span>
1477
+ <span class="cline-any cline-yes">1x</span>
1478
+ <span class="cline-any cline-yes">1x</span>
1479
+ <span class="cline-any cline-yes">1x</span>
1480
+ <span class="cline-any cline-yes">49x</span>
1481
+ <span class="cline-any cline-yes">49x</span>
1482
+ <span class="cline-any cline-yes">49x</span>
1483
+ <span class="cline-any cline-yes">49x</span>
1484
+ <span class="cline-any cline-yes">51x</span>
1485
+ <span class="cline-any cline-yes">1x</span>
1486
+ <span class="cline-any cline-yes">1x</span>
1487
+ <span class="cline-any cline-yes">1x</span>
1488
+ <span class="cline-any cline-yes">48x</span>
1489
+ <span class="cline-any cline-yes">48x</span>
1490
+ <span class="cline-any cline-yes">48x</span>
1491
+ <span class="cline-any cline-yes">48x</span>
1492
+ <span class="cline-any cline-yes">48x</span>
1493
+ <span class="cline-any cline-yes">51x</span>
1494
+ <span class="cline-any cline-no">&nbsp;</span>
1495
+ <span class="cline-any cline-no">&nbsp;</span>
1496
+ <span class="cline-any cline-no">&nbsp;</span>
1497
+ <span class="cline-any cline-yes">48x</span>
1498
+ <span class="cline-any cline-yes">51x</span>
1499
+ <span class="cline-any cline-yes">1x</span>
1500
+ <span class="cline-any cline-yes">1x</span>
1501
+ <span class="cline-any cline-yes">1x</span>
1502
+ <span class="cline-any cline-yes">47x</span>
1503
+ <span class="cline-any cline-yes">47x</span>
1504
+ <span class="cline-any cline-yes">47x</span>
1505
+ <span class="cline-any cline-yes">47x</span>
1506
+ <span class="cline-any cline-yes">47x</span>
1507
+ <span class="cline-any cline-yes">51x</span>
1508
+ <span class="cline-any cline-no">&nbsp;</span>
1509
+ <span class="cline-any cline-no">&nbsp;</span>
1510
+ <span class="cline-any cline-no">&nbsp;</span>
1511
+ <span class="cline-any cline-yes">47x</span>
1512
+ <span class="cline-any cline-yes">47x</span>
1513
+ <span class="cline-any cline-yes">47x</span>
1514
+ <span class="cline-any cline-yes">47x</span>
1515
+ <span class="cline-any cline-yes">51x</span>
1516
+ <span class="cline-any cline-yes">3x</span>
1517
+ <span class="cline-any cline-yes">3x</span>
1518
+ <span class="cline-any cline-yes">1x</span>
1519
+ <span class="cline-any cline-yes">1x</span>
1520
+ <span class="cline-any cline-yes">1x</span>
1521
+ <span class="cline-any cline-yes">3x</span>
1522
+ <span class="cline-any cline-yes">46x</span>
1523
+ <span class="cline-any cline-yes">46x</span>
1524
+ <span class="cline-any cline-yes">46x</span>
1525
+ <span class="cline-any cline-yes">46x</span>
1526
+ <span class="cline-any cline-yes">46x</span>
1527
+ <span class="cline-any cline-yes">46x</span>
1528
+ <span class="cline-any cline-yes">51x</span>
1529
+ <span class="cline-any cline-yes">1x</span>
1530
+ <span class="cline-any cline-yes">1x</span>
1531
+ <span class="cline-any cline-yes">46x</span>
1532
+ <span class="cline-any cline-yes">46x</span>
1533
+ <span class="cline-any cline-yes">51x</span>
1534
+ <span class="cline-any cline-yes">1x</span>
1535
+ <span class="cline-any cline-yes">1x</span>
1536
+ <span class="cline-any cline-yes">46x</span>
1537
+ <span class="cline-any cline-yes">46x</span>
1538
+ <span class="cline-any cline-yes">51x</span>
1539
+ <span class="cline-any cline-yes">3x</span>
1540
+ <span class="cline-any cline-no">&nbsp;</span>
1541
+ <span class="cline-any cline-no">&nbsp;</span>
1542
+ <span class="cline-any cline-yes">3x</span>
1543
+ <span class="cline-any cline-yes">3x</span>
1544
+ <span class="cline-any cline-yes">1x</span>
1545
+ <span class="cline-any cline-yes">1x</span>
1546
+ <span class="cline-any cline-yes">1x</span>
1547
+ <span class="cline-any cline-yes">3x</span>
1548
+ <span class="cline-any cline-yes">45x</span>
1549
+ <span class="cline-any cline-yes">45x</span>
1550
+ <span class="cline-any cline-yes">51x</span>
1551
+ <span class="cline-any cline-no">&nbsp;</span>
1552
+ <span class="cline-any cline-no">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-no">&nbsp;</span>
1555
+ <span class="cline-any cline-no">&nbsp;</span>
1556
+ <span class="cline-any cline-no">&nbsp;</span>
1557
+ <span class="cline-any cline-no">&nbsp;</span>
1558
+ <span class="cline-any cline-no">&nbsp;</span>
1559
+ <span class="cline-any cline-no">&nbsp;</span>
1560
+ <span class="cline-any cline-yes">45x</span>
1561
+ <span class="cline-any cline-yes">45x</span>
1562
+ <span class="cline-any cline-yes">51x</span>
1563
+ <span class="cline-any cline-no">&nbsp;</span>
1564
+ <span class="cline-any cline-no">&nbsp;</span>
1565
+ <span class="cline-any cline-no">&nbsp;</span>
1566
+ <span class="cline-any cline-no">&nbsp;</span>
1567
+ <span class="cline-any cline-no">&nbsp;</span>
1568
+ <span class="cline-any cline-no">&nbsp;</span>
1569
+ <span class="cline-any cline-no">&nbsp;</span>
1570
+ <span class="cline-any cline-no">&nbsp;</span>
1571
+ <span class="cline-any cline-no">&nbsp;</span>
1572
+ <span class="cline-any cline-yes">45x</span>
1573
+ <span class="cline-any cline-yes">45x</span>
1574
+ <span class="cline-any cline-yes">51x</span>
1575
+ <span class="cline-any cline-yes">2x</span>
1576
+ <span class="cline-any cline-no">&nbsp;</span>
1577
+ <span class="cline-any cline-no">&nbsp;</span>
1578
+ <span class="cline-any cline-yes">2x</span>
1579
+ <span class="cline-any cline-yes">2x</span>
1580
+ <span class="cline-any cline-yes">1x</span>
1581
+ <span class="cline-any cline-yes">1x</span>
1582
+ <span class="cline-any cline-yes">1x</span>
1583
+ <span class="cline-any cline-yes">1x</span>
1584
+ <span class="cline-any cline-yes">1x</span>
1585
+ <span class="cline-any cline-yes">44x</span>
1586
+ <span class="cline-any cline-yes">44x</span>
1587
+ <span class="cline-any cline-yes">51x</span>
1588
+ <span class="cline-any cline-no">&nbsp;</span>
1589
+ <span class="cline-any cline-no">&nbsp;</span>
1590
+ <span class="cline-any cline-no">&nbsp;</span>
1591
+ <span class="cline-any cline-no">&nbsp;</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-no">&nbsp;</span>
1594
+ <span class="cline-any cline-no">&nbsp;</span>
1595
+ <span class="cline-any cline-no">&nbsp;</span>
1596
+ <span class="cline-any cline-no">&nbsp;</span>
1597
+ <span class="cline-any cline-no">&nbsp;</span>
1598
+ <span class="cline-any cline-no">&nbsp;</span>
1599
+ <span class="cline-any cline-no">&nbsp;</span>
1600
+ <span class="cline-any cline-yes">44x</span>
1601
+ <span class="cline-any cline-yes">44x</span>
1602
+ <span class="cline-any cline-yes">51x</span>
1603
+ <span class="cline-any cline-yes">2x</span>
1604
+ <span class="cline-any cline-yes">2x</span>
1605
+ <span class="cline-any cline-yes">2x</span>
1606
+ <span class="cline-any cline-yes">2x</span>
1607
+ <span class="cline-any cline-yes">2x</span>
1608
+ <span class="cline-any cline-yes">1x</span>
1609
+ <span class="cline-any cline-yes">1x</span>
1610
+ <span class="cline-any cline-yes">1x</span>
1611
+ <span class="cline-any cline-yes">2x</span>
1612
+ <span class="cline-any cline-yes">1x</span>
1613
+ <span class="cline-any cline-yes">1x</span>
1614
+ <span class="cline-any cline-yes">43x</span>
1615
+ <span class="cline-any cline-yes">43x</span>
1616
+ <span class="cline-any cline-yes">51x</span>
1617
+ <span class="cline-any cline-yes">2x</span>
1618
+ <span class="cline-any cline-yes">2x</span>
1619
+ <span class="cline-any cline-yes">2x</span>
1620
+ <span class="cline-any cline-yes">2x</span>
1621
+ <span class="cline-any cline-yes">2x</span>
1622
+ <span class="cline-any cline-yes">2x</span>
1623
+ <span class="cline-any cline-yes">2x</span>
1624
+ <span class="cline-any cline-yes">2x</span>
1625
+ <span class="cline-any cline-yes">2x</span>
1626
+ <span class="cline-any cline-no">&nbsp;</span>
1627
+ <span class="cline-any cline-no">&nbsp;</span>
1628
+ <span class="cline-any cline-no">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1630
+ <span class="cline-any cline-yes">2x</span>
1631
+ <span class="cline-any cline-yes">2x</span>
1632
+ <span class="cline-any cline-yes">2x</span>
1633
+ <span class="cline-any cline-yes">2x</span>
1634
+ <span class="cline-any cline-yes">2x</span>
1635
+ <span class="cline-any cline-yes">2x</span>
1636
+ <span class="cline-any cline-yes">2x</span>
1637
+ <span class="cline-any cline-yes">2x</span>
1638
+ <span class="cline-any cline-yes">1x</span>
1639
+ <span class="cline-any cline-yes">1x</span>
1640
+ <span class="cline-any cline-yes">1x</span>
1641
+ <span class="cline-any cline-yes">1x</span>
1642
+ <span class="cline-any cline-yes">1x</span>
1643
+ <span class="cline-any cline-yes">1x</span>
1644
+ <span class="cline-any cline-yes">1x</span>
1645
+ <span class="cline-any cline-yes">1x</span>
1646
+ <span class="cline-any cline-yes">2x</span>
1647
+ <span class="cline-any cline-yes">2x</span>
1648
+ <span class="cline-any cline-yes">43x</span>
1649
+ <span class="cline-any cline-yes">43x</span>
1650
+ <span class="cline-any cline-yes">51x</span>
1651
+ <span class="cline-any cline-yes">2x</span>
1652
+ <span class="cline-any cline-yes">2x</span>
1653
+ <span class="cline-any cline-yes">2x</span>
1654
+ <span class="cline-any cline-yes">2x</span>
1655
+ <span class="cline-any cline-no">&nbsp;</span>
1656
+ <span class="cline-any cline-no">&nbsp;</span>
1657
+ <span class="cline-any cline-no">&nbsp;</span>
1658
+ <span class="cline-any cline-yes">2x</span>
1659
+ <span class="cline-any cline-yes">2x</span>
1660
+ <span class="cline-any cline-yes">2x</span>
1661
+ <span class="cline-any cline-yes">2x</span>
1662
+ <span class="cline-any cline-yes">1x</span>
1663
+ <span class="cline-any cline-yes">1x</span>
1664
+ <span class="cline-any cline-yes">1x</span>
1665
+ <span class="cline-any cline-yes">2x</span>
1666
+ <span class="cline-any cline-yes">1x</span>
1667
+ <span class="cline-any cline-yes">1x</span>
1668
+ <span class="cline-any cline-yes">42x</span>
1669
+ <span class="cline-any cline-yes">42x</span>
1670
+ <span class="cline-any cline-yes">51x</span>
1671
+ <span class="cline-any cline-yes">1x</span>
1672
+ <span class="cline-any cline-yes">1x</span>
1673
+ <span class="cline-any cline-yes">1x</span>
1674
+ <span class="cline-any cline-yes">42x</span>
1675
+ <span class="cline-any cline-yes">42x</span>
1676
+ <span class="cline-any cline-yes">51x</span>
1677
+ <span class="cline-any cline-yes">2x</span>
1678
+ <span class="cline-any cline-yes">2x</span>
1679
+ <span class="cline-any cline-yes">2x</span>
1680
+ <span class="cline-any cline-yes">2x</span>
1681
+ <span class="cline-any cline-yes">2x</span>
1682
+ <span class="cline-any cline-yes">1x</span>
1683
+ <span class="cline-any cline-yes">1x</span>
1684
+ <span class="cline-any cline-yes">1x</span>
1685
+ <span class="cline-any cline-yes">2x</span>
1686
+ <span class="cline-any cline-yes">1x</span>
1687
+ <span class="cline-any cline-yes">1x</span>
1688
+ <span class="cline-any cline-yes">41x</span>
1689
+ <span class="cline-any cline-yes">41x</span>
1690
+ <span class="cline-any cline-yes">51x</span>
1691
+ <span class="cline-any cline-yes">1x</span>
1692
+ <span class="cline-any cline-yes">1x</span>
1693
+ <span class="cline-any cline-yes">1x</span>
1694
+ <span class="cline-any cline-yes">1x</span>
1695
+ <span class="cline-any cline-yes">1x</span>
1696
+ <span class="cline-any cline-no">&nbsp;</span>
1697
+ <span class="cline-any cline-no">&nbsp;</span>
1698
+ <span class="cline-any cline-no">&nbsp;</span>
1699
+ <span class="cline-any cline-yes">1x</span>
1700
+ <span class="cline-any cline-yes">1x</span>
1701
+ <span class="cline-any cline-yes">1x</span>
1702
+ <span class="cline-any cline-yes">1x</span>
1703
+ <span class="cline-any cline-yes">1x</span>
1704
+ <span class="cline-any cline-yes">1x</span>
1705
+ <span class="cline-any cline-yes">1x</span>
1706
+ <span class="cline-any cline-yes">1x</span>
1707
+ <span class="cline-any cline-yes">1x</span>
1708
+ <span class="cline-any cline-yes">1x</span>
1709
+ <span class="cline-any cline-yes">1x</span>
1710
+ <span class="cline-any cline-yes">1x</span>
1711
+ <span class="cline-any cline-yes">1x</span>
1712
+ <span class="cline-any cline-yes">1x</span>
1713
+ <span class="cline-any cline-yes">1x</span>
1714
+ <span class="cline-any cline-yes">1x</span>
1715
+ <span class="cline-any cline-yes">1x</span>
1716
+ <span class="cline-any cline-yes">1x</span>
1717
+ <span class="cline-any cline-no">&nbsp;</span>
1718
+ <span class="cline-any cline-no">&nbsp;</span>
1719
+ <span class="cline-any cline-yes">1x</span>
1720
+ <span class="cline-any cline-yes">1x</span>
1721
+ <span class="cline-any cline-yes">41x</span>
1722
+ <span class="cline-any cline-yes">41x</span>
1723
+ <span class="cline-any cline-yes">51x</span>
1724
+ <span class="cline-any cline-yes">3x</span>
1725
+ <span class="cline-any cline-no">&nbsp;</span>
1726
+ <span class="cline-any cline-no">&nbsp;</span>
1727
+ <span class="cline-any cline-yes">3x</span>
1728
+ <span class="cline-any cline-yes">12x</span>
1729
+ <span class="cline-any cline-yes">12x</span>
1730
+ <span class="cline-any cline-yes">12x</span>
1731
+ <span class="cline-any cline-yes">12x</span>
1732
+ <span class="cline-any cline-no">&nbsp;</span>
1733
+ <span class="cline-any cline-no">&nbsp;</span>
1734
+ <span class="cline-any cline-no">&nbsp;</span>
1735
+ <span class="cline-any cline-no">&nbsp;</span>
1736
+ <span class="cline-any cline-yes">12x</span>
1737
+ <span class="cline-any cline-yes">12x</span>
1738
+ <span class="cline-any cline-yes">12x</span>
1739
+ <span class="cline-any cline-yes">12x</span>
1740
+ <span class="cline-any cline-yes">2x</span>
1741
+ <span class="cline-any cline-yes">2x</span>
1742
+ <span class="cline-any cline-yes">2x</span>
1743
+ <span class="cline-any cline-yes">2x</span>
1744
+ <span class="cline-any cline-no">&nbsp;</span>
1745
+ <span class="cline-any cline-no">&nbsp;</span>
1746
+ <span class="cline-any cline-no">&nbsp;</span>
1747
+ <span class="cline-any cline-no">&nbsp;</span>
1748
+ <span class="cline-any cline-no">&nbsp;</span>
1749
+ <span class="cline-any cline-no">&nbsp;</span>
1750
+ <span class="cline-any cline-no">&nbsp;</span>
1751
+ <span class="cline-any cline-yes">2x</span>
1752
+ <span class="cline-any cline-yes">2x</span>
1753
+ <span class="cline-any cline-yes">2x</span>
1754
+ <span class="cline-any cline-yes">1x</span>
1755
+ <span class="cline-any cline-yes">1x</span>
1756
+ <span class="cline-any cline-yes">1x</span>
1757
+ <span class="cline-any cline-yes">1x</span>
1758
+ <span class="cline-any cline-yes">1x</span>
1759
+ <span class="cline-any cline-yes">1x</span>
1760
+ <span class="cline-any cline-yes">2x</span>
1761
+ <span class="cline-any cline-no">&nbsp;</span>
1762
+ <span class="cline-any cline-no">&nbsp;</span>
1763
+ <span class="cline-any cline-no">&nbsp;</span>
1764
+ <span class="cline-any cline-no">&nbsp;</span>
1765
+ <span class="cline-any cline-no">&nbsp;</span>
1766
+ <span class="cline-any cline-no">&nbsp;</span>
1767
+ <span class="cline-any cline-no">&nbsp;</span>
1768
+ <span class="cline-any cline-yes">2x</span>
1769
+ <span class="cline-any cline-no">&nbsp;</span>
1770
+ <span class="cline-any cline-no">&nbsp;</span>
1771
+ <span class="cline-any cline-no">&nbsp;</span>
1772
+ <span class="cline-any cline-no">&nbsp;</span>
1773
+ <span class="cline-any cline-no">&nbsp;</span>
1774
+ <span class="cline-any cline-no">&nbsp;</span>
1775
+ <span class="cline-any cline-no">&nbsp;</span>
1776
+ <span class="cline-any cline-no">&nbsp;</span>
1777
+ <span class="cline-any cline-yes">2x</span>
1778
+ <span class="cline-any cline-yes">2x</span>
1779
+ <span class="cline-any cline-yes">1x</span>
1780
+ <span class="cline-any cline-yes">12x</span>
1781
+ <span class="cline-any cline-yes">2x</span>
1782
+ <span class="cline-any cline-yes">40x</span>
1783
+ <span class="cline-any cline-yes">40x</span>
1784
+ <span class="cline-any cline-yes">40x</span>
1785
+ <span class="cline-any cline-yes">51x</span>
1786
+ <span class="cline-any cline-yes">6x</span>
1787
+ <span class="cline-any cline-yes">6x</span>
1788
+ <span class="cline-any cline-yes">6x</span>
1789
+ <span class="cline-any cline-yes">6x</span>
1790
+ <span class="cline-any cline-yes">6x</span>
1791
+ <span class="cline-any cline-yes">6x</span>
1792
+ <span class="cline-any cline-yes">6x</span>
1793
+ <span class="cline-any cline-yes">6x</span>
1794
+ <span class="cline-any cline-yes">6x</span>
1795
+ <span class="cline-any cline-yes">6x</span>
1796
+ <span class="cline-any cline-yes">6x</span>
1797
+ <span class="cline-any cline-yes">6x</span>
1798
+ <span class="cline-any cline-yes">6x</span>
1799
+ <span class="cline-any cline-yes">6x</span>
1800
+ <span class="cline-any cline-yes">6x</span>
1801
+ <span class="cline-any cline-yes">6x</span>
1802
+ <span class="cline-any cline-yes">6x</span>
1803
+ <span class="cline-any cline-yes">6x</span>
1804
+ <span class="cline-any cline-yes">7x</span>
1805
+ <span class="cline-any cline-yes">1x</span>
1806
+ <span class="cline-any cline-yes">1x</span>
1807
+ <span class="cline-any cline-yes">1x</span>
1808
+ <span class="cline-any cline-yes">1x</span>
1809
+ <span class="cline-any cline-yes">1x</span>
1810
+ <span class="cline-any cline-yes">7x</span>
1811
+ <span class="cline-any cline-yes">1x</span>
1812
+ <span class="cline-any cline-yes">1x</span>
1813
+ <span class="cline-any cline-yes">1x</span>
1814
+ <span class="cline-any cline-yes">5x</span>
1815
+ <span class="cline-any cline-yes">5x</span>
1816
+ <span class="cline-any cline-yes">5x</span>
1817
+ <span class="cline-any cline-yes">7x</span>
1818
+ <span class="cline-any cline-yes">4x</span>
1819
+ <span class="cline-any cline-yes">38x</span>
1820
+ <span class="cline-any cline-yes">38x</span>
1821
+ <span class="cline-any cline-yes">51x</span>
1822
+ <span class="cline-any cline-yes">22x</span>
1823
+ <span class="cline-any cline-yes">22x</span>
1824
+ <span class="cline-any cline-yes">20x</span>
1825
+ <span class="cline-any cline-yes">20x</span>
1826
+ <span class="cline-any cline-yes">20x</span>
1827
+ <span class="cline-any cline-yes">20x</span>
1828
+ <span class="cline-any cline-yes">20x</span>
1829
+ <span class="cline-any cline-yes">20x</span>
1830
+ <span class="cline-any cline-yes">1x</span>
1831
+ <span class="cline-any cline-yes">1x</span>
1832
+ <span class="cline-any cline-yes">20x</span>
1833
+ <span class="cline-any cline-yes">20x</span>
1834
+ <span class="cline-any cline-yes">20x</span>
1835
+ <span class="cline-any cline-yes">1x</span>
1836
+ <span class="cline-any cline-yes">1x</span>
1837
+ <span class="cline-any cline-yes">20x</span>
1838
+ <span class="cline-any cline-yes">20x</span>
1839
+ <span class="cline-any cline-yes">20x</span>
1840
+ <span class="cline-any cline-yes">2x</span>
1841
+ <span class="cline-any cline-yes">2x</span>
1842
+ <span class="cline-any cline-yes">20x</span>
1843
+ <span class="cline-any cline-yes">20x</span>
1844
+ <span class="cline-any cline-yes">20x</span>
1845
+ <span class="cline-any cline-no">&nbsp;</span>
1846
+ <span class="cline-any cline-no">&nbsp;</span>
1847
+ <span class="cline-any cline-yes">20x</span>
1848
+ <span class="cline-any cline-yes">20x</span>
1849
+ <span class="cline-any cline-yes">20x</span>
1850
+ <span class="cline-any cline-no">&nbsp;</span>
1851
+ <span class="cline-any cline-no">&nbsp;</span>
1852
+ <span class="cline-any cline-yes">20x</span>
1853
+ <span class="cline-any cline-yes">20x</span>
1854
+ <span class="cline-any cline-yes">20x</span>
1855
+ <span class="cline-any cline-no">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-yes">20x</span>
1858
+ <span class="cline-any cline-yes">20x</span>
1859
+ <span class="cline-any cline-yes">20x</span>
1860
+ <span class="cline-any cline-no">&nbsp;</span>
1861
+ <span class="cline-any cline-no">&nbsp;</span>
1862
+ <span class="cline-any cline-yes">20x</span>
1863
+ <span class="cline-any cline-yes">20x</span>
1864
+ <span class="cline-any cline-yes">20x</span>
1865
+ <span class="cline-any cline-yes">1x</span>
1866
+ <span class="cline-any cline-yes">1x</span>
1867
+ <span class="cline-any cline-yes">20x</span>
1868
+ <span class="cline-any cline-yes">20x</span>
1869
+ <span class="cline-any cline-yes">20x</span>
1870
+ <span class="cline-any cline-yes">1x</span>
1871
+ <span class="cline-any cline-yes">1x</span>
1872
+ <span class="cline-any cline-yes">20x</span>
1873
+ <span class="cline-any cline-yes">20x</span>
1874
+ <span class="cline-any cline-yes">20x</span>
1875
+ <span class="cline-any cline-yes">19x</span>
1876
+ <span class="cline-any cline-yes">3x</span>
1877
+ <span class="cline-any cline-yes">3x</span>
1878
+ <span class="cline-any cline-yes">3x</span>
1879
+ <span class="cline-any cline-yes">3x</span>
1880
+ <span class="cline-any cline-yes">1x</span>
1881
+ <span class="cline-any cline-yes">1x</span>
1882
+ <span class="cline-any cline-yes">3x</span>
1883
+ <span class="cline-any cline-yes">1x</span>
1884
+ <span class="cline-any cline-yes">1x</span>
1885
+ <span class="cline-any cline-yes">3x</span>
1886
+ <span class="cline-any cline-yes">1x</span>
1887
+ <span class="cline-any cline-yes">3x</span>
1888
+ <span class="cline-any cline-yes">3x</span>
1889
+ <span class="cline-any cline-yes">3x</span>
1890
+ <span class="cline-any cline-yes">19x</span>
1891
+ <span class="cline-any cline-yes">20x</span>
1892
+ <span class="cline-any cline-yes">20x</span>
1893
+ <span class="cline-any cline-yes">20x</span>
1894
+ <span class="cline-any cline-yes">20x</span>
1895
+ <span class="cline-any cline-yes">2x</span>
1896
+ <span class="cline-any cline-yes">2x</span>
1897
+ <span class="cline-any cline-yes">20x</span>
1898
+ <span class="cline-any cline-yes">20x</span>
1899
+ <span class="cline-any cline-yes">20x</span>
1900
+ <span class="cline-any cline-yes">20x</span>
1901
+ <span class="cline-any cline-yes">20x</span>
1902
+ <span class="cline-any cline-yes">19x</span>
1903
+ <span class="cline-any cline-yes">1x</span>
1904
+ <span class="cline-any cline-yes">1x</span>
1905
+ <span class="cline-any cline-yes">1x</span>
1906
+ <span class="cline-any cline-yes">1x</span>
1907
+ <span class="cline-any cline-yes">1x</span>
1908
+ <span class="cline-any cline-yes">19x</span>
1909
+ <span class="cline-any cline-yes">20x</span>
1910
+ <span class="cline-any cline-yes">20x</span>
1911
+ <span class="cline-any cline-yes">20x</span>
1912
+ <span class="cline-any cline-yes">19x</span>
1913
+ <span class="cline-any cline-yes">19x</span>
1914
+ <span class="cline-any cline-yes">20x</span>
1915
+ <span class="cline-any cline-yes">20x</span>
1916
+ <span class="cline-any cline-yes">20x</span>
1917
+ <span class="cline-any cline-yes">19x</span>
1918
+ <span class="cline-any cline-yes">3x</span>
1919
+ <span class="cline-any cline-yes">3x</span>
1920
+ <span class="cline-any cline-yes">3x</span>
1921
+ <span class="cline-any cline-yes">3x</span>
1922
+ <span class="cline-any cline-yes">1x</span>
1923
+ <span class="cline-any cline-yes">1x</span>
1924
+ <span class="cline-any cline-yes">3x</span>
1925
+ <span class="cline-any cline-yes">2x</span>
1926
+ <span class="cline-any cline-yes">2x</span>
1927
+ <span class="cline-any cline-yes">3x</span>
1928
+ <span class="cline-any cline-no">&nbsp;</span>
1929
+ <span class="cline-any cline-yes">3x</span>
1930
+ <span class="cline-any cline-yes">3x</span>
1931
+ <span class="cline-any cline-yes">3x</span>
1932
+ <span class="cline-any cline-yes">19x</span>
1933
+ <span class="cline-any cline-yes">20x</span>
1934
+ <span class="cline-any cline-yes">20x</span>
1935
+ <span class="cline-any cline-yes">20x</span>
1936
+ <span class="cline-any cline-yes">20x</span>
1937
+ <span class="cline-any cline-yes">1x</span>
1938
+ <span class="cline-any cline-yes">1x</span>
1939
+ <span class="cline-any cline-yes">20x</span>
1940
+ <span class="cline-any cline-yes">20x</span>
1941
+ <span class="cline-any cline-yes">20x</span>
1942
+ <span class="cline-any cline-yes">20x</span>
1943
+ <span class="cline-any cline-yes">20x</span>
1944
+ <span class="cline-any cline-yes">20x</span>
1945
+ <span class="cline-any cline-yes">22x</span>
1946
+ <span class="cline-any cline-yes">22x</span>
1947
+ <span class="cline-any cline-yes">2x</span>
1948
+ <span class="cline-any cline-yes">22x</span>
1949
+ <span class="cline-any cline-yes">22x</span>
1950
+ <span class="cline-any cline-yes">22x</span>
1951
+ <span class="cline-any cline-yes">51x</span>
1952
+ <span class="cline-any cline-yes">16x</span>
1953
+ <span class="cline-any cline-yes">16x</span>
1954
+ <span class="cline-any cline-yes">16x</span>
1955
+ <span class="cline-any cline-yes">24x</span>
1956
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const kanbn = require('../main');
1957
+ const utility = require('../utility');
1958
+ const inquirer = require('inquirer');
1959
+ const fuzzy = require('fuzzy');
1960
+ const chrono = require('chrono-node');
1961
+ const getGitUsername = require('git-user-name');
1962
+ &nbsp;
1963
+ inquirer.registerPrompt('datepicker', require('inquirer-datepicker'));
1964
+ inquirer.registerPrompt('recursive', require('inquirer-recursive'));
1965
+ inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
1966
+ &nbsp;
1967
+ /**
1968
+ * Update a task interactively
1969
+ * @param {object} taskData
1970
+ * @param {string[]} taskIds
1971
+ * @param {string} columnName
1972
+ * @param {string[]} columnNames
1973
+ * @return {Promise&lt;any&gt;}
1974
+ */
1975
+ async function interactive(taskData, taskIds, columnName, columnNames) {
1976
+ const dueDateExists = (
1977
+ 'metadata' in taskData &amp;&amp;
1978
+ 'due' in taskData.metadata &amp;&amp;
1979
+ taskData.metadata.due != null
1980
+ );
1981
+ const plannedStartDateExists = (
1982
+ 'metadata' in taskData &amp;&amp;
1983
+ 'plannedStart' in taskData.metadata <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp;</span>
1984
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart != null</span>
1985
+ );
1986
+ const plannedFinishDateExists = (
1987
+ 'metadata' in taskData &amp;&amp;
1988
+ 'plannedFinish' in taskData.metadata <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp;</span>
1989
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish != null</span>
1990
+ );
1991
+ const assignedExists = (
1992
+ 'metadata' in taskData &amp;&amp;
1993
+ 'assigned' in taskData.metadata &amp;&amp;
1994
+ taskData.metadata.assigned != null
1995
+ );
1996
+ return await inquirer.prompt([
1997
+ {
1998
+ type: 'input',
1999
+ name: 'name',
2000
+ message: 'Task name:',
2001
+ default: taskData.name <span class="branch-0 cbranch-no" title="branch not covered" >|| '',</span>
2002
+ validate: async value =&gt; {
2003
+ if (!value) {
2004
+ return 'Task name cannot be empty';
2005
+ }
2006
+ return true;
2007
+ }
2008
+ },
2009
+ {
2010
+ type: 'confirm',
2011
+ name: 'editDescription',
2012
+ message: 'Edit description?',
2013
+ default: false
2014
+ },
2015
+ {
2016
+ type: 'editor',
2017
+ name: 'description',
2018
+ message: 'Task description:',
2019
+ default: taskData.description,
2020
+ when: answers =&gt; answers.editDescription
2021
+ },
2022
+ {
2023
+ type: 'list',
2024
+ name: 'column',
2025
+ message: 'Column:',
2026
+ default: columnName,
2027
+ choices: columnNames
2028
+ },
2029
+ {
2030
+ type: 'expand',
2031
+ name: 'editDue',
2032
+ message: 'Edit or remove due date?',
2033
+ default: 'none',
2034
+ when: answers =&gt; dueDateExists,
2035
+ choices: [
2036
+ {
2037
+ key: 'e',
2038
+ name: 'Edit',
2039
+ value: 'edit'
2040
+ },
2041
+ {
2042
+ key: 'r',
2043
+ name: 'Remove',
2044
+ value: 'remove'
2045
+ },
2046
+ new inquirer.Separator(),
2047
+ {
2048
+ key: 'n',
2049
+ name: 'Do nothing',
2050
+ value: 'none'
2051
+ }
2052
+ ]
2053
+ },
2054
+ {
2055
+ type: 'confirm',
2056
+ name: 'setDue',
2057
+ message: 'Set a due date?',
2058
+ default: false,
2059
+ when: answers =&gt; !dueDateExists
2060
+ },
2061
+ {
2062
+ type: 'datepicker',
2063
+ name: 'due',
2064
+ message: 'Due date:',
2065
+ default: dueDateExists ? taskData.metadata.due : new Date(),
2066
+ format: ['Y', '/', 'MM', '/', 'DD'],
2067
+ when: answers =&gt; answers.setDue || answers.editDue === 'edit'
2068
+ },
2069
+ {
2070
+ type: 'expand',
2071
+ name: 'editPlannedStart',
2072
+ message: 'Edit or remove planned start date?',
2073
+ default: 'none',
2074
+ when: answers =&gt; plannedStartDateExists,
2075
+ choices: [
2076
+ {
2077
+ key: 'e',
2078
+ name: 'Edit',
2079
+ value: 'edit'
2080
+ },
2081
+ {
2082
+ key: 'r',
2083
+ name: 'Remove',
2084
+ value: 'remove'
2085
+ },
2086
+ new inquirer.Separator(),
2087
+ {
2088
+ key: 'n',
2089
+ name: 'Do nothing',
2090
+ value: 'none'
2091
+ }
2092
+ ]
2093
+ },
2094
+ {
2095
+ type: 'confirm',
2096
+ name: 'setPlannedStart',
2097
+ message: 'Set a planned start date?',
2098
+ default: false,
2099
+ when: answers =&gt; !plannedStartDateExists
2100
+ },
2101
+ {
2102
+ type: 'datepicker',
2103
+ name: 'plannedStart',
2104
+ message: 'Planned start date:',
2105
+ default: plannedStartDateExists <span class="branch-0 cbranch-no" title="branch not covered" >? taskData.metadata.plannedStart </span>: new Date(),
2106
+ format: ['Y', '/', 'MM', '/', 'DD'],
2107
+ when: answers =&gt; answers.setPlannedStart || answers.editPlannedStart === 'edit'
2108
+ },
2109
+ {
2110
+ type: 'expand',
2111
+ name: 'editPlannedFinish',
2112
+ message: 'Edit or remove planned finish date?',
2113
+ default: 'none',
2114
+ when: answers =&gt; plannedFinishDateExists,
2115
+ choices: [
2116
+ {
2117
+ key: 'e',
2118
+ name: 'Edit',
2119
+ value: 'edit'
2120
+ },
2121
+ {
2122
+ key: 'r',
2123
+ name: 'Remove',
2124
+ value: 'remove'
2125
+ },
2126
+ new inquirer.Separator(),
2127
+ {
2128
+ key: 'n',
2129
+ name: 'Do nothing',
2130
+ value: 'none'
2131
+ }
2132
+ ]
2133
+ },
2134
+ {
2135
+ type: 'confirm',
2136
+ name: 'setPlannedFinish',
2137
+ message: 'Set a planned finish date?',
2138
+ default: false,
2139
+ when: answers =&gt; !plannedFinishDateExists
2140
+ },
2141
+ {
2142
+ type: 'datepicker',
2143
+ name: 'plannedFinish',
2144
+ message: 'Planned finish date:',
2145
+ default: plannedFinishDateExists <span class="branch-0 cbranch-no" title="branch not covered" >? taskData.metadata.plannedFinish </span>: new Date(),
2146
+ format: ['Y', '/', 'MM', '/', 'DD'],
2147
+ when: answers =&gt; answers.setPlannedFinish || answers.editPlannedFinish === 'edit'
2148
+ },
2149
+ {
2150
+ type: 'expand',
2151
+ name: 'editAssigned',
2152
+ message: 'Edit or remove assigned user?',
2153
+ default: 'none',
2154
+ when: answers =&gt; assignedExists,
2155
+ choices: [
2156
+ {
2157
+ key: 'e',
2158
+ name: 'Edit',
2159
+ value: 'edit'
2160
+ },
2161
+ {
2162
+ key: 'r',
2163
+ name: 'Remove',
2164
+ value: 'remove'
2165
+ },
2166
+ new inquirer.Separator(),
2167
+ {
2168
+ key: 'n',
2169
+ name: 'Do nothing',
2170
+ value: 'none'
2171
+ }
2172
+ ]
2173
+ },
2174
+ {
2175
+ type: 'confirm',
2176
+ name: 'setAssigned',
2177
+ message: 'Assign this task?',
2178
+ default: false,
2179
+ when: answers =&gt; !assignedExists
2180
+ },
2181
+ {
2182
+ type: 'input',
2183
+ name: 'assigned',
2184
+ message: 'Assigned to:',
2185
+ default: assignedExists ? taskData.metadata.assigned : getGitUsername(),
2186
+ when: answers =&gt; answers.setAssigned || answers.editAssigned === 'edit'
2187
+ },
2188
+ {
2189
+ type: 'recursive',
2190
+ name: 'addSubTasks',
2191
+ initialMessage: 'Add a sub-task?',
2192
+ message: 'Add another sub-task?',
2193
+ default: false,
2194
+ prompts: [
2195
+ {
2196
+ type: 'input',
2197
+ name: 'text',
2198
+ message: 'Sub-task text:',
2199
+ validate: value =&gt; {
2200
+ if (!value) {
2201
+ return 'Sub-task text cannot be empty';
2202
+ }
2203
+ return true;
2204
+ }
2205
+ },
2206
+ {
2207
+ type: 'confirm',
2208
+ name: 'completed',
2209
+ message: 'Sub-task completed?',
2210
+ default: false
2211
+ }
2212
+ ]
2213
+ },
2214
+ {
2215
+ type: 'recursive',
2216
+ name: 'editSubTasks',
2217
+ initialMessage: 'Update or remove a sub-task?',
2218
+ message: 'Update or remove another sub-task?',
2219
+ default: false,
2220
+ when: answers =&gt; taskData.subTasks.length &gt; 0,
2221
+ prompts: [
2222
+ {
2223
+ type: 'list',
2224
+ name: 'selectSubTask',
2225
+ message: 'Which sub-task do you want to update or remove?',
2226
+ choices: taskData.subTasks.map(subTask =&gt; subTask.text)
2227
+ },
2228
+ {
2229
+ type: 'expand',
2230
+ name: 'editSubTask',
2231
+ message: 'Edit completion status or remove sub-task?',
2232
+ default: 'none',
2233
+ choices: [
2234
+ {
2235
+ key: 'e',
2236
+ name: 'Edit completion status',
2237
+ value: 'edit'
2238
+ },
2239
+ {
2240
+ key: 'r',
2241
+ name: 'Remove',
2242
+ value: 'remove'
2243
+ },
2244
+ new inquirer.Separator(),
2245
+ {
2246
+ key: 'n',
2247
+ name: 'Do nothing',
2248
+ value: 'none'
2249
+ }
2250
+ ]
2251
+ },
2252
+ {
2253
+ type: 'confirm',
2254
+ name: 'completed',
2255
+ message: 'Sub-task completed?',
2256
+ default: <span class="fstat-no" title="function not covered" >answers =&gt; taskData.subTasks.find(subTask =&gt; subTask.text === answers.selectSubTask).completed,</span>
2257
+ when: answers =&gt; answers.editSubTask === 'edit'
2258
+ }
2259
+ ]
2260
+ },
2261
+ {
2262
+ type: 'recursive',
2263
+ name: 'addTags',
2264
+ initialMessage: 'Add a tag?',
2265
+ message: 'Add another tag?',
2266
+ default: false,
2267
+ prompts: [
2268
+ {
2269
+ type: 'input',
2270
+ name: 'name',
2271
+ message: 'Tag name:',
2272
+ validate: value =&gt; {
2273
+ if (!value) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2274
+ <span class="cstat-no" title="statement not covered" > return 'Tag name cannot be empty';</span>
2275
+ <span class="cstat-no" title="statement not covered" > }</span>
2276
+ return true;
2277
+ }
2278
+ }
2279
+ ]
2280
+ },
2281
+ {
2282
+ type: 'recursive',
2283
+ name: 'removeTags',
2284
+ initialMessage: 'Remove a tag?',
2285
+ message: 'Remove another tag?',
2286
+ default: false,
2287
+ when: answers =&gt; (
2288
+ 'metadata' in taskData &amp;&amp;
2289
+ 'tags' in taskData.metadata &amp;&amp;
2290
+ taskData.metadata.tags.length &gt; 0
2291
+ ),
2292
+ prompts: [
2293
+ {
2294
+ type: 'list',
2295
+ name: 'selectTag',
2296
+ message: 'Which tag do you want to remove?',
2297
+ choices: taskData.metadata.tags
2298
+ }
2299
+ ]
2300
+ },
2301
+ {
2302
+ type: 'recursive',
2303
+ name: 'addRelations',
2304
+ initialMessage: 'Add a relation?',
2305
+ message: 'Add another relation?',
2306
+ default: false,
2307
+ when: answers =&gt; taskIds.length &gt; 0,
2308
+ prompts: [
2309
+ {
2310
+ type: 'autocomplete',
2311
+ name: 'task',
2312
+ message: 'Related task id:',
2313
+ source: <span class="fstat-no" title="function not covered" >(answers, input) =&gt; {</span>
2314
+ <span class="cstat-no" title="statement not covered" > input = input || '';</span>
2315
+ <span class="cstat-no" title="statement not covered" > const result = fuzzy.filter(input, taskIds);</span>
2316
+ <span class="cstat-no" title="statement not covered" > return new Promise(resolve =&gt; {</span>
2317
+ <span class="cstat-no" title="statement not covered" > resolve(result.map(result =&gt; result.string));</span>
2318
+ <span class="cstat-no" title="statement not covered" > });</span>
2319
+ <span class="cstat-no" title="statement not covered" > }</span>
2320
+ },
2321
+ {
2322
+ type: 'input',
2323
+ name: 'type',
2324
+ message: 'Relation type:'
2325
+ }
2326
+ ]
2327
+ },
2328
+ {
2329
+ type: 'recursive',
2330
+ name: 'editRelations',
2331
+ initialMessage: 'Update or remove a relation?',
2332
+ message: 'Update or remove another relation?',
2333
+ default: false,
2334
+ when: answers =&gt; taskData.relations.length &gt; 0,
2335
+ prompts: [
2336
+ {
2337
+ type: 'list',
2338
+ name: 'selectRelation',
2339
+ message: 'Which relation do you want to update or remove?',
2340
+ choices: taskData.relations.map(relation =&gt; relation.task)
2341
+ },
2342
+ {
2343
+ type: 'expand',
2344
+ name: 'editRelation',
2345
+ message: 'Edit relation type or remove relation?',
2346
+ default: 'none',
2347
+ choices: [
2348
+ {
2349
+ key: 'e',
2350
+ name: 'Edit relation type',
2351
+ value: 'edit'
2352
+ },
2353
+ {
2354
+ key: 'r',
2355
+ name: 'Remove',
2356
+ value: 'remove'
2357
+ },
2358
+ new inquirer.Separator(),
2359
+ {
2360
+ key: 'n',
2361
+ name: 'Do nothing',
2362
+ value: 'none'
2363
+ }
2364
+ ]
2365
+ },
2366
+ {
2367
+ type: 'input',
2368
+ name: 'type',
2369
+ message: 'Relation type:',
2370
+ default: answers =&gt; taskData.relations.find(relation =&gt; relation.task === answers.selectRelation).type,
2371
+ when: answers =&gt; answers.editRelation === 'edit'
2372
+ }
2373
+ ]
2374
+ }
2375
+ ]);
2376
+ }
2377
+ &nbsp;
2378
+ /**
2379
+ * Metadata fields that can be cleared with --unset, in addition to any custom fields defined in
2380
+ * the index options
2381
+ */
2382
+ const UNSETTABLE_FIELDS = [
2383
+ 'started',
2384
+ 'completed',
2385
+ 'due',
2386
+ 'plannedStart',
2387
+ 'plannedFinish',
2388
+ 'assigned',
2389
+ 'progress',
2390
+ 'tags'
2391
+ ];
2392
+ &nbsp;
2393
+ /**
2394
+ * Update a task
2395
+ * @param {string} taskId
2396
+ * @param {object} taskData
2397
+ * @param {?string} columnName
2398
+ * @param {string[]} [unsetFields=[]]
2399
+ */
2400
+ function updateTask(taskId, taskData, columnName, unsetFields = []) {
2401
+ kanbn
2402
+ .updateTask(taskId, taskData, columnName, unsetFields)
2403
+ .then(taskId =&gt; {
2404
+ console.log(`Updated task "${taskId}"`);
2405
+ })
2406
+ .catch(error =&gt; {
2407
+ <span class="cstat-no" title="statement not covered" > utility.error(error);</span>
2408
+ });
2409
+ }
2410
+ &nbsp;
2411
+ module.exports = async args =&gt; {
2412
+ &nbsp;
2413
+ // Make sure kanbn has been initialised
2414
+ if (!await kanbn.initialised()) {
2415
+ utility.error('Kanbn has not been initialised in this folder\nTry running: {b}kanbn init{b}');
2416
+ return;
2417
+ }
2418
+ &nbsp;
2419
+ // Get the task that we're editing
2420
+ const taskId = args._[1];
2421
+ if (!taskId) {
2422
+ utility.error('No task id specified\nTry running {b}kanbn edit "task id"{b}');
2423
+ return;
2424
+ }
2425
+ &nbsp;
2426
+ // Make sure the task exists
2427
+ try {
2428
+ await kanbn.taskExists(taskId);
2429
+ } catch (error) {
2430
+ utility.error(error);
2431
+ return;
2432
+ }
2433
+ &nbsp;
2434
+ // Get the index and make sure it has some columns
2435
+ let index;
2436
+ try {
2437
+ index = await kanbn.getIndex();
2438
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2439
+ <span class="cstat-no" title="statement not covered" > utility.error(error);</span>
2440
+ <span class="cstat-no" title="statement not covered" > return;</span>
2441
+ <span class="cstat-no" title="statement not covered" > }</span>
2442
+ const columnNames = Object.keys(index.columns);
2443
+ if (!columnNames.length) {
2444
+ utility.error('No columns defined in the index\nTry running {b}kanbn init -c "column name"{b}');
2445
+ return;
2446
+ }
2447
+ &nbsp;
2448
+ // Get the current task data
2449
+ let taskData;
2450
+ try {
2451
+ taskData = await kanbn.getTask(taskId);
2452
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2453
+ <span class="cstat-no" title="statement not covered" > utility.error(error);</span>
2454
+ <span class="cstat-no" title="statement not covered" > return;</span>
2455
+ <span class="cstat-no" title="statement not covered" > }</span>
2456
+ &nbsp;
2457
+ // Get column name if specified
2458
+ let currentColumnName = await kanbn.findTaskColumn(taskId);
2459
+ let columnName = currentColumnName;
2460
+ if (args.column) {
2461
+ columnName = utility.strArg(args.column);
2462
+ if (columnNames.indexOf(columnName) === -1) {
2463
+ utility.error(`Column "${columnName}" doesn't exist`);
2464
+ return;
2465
+ }
2466
+ }
2467
+ &nbsp;
2468
+ // Get a list of existing task ids
2469
+ const taskIds = [...await kanbn.findTrackedTasks()];
2470
+ &nbsp;
2471
+ // Get task settings from arguments
2472
+ // Name
2473
+ if (args.name) {
2474
+ taskData.name = utility.strArg(args.name);
2475
+ }
2476
+ &nbsp;
2477
+ // Description
2478
+ if (args.description) {
2479
+ taskData.description = utility.strArg(args.description);
2480
+ }
2481
+ &nbsp;
2482
+ // Due date
2483
+ if (args.due) {
2484
+ if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2485
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2486
+ <span class="cstat-no" title="statement not covered" > }</span>
2487
+ taskData.metadata.due = chrono.parseDate(utility.strArg(args.due));
2488
+ if (taskData.metadata.due === null) {
2489
+ utility.error('Unable to parse due date');
2490
+ return;
2491
+ }
2492
+ }
2493
+ &nbsp;
2494
+ // Planned start date
2495
+ if (args.plannedStart) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2496
+ <span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
2497
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2498
+ <span class="cstat-no" title="statement not covered" > }</span>
2499
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart = chrono.parseDate(utility.strArg(args.plannedStart));</span>
2500
+ <span class="cstat-no" title="statement not covered" > if (taskData.metadata.plannedStart === null) {</span>
2501
+ <span class="cstat-no" title="statement not covered" > utility.error('Unable to parse plannedStart date');</span>
2502
+ <span class="cstat-no" title="statement not covered" > return;</span>
2503
+ <span class="cstat-no" title="statement not covered" > }</span>
2504
+ <span class="cstat-no" title="statement not covered" > }</span>
2505
+ &nbsp;
2506
+ // Planned finish date
2507
+ if (args.plannedFinish) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2508
+ <span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
2509
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2510
+ <span class="cstat-no" title="statement not covered" > }</span>
2511
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish = chrono.parseDate(utility.strArg(args.plannedFinish));</span>
2512
+ <span class="cstat-no" title="statement not covered" > if (taskData.metadata.plannedFinish === null) {</span>
2513
+ <span class="cstat-no" title="statement not covered" > utility.error('Unable to parse plannedFinish date');</span>
2514
+ <span class="cstat-no" title="statement not covered" > return;</span>
2515
+ <span class="cstat-no" title="statement not covered" > }</span>
2516
+ <span class="cstat-no" title="statement not covered" > }</span>
2517
+ &nbsp;
2518
+ // Progress
2519
+ if (args.progress) {
2520
+ if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2521
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2522
+ <span class="cstat-no" title="statement not covered" > }</span>
2523
+ const progressValue = parseFloat(utility.strArg(args.progress));
2524
+ if (isNaN(progressValue)) {
2525
+ utility.error('Progress value is not a number');
2526
+ return;
2527
+ }
2528
+ taskData.metadata.progress = progressValue;
2529
+ }
2530
+ &nbsp;
2531
+ // Assigned
2532
+ if (args.assigned) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2533
+ <span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
2534
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2535
+ <span class="cstat-no" title="statement not covered" > }</span>
2536
+ <span class="cstat-no" title="statement not covered" > const gitUsername = getGitUsername();</span>
2537
+ <span class="cstat-no" title="statement not covered" > if (args.assigned === true) {</span>
2538
+ <span class="cstat-no" title="statement not covered" > if (gitUsername) {</span>
2539
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.assigned = gitUsername;</span>
2540
+ <span class="cstat-no" title="statement not covered" > }</span>
2541
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2542
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.assigned = utility.strArg(args.assigned);</span>
2543
+ <span class="cstat-no" title="statement not covered" > }</span>
2544
+ <span class="cstat-no" title="statement not covered" > }</span>
2545
+ &nbsp;
2546
+ // Remove sub-tasks
2547
+ if (args['remove-sub-task']) {
2548
+ const removedSubTasks = utility.arrayArg(args['remove-sub-task']);
2549
+ &nbsp;
2550
+ // Check that the sub-tasks being removed currently exist
2551
+ for (let removedSubTask of removedSubTasks) {
2552
+ if (taskData.subTasks.find(subTask =&gt; subTask.text === removedSubTask) === undefined) {
2553
+ utility.error(`Sub-task "${removedSubTask}" doesn't exist`);
2554
+ return;
2555
+ }
2556
+ }
2557
+ taskData.subTasks = taskData.subTasks.filter(subTask =&gt; removedSubTasks.indexOf(subTask.text) === -1);
2558
+ }
2559
+ &nbsp;
2560
+ // Add or update sub-tasks
2561
+ if (args['sub-task']) {
2562
+ const newSubTaskInputs = utility.arrayArg(args['sub-task']);
2563
+ const newSubTasks = newSubTaskInputs.map(subTask =&gt; {
2564
+ const match = subTask.match(/^\[([x ])\] (.*)/);
2565
+ if (match !== null) {
2566
+ return {
2567
+ completed: match[1] === 'x',
2568
+ text: match[2]
2569
+ };
2570
+ }
2571
+ <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return {</span></span>
2572
+ <span class="cstat-no" title="statement not covered" > completed: false,</span>
2573
+ <span class="cstat-no" title="statement not covered" > text: subTask</span>
2574
+ <span class="cstat-no" title="statement not covered" > };</span>
2575
+ });
2576
+ &nbsp;
2577
+ // Add or update
2578
+ for (let newSubTask of newSubTasks) {
2579
+ &nbsp;
2580
+ // Check if a sub-task already exists in the task with matching text
2581
+ const foundSubTask = taskData.subTasks.find(subTask =&gt; subTask.text === newSubTask.text);
2582
+ if (foundSubTask === undefined) {
2583
+ &nbsp;
2584
+ // The sub-task doesn't already exist
2585
+ taskData.subTasks.push(newSubTask);
2586
+ &nbsp;
2587
+ // Otherwise, the sub-task already exists so update its completed status
2588
+ } else {
2589
+ foundSubTask.completed = newSubTask.completed;
2590
+ }
2591
+ }
2592
+ }
2593
+ &nbsp;
2594
+ // Remove tags
2595
+ if (args['remove-tag']) {
2596
+ const removedTags = utility.arrayArg(args['remove-tag']);
2597
+ &nbsp;
2598
+ // Check that the task has metadata
2599
+ if (!('metadata' in taskData) || !('tags' in taskData.metadata) || !Array.isArray(taskData.metadata.tags)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2600
+ <span class="cstat-no" title="statement not covered" > utility.error('Task has no tags to remove');</span>
2601
+ <span class="cstat-no" title="statement not covered" > return;</span>
2602
+ <span class="cstat-no" title="statement not covered" > }</span>
2603
+ &nbsp;
2604
+ // Check that the tags being removed currently exist
2605
+ for (let removedTag of removedTags) {
2606
+ if (taskData.metadata.tags.indexOf(removedTag) === -1) {
2607
+ utility.error(`Tag "${removedTag}" doesn't exist`);
2608
+ return;
2609
+ }
2610
+ }
2611
+ taskData.metadata.tags = taskData.metadata.tags.filter(tag =&gt; removedTags.indexOf(tag) === -1);
2612
+ }
2613
+ &nbsp;
2614
+ // Add tags and overwrite existing tags
2615
+ if (args.tag) {
2616
+ const newTags = utility.arrayArg(args.tag);
2617
+ taskData.metadata.tags = [...new Set([...taskData.metadata.tags <span class="branch-0 cbranch-no" title="branch not covered" >|| [],</span> ...newTags])];
2618
+ }
2619
+ &nbsp;
2620
+ // Remove relations
2621
+ if (args['remove-relation']) {
2622
+ const removedRelations = utility.arrayArg(args['remove-relation']);
2623
+ &nbsp;
2624
+ // Check that the relations being removed currently exist
2625
+ for (let removedRelation of removedRelations) {
2626
+ if (taskData.relations.find(relation =&gt; relation.task === removedRelation) === undefined) {
2627
+ utility.error(`Relation "${removedRelation}" doesn't exist`);
2628
+ return;
2629
+ }
2630
+ }
2631
+ taskData.relations = taskData.relations.filter(relation =&gt; removedRelations.indexOf(relation.task) === -1);
2632
+ }
2633
+ &nbsp;
2634
+ // Add or update relations
2635
+ if (args.relation) {
2636
+ const newRelationInputs = utility.arrayArg(args.relation);
2637
+ const newRelations = newRelationInputs.map(relation =&gt; {
2638
+ const parts = relation.split(' ');
2639
+ return parts.length === 1
2640
+ <span class="branch-0 cbranch-no" title="branch not covered" > ? {</span>
2641
+ <span class="cstat-no" title="statement not covered" > type: '',</span>
2642
+ <span class="cstat-no" title="statement not covered" > task: parts[0].trim()</span>
2643
+ <span class="cstat-no" title="statement not covered" > }</span>
2644
+ : {
2645
+ type: parts[0].trim(),
2646
+ task: parts[1].trim()
2647
+ };
2648
+ });
2649
+ &nbsp;
2650
+ // Add or update
2651
+ for (let newRelation of newRelations) {
2652
+ &nbsp;
2653
+ // Check if a relation already exists in the task with matching task id
2654
+ const foundRelation = taskData.relations.find(relation =&gt; relation.task === newRelation.task);
2655
+ if (foundRelation === undefined) {
2656
+ &nbsp;
2657
+ // The relation doesn't already exist
2658
+ taskData.relations.push(newRelation);
2659
+ &nbsp;
2660
+ // Otherwise, the relation already exists so update its relation type
2661
+ }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
2662
+ <span class="cstat-no" title="statement not covered" > foundRelation.type = newRelation.type;</span>
2663
+ <span class="cstat-no" title="statement not covered" > }</span>
2664
+ }
2665
+ }
2666
+ &nbsp;
2667
+ // Check custom field types
2668
+ if ('customFields' in index.options) {
2669
+ if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2670
+ <span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
2671
+ <span class="cstat-no" title="statement not covered" > }</span>
2672
+ for (let arg of Object.keys(args)) {
2673
+ &nbsp;
2674
+ // Check if we're removing a custom field
2675
+ const removeCustomField = index.options.customFields.find(p =&gt; `remove-${p.name}` === arg);
2676
+ if (removeCustomField !== undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2677
+ <span class="cstat-no" title="statement not covered" > if (removeCustomField.name in taskData.metadata) {</span>
2678
+ <span class="cstat-no" title="statement not covered" > delete taskData.metadata[removeCustomField.name];</span>
2679
+ <span class="cstat-no" title="statement not covered" > }</span>
2680
+ <span class="cstat-no" title="statement not covered" > }</span>
2681
+ &nbsp;
2682
+ // Check if we're adding or modifying a custom field
2683
+ const customField = index.options.customFields.find(p =&gt; p.name === arg);
2684
+ if (customField !== undefined) {
2685
+ &nbsp;
2686
+ // Check value type
2687
+ switch (customField.type) {
2688
+ <span class="branch-0 cbranch-no" title="branch not covered" > case 'boolean':</span>
2689
+ <span class="cstat-no" title="statement not covered" > if (typeof args[arg] === 'boolean') {</span>
2690
+ <span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = args[arg];</span>
2691
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2692
+ <span class="cstat-no" title="statement not covered" > utility.error(`Custom field "${arg}" value is not a boolean`);</span>
2693
+ <span class="cstat-no" title="statement not covered" > return;</span>
2694
+ <span class="cstat-no" title="statement not covered" > }</span>
2695
+ <span class="cstat-no" title="statement not covered" > break;</span>
2696
+ case 'number':
2697
+ const numberValue = parseFloat(args[arg]);
2698
+ if (!isNaN(numberValue)) {
2699
+ taskData.metadata[arg] = numberValue;
2700
+ } else {
2701
+ utility.error(`Custom field "${arg}" value is not a number`);
2702
+ return;
2703
+ }
2704
+ break;
2705
+ <span class="branch-0 cbranch-no" title="branch not covered" > case 'string':</span>
2706
+ <span class="cstat-no" title="statement not covered" > if (typeof args[arg] === 'string') {</span>
2707
+ <span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = args[arg];</span>
2708
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2709
+ <span class="cstat-no" title="statement not covered" > utility.error(`Custom field "${fieldName}" value is not a string`);</span>
2710
+ <span class="cstat-no" title="statement not covered" > return;</span>
2711
+ <span class="cstat-no" title="statement not covered" > }</span>
2712
+ <span class="cstat-no" title="statement not covered" > break;</span>
2713
+ <span class="branch-0 cbranch-no" title="branch not covered" > case 'date':</span>
2714
+ <span class="cstat-no" title="statement not covered" > const dateValue = chrono.parseDate(args[arg]);</span>
2715
+ <span class="cstat-no" title="statement not covered" > if (dateValue instanceof Date) {</span>
2716
+ <span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = dateValue;</span>
2717
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2718
+ <span class="cstat-no" title="statement not covered" > utility.error(`Unable to parse date for custom field "${arg}"`);</span>
2719
+ <span class="cstat-no" title="statement not covered" > return;</span>
2720
+ <span class="cstat-no" title="statement not covered" > }</span>
2721
+ <span class="cstat-no" title="statement not covered" > break;</span>
2722
+ <span class="branch-0 cbranch-no" title="branch not covered" > default: break;</span>
2723
+ }
2724
+ }
2725
+ }
2726
+ }
2727
+ &nbsp;
2728
+ // Unset metadata fields
2729
+ const unsetFields = [];
2730
+ if (args.unset) {
2731
+ const customFieldNames = 'customFields' in index.options
2732
+ ? index.options.customFields.map(customField =&gt; customField.name)
2733
+ : [];
2734
+ const unsettableFields = [...UNSETTABLE_FIELDS, ...customFieldNames];
2735
+ &nbsp;
2736
+ // Arguments that set the value of a metadata field, so that setting and unsetting the same
2737
+ // field in one command can be rejected instead of silently resolving one way or the other
2738
+ const settingArgs = {
2739
+ due: args.due,
2740
+ plannedStart: args.plannedStart,
2741
+ plannedFinish: args.plannedFinish,
2742
+ progress: args.progress,
2743
+ assigned: args.assigned,
2744
+ tags: args.tag,
2745
+ ...Object.fromEntries(customFieldNames.map(name =&gt; [name, args[name]]))
2746
+ };
2747
+ &nbsp;
2748
+ for (let field of utility.arrayArg(args.unset)) {
2749
+ if (unsettableFields.indexOf(field) === -1) {
2750
+ utility.error(
2751
+ `Cannot unset "${field}"\nAvailable fields: ${unsettableFields.join(', ')}`
2752
+ );
2753
+ return;
2754
+ }
2755
+ if (settingArgs[field] !== undefined) {
2756
+ utility.error(`Cannot set and unset "${field}" in the same command`);
2757
+ return;
2758
+ }
2759
+ if (unsetFields.indexOf(field) === -1) {
2760
+ unsetFields.push(field);
2761
+ }
2762
+ }
2763
+ }
2764
+ &nbsp;
2765
+ // Update task interactively
2766
+ if (args.interactive) {
2767
+ interactive(taskData, taskIds, columnName, columnNames)
2768
+ .then(answers =&gt; {
2769
+ &nbsp;
2770
+ // Name
2771
+ taskData.name = answers.name;
2772
+ &nbsp;
2773
+ // Description
2774
+ if ('description' in answers) {
2775
+ taskData.description = answers.description;
2776
+ }
2777
+ &nbsp;
2778
+ // Remove due date
2779
+ if ('editDue' in answers &amp;&amp; answers.editDue === 'remove') {
2780
+ delete taskData.metadata.due;
2781
+ }
2782
+ &nbsp;
2783
+ // Due date
2784
+ if ('due' in answers) {
2785
+ taskData.metadata.due = answers.due;
2786
+ }
2787
+ &nbsp;
2788
+ // Remove planned start date
2789
+ if ('editPlannedStart' in answers <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; answers.editPlannedStart === 'remove')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2790
+ <span class="cstat-no" title="statement not covered" > delete taskData.metadata.plannedStart;</span>
2791
+ <span class="cstat-no" title="statement not covered" > }</span>
2792
+ &nbsp;
2793
+ // Planned start date
2794
+ if ('plannedStart' in answers) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2795
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart = answers.plannedStart;</span>
2796
+ <span class="cstat-no" title="statement not covered" > }</span>
2797
+ &nbsp;
2798
+ // Remove planned finish date
2799
+ if ('editPlannedFinish' in answers <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; answers.editPlannedFinish === 'remove')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2800
+ <span class="cstat-no" title="statement not covered" > delete taskData.metadata.plannedFinish;</span>
2801
+ <span class="cstat-no" title="statement not covered" > }</span>
2802
+ &nbsp;
2803
+ // Planned finish date
2804
+ if ('plannedFinish' in answers) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2805
+ <span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish = answers.plannedFinish;</span>
2806
+ <span class="cstat-no" title="statement not covered" > }</span>
2807
+ &nbsp;
2808
+ // Remove assigned
2809
+ if ('editAssigned' in answers &amp;&amp; answers.editAssigned === 'remove') {
2810
+ delete taskData.metadata.assigned;
2811
+ }
2812
+ &nbsp;
2813
+ // Assigned
2814
+ if ('assigned' in answers) {
2815
+ taskData.metadata.assigned = answers.assigned;
2816
+ }
2817
+ &nbsp;
2818
+ // Edit or remove sub-tasks
2819
+ if ('editSubTasks' in answers) {
2820
+ for (editSubTask of answers.editSubTasks) {
2821
+ const i = taskData.subTasks.findIndex(subTask =&gt; subTask.text === editSubTask.selectSubTask);
2822
+ if (i !== -1) {
2823
+ switch (editSubTask.editSubTask) {
2824
+ case 'remove':
2825
+ taskData.subTasks.splice(i, 1);
2826
+ break;
2827
+ case 'edit':
2828
+ taskData.subTasks[i].completed = editSubTask.completed;
2829
+ break;
2830
+ default:
2831
+ break;
2832
+ }
2833
+ }
2834
+ }
2835
+ }
2836
+ &nbsp;
2837
+ // Add sub-tasks
2838
+ if ('addSubTasks' in answers) {
2839
+ taskData.subTasks.push(...answers.addSubTasks.map(addSubTask =&gt; ({
2840
+ text: addSubTask.text,
2841
+ completed: addSubTask.completed
2842
+ })));
2843
+ }
2844
+ &nbsp;
2845
+ // Remove tags
2846
+ if ('removeTags' in answers &amp;&amp; 'metadata' in taskData &amp;&amp; 'tags' in taskData.metadata) {
2847
+ for (removeTag of answers.removeTags) {
2848
+ const i = taskData.metadata.tags.indexOf(removeTag.selectTag);
2849
+ if (i !== -1) {
2850
+ taskData.metadata.tags.splice(i, 1);
2851
+ }
2852
+ }
2853
+ }
2854
+ &nbsp;
2855
+ // Add tags
2856
+ if ('addTags' in answers &amp;&amp; 'metadata' in taskData &amp;&amp; 'tags' in taskData.metadata) {
2857
+ taskData.metadata.tags.push(...answers.addTags.map(tag =&gt; tag.name));
2858
+ }
2859
+ &nbsp;
2860
+ // Edit or remove relations
2861
+ if ('editRelations' in answers) {
2862
+ for (editRelation of answers.editRelations) {
2863
+ const i = taskData.relations.findIndex(relation =&gt; relation.task === editRelation.selectRelation);
2864
+ if (i !== -1) {
2865
+ switch (editRelation.editRelation) {
2866
+ case 'remove':
2867
+ taskData.relations.splice(i, 1);
2868
+ break;
2869
+ case 'edit':
2870
+ taskData.relations[i].type = editRelation.type;
2871
+ break;
2872
+ <span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
2873
+ <span class="cstat-no" title="statement not covered" > break;</span>
2874
+ }
2875
+ }
2876
+ }
2877
+ }
2878
+ &nbsp;
2879
+ // Add relations
2880
+ if ('addRelations' in answers) {
2881
+ taskData.relations.push(...answers.addRelations.map(addRelation =&gt; ({
2882
+ task: addRelation.task,
2883
+ type: addRelation.type
2884
+ })));
2885
+ }
2886
+ &nbsp;
2887
+ // Update task
2888
+ columnName = answers.column !== currentColumnName ? answers.column : null;
2889
+ updateTask(taskId, taskData, columnName, unsetFields);
2890
+ })
2891
+ .catch(error =&gt; {
2892
+ utility.error(error);
2893
+ });
2894
+ &nbsp;
2895
+ // Otherwise edit task non-interactively
2896
+ } else {
2897
+ columnName = columnName !== currentColumnName ? columnName : null;
2898
+ updateTask(taskId, taskData, columnName, unsetFields);
2899
+ }
2900
+ };
2901
+ &nbsp;</pre></td></tr></table></pre>
2902
+
2903
+ <div class='push'></div><!-- for sticky footer -->
2904
+ </div><!-- /wrapper -->
2905
+ <div class='footer quiet pad2 space-top1 center small'>
2906
+ Code coverage generated by
2907
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2908
+ at 2026-08-26T20:46:31.702Z
2909
+ </div>
2910
+ <script src="../../../prettify.js"></script>
2911
+ <script>
2912
+ window.onload = function () {
2913
+ prettyPrint();
2914
+ };
2915
+ </script>
2916
+ <script src="../../../sorter.js"></script>
2917
+ <script src="../../../block-navigation.js"></script>
2918
+ </body>
2919
+ </html>
2920
+