@@ -85,51 +85,41 @@ |
||
85 | 85 | if (self::handlerExist('message')) { |
86 | 86 | BPT::$handler->message(BPT::$update->message); |
87 | 87 | } |
88 | - } |
|
89 | - elseif (isset(BPT::$update->edited_message)) { |
|
88 | + } elseif (isset(BPT::$update->edited_message)) { |
|
90 | 89 | if (self::handlerExist('edited_message')) { |
91 | 90 | BPT::$handler->edited_message(BPT::$update->edited_message); |
92 | 91 | } |
93 | - } |
|
94 | - elseif (isset(BPT::$update->channel_post)) { |
|
92 | + } elseif (isset(BPT::$update->channel_post)) { |
|
95 | 93 | if (self::handlerExist('channel_post')) { |
96 | 94 | BPT::$handler->channel_post(BPT::$update->channel_post); |
97 | 95 | } |
98 | - } |
|
99 | - elseif (isset(BPT::$update->edited_channel_post)) { |
|
96 | + } elseif (isset(BPT::$update->edited_channel_post)) { |
|
100 | 97 | if (self::handlerExist('edited_channel_post')) { |
101 | 98 | BPT::$handler->edited_channel_post(BPT::$update->edited_channel_post); |
102 | 99 | } |
103 | - } |
|
104 | - elseif (isset(BPT::$update->inline_query)) { |
|
100 | + } elseif (isset(BPT::$update->inline_query)) { |
|
105 | 101 | if (self::handlerExist('inline_query')) { |
106 | 102 | BPT::$handler->inline_query(BPT::$update->inline_query); |
107 | 103 | } |
108 | - } |
|
109 | - elseif (isset(BPT::$update->callback_query)) { |
|
104 | + } elseif (isset(BPT::$update->callback_query)) { |
|
110 | 105 | if (self::handlerExist('callback_query')) { |
111 | 106 | BPT::$handler->callback_query(BPT::$update->callback_query); |
112 | 107 | } |
113 | - } |
|
114 | - elseif (isset(BPT::$update->my_chat_member)) { |
|
108 | + } elseif (isset(BPT::$update->my_chat_member)) { |
|
115 | 109 | if (self::handlerExist('my_chat_member')) { |
116 | 110 | BPT::$handler->my_chat_member(BPT::$update->my_chat_member); |
117 | 111 | } |
118 | - } |
|
119 | - elseif (isset(BPT::$update->chat_member)) { |
|
112 | + } elseif (isset(BPT::$update->chat_member)) { |
|
120 | 113 | if (self::handlerExist('chat_member')) { |
121 | 114 | BPT::$handler->chat_member(BPT::$update->chat_member); |
122 | 115 | } |
123 | - } |
|
124 | - elseif (isset(BPT::$update->chat_join_request)) { |
|
116 | + } elseif (isset(BPT::$update->chat_join_request)) { |
|
125 | 117 | if (self::handlerExist('chat_join_request')) { |
126 | 118 | BPT::$handler->chat_join_request(BPT::$update->chat_join_request); |
127 | 119 | } |
128 | - } |
|
129 | - elseif (self::handlerExist('something_else')) { |
|
120 | + } elseif (self::handlerExist('something_else')) { |
|
130 | 121 | BPT::$handler->something_else(BPT::$update); |
131 | - } |
|
132 | - else { |
|
122 | + } else { |
|
133 | 123 | logger::write('Update received but handlers are not set',loggerTypes::WARNING); |
134 | 124 | } |
135 | 125 | } |
@@ -49,8 +49,7 @@ |
||
49 | 49 | foreach ($data as $key=>&$value){ |
50 | 50 | if (!isset($value)){ |
51 | 51 | unset($data[$key]); |
52 | - } |
|
53 | - elseif (is_array($value) || is_object($value)){ |
|
52 | + } elseif (is_array($value) || is_object($value)){ |
|
54 | 53 | $value = json_encode($value); |
55 | 54 | } |
56 | 55 | } |
@@ -811,19 +811,16 @@ discard block |
||
811 | 811 | foreach ($arguments['media'] as $key => $media) { |
812 | 812 | if ($media['media'] instanceof CURLFile) { |
813 | 813 | $remove_answer = true; |
814 | - } |
|
815 | - elseif (is_string($media['media']) && file_exists(realpath($media['media']))) { |
|
814 | + } elseif (is_string($media['media']) && file_exists(realpath($media['media']))) { |
|
816 | 815 | $arguments['media'][$key]['media'] = new CURLFile($media['media']); |
817 | 816 | $remove_answer = true; |
818 | 817 | } |
819 | 818 | } |
820 | - } |
|
821 | - elseif ($file_params = self::methodFile($name)) { |
|
819 | + } elseif ($file_params = self::methodFile($name)) { |
|
822 | 820 | foreach ($file_params as $param) { |
823 | 821 | if ($arguments[$param] instanceof CURLFile) { |
824 | 822 | $remove_answer = true; |
825 | - } |
|
826 | - elseif (isset($arguments[$param]) && is_string($arguments[$param]) && file_exists(realpath($arguments[$param]))) { |
|
823 | + } elseif (isset($arguments[$param]) && is_string($arguments[$param]) && file_exists(realpath($arguments[$param]))) { |
|
827 | 824 | $arguments[$param] = new CURLFile($arguments[$param]); |
828 | 825 | $remove_answer = true; |
829 | 826 | } |
@@ -861,8 +858,7 @@ discard block |
||
861 | 858 | if (!isset($arguments[$default])){ |
862 | 859 | $arguments[$default] = self::catchFields($default); |
863 | 860 | } |
864 | - } |
|
865 | - elseif (isset(BPT::$update->$key) || $key === 'other') { |
|
861 | + } elseif (isset(BPT::$update->$key) || $key === 'other') { |
|
866 | 862 | foreach ($default as $def) { |
867 | 863 | if (!isset($arguments[$def])){ |
868 | 864 | $arguments[$def] = self::catchFields($def); |
@@ -919,9 +915,13 @@ discard block |
||
919 | 915 | default => false |
920 | 916 | }; |
921 | 917 | case fields::FILE_ID : |
922 | - if (isset(BPT::$update->message)) $type = 'message'; |
|
923 | - elseif (isset(BPT::$update->edited_message)) $type = 'edited_message'; |
|
924 | - else return false; |
|
918 | + if (isset(BPT::$update->message)) { |
|
919 | + $type = 'message'; |
|
920 | + } elseif (isset(BPT::$update->edited_message)) { |
|
921 | + $type = 'edited_message'; |
|
922 | + } else { |
|
923 | + return false; |
|
924 | + } |
|
925 | 925 | |
926 | 926 | return match(true) { |
927 | 927 | isset(BPT::$update->$type->animation) => BPT::$update->$type->animation->file_id, |
@@ -12,7 +12,9 @@ discard block |
||
12 | 12 | class jdf { |
13 | 13 | public static function jdate ($format, $timestamp = '', $none = '', $time_zone = 'Asia/Tehran', $tr_num = 'fa') { |
14 | 14 | $T_sec = 0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */ |
15 | - if ($time_zone != 'local') date_default_timezone_set(($time_zone === '') ? 'Asia/Tehran' : $time_zone); |
|
15 | + if ($time_zone != 'local') { |
|
16 | + date_default_timezone_set(($time_zone === '') ? 'Asia/Tehran' : $time_zone); |
|
17 | + } |
|
16 | 18 | $ts = $T_sec + (($timestamp === '') ? time() : self::tr_num($timestamp)); |
17 | 19 | $date = explode('_', date('H_i_j_n_O_P_s_w_Y', $ts)); |
18 | 20 | [$j_y, $j_m, $j_d] = self::gregorian_to_jalali($date[8], $date[3], $date[2]); |
@@ -155,16 +157,19 @@ discard block |
||
155 | 157 | break; |
156 | 158 | case 'W': |
157 | 159 | $avs = (($date[7] == 6) ? 0 : $date[7] + 1) - ($doy % 7); |
158 | - if ($avs < 0) $avs += 7; |
|
160 | + if ($avs < 0) { |
|
161 | + $avs += 7; |
|
162 | + } |
|
159 | 163 | $num = (int) (($doy + $avs) / 7); |
160 | 164 | if ($avs < 4) { |
161 | 165 | $num++; |
162 | - } |
|
163 | - elseif ($num < 1) { |
|
166 | + } elseif ($num < 1) { |
|
164 | 167 | $num = ($avs == 4 or $avs == ((((($j_y % 33) % 4) - 2) == ((int) (($j_y % 33) * 0.05))) ? 5 : 4)) ? 53 : 52; |
165 | 168 | } |
166 | 169 | $aks = $avs + $kab; |
167 | - if ($aks == 7) $aks = 0; |
|
170 | + if ($aks == 7) { |
|
171 | + $aks = 0; |
|
172 | + } |
|
168 | 173 | $out .= (($kab + 363 - $doy) < $aks and $aks < 3) ? '01' : (($num < 10) ? '0' . $num : $num); |
169 | 174 | break; |
170 | 175 | case 'y': |
@@ -184,7 +189,9 @@ discard block |
||
184 | 189 | } |
185 | 190 | public static function jstrftime ($format, $timestamp = '', $none = '', $time_zone = 'Asia/Tehran', $tr_num = 'fa') { |
186 | 191 | $T_sec = 0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */ |
187 | - if ($time_zone != 'local') date_default_timezone_set(($time_zone === '') ? 'Asia/Tehran' : $time_zone); |
|
192 | + if ($time_zone != 'local') { |
|
193 | + date_default_timezone_set(($time_zone === '') ? 'Asia/Tehran' : $time_zone); |
|
194 | + } |
|
188 | 195 | $ts = $T_sec + (($timestamp === '') ? time() : self::tr_num($timestamp)); |
189 | 196 | $date = explode('_', date('h_H_i_j_n_s_w_Y', $ts)); |
190 | 197 | [$j_y, $j_m, $j_d] = self::gregorian_to_jalali($date[7], $date[4], $date[3]); |
@@ -196,8 +203,7 @@ discard block |
||
196 | 203 | $sub = substr($format, $i, 1); |
197 | 204 | if ($sub == '%') { |
198 | 205 | $sub = substr($format, ++$i, 1); |
199 | - } |
|
200 | - else { |
|
206 | + } else { |
|
201 | 207 | $out .= $sub; |
202 | 208 | continue; |
203 | 209 | } |
@@ -228,30 +234,41 @@ discard block |
||
228 | 234 | /* Week */ |
229 | 235 | case 'U': |
230 | 236 | $avs = (($date[6] < 5) ? $date[6] + 2 : $date[6] - 5) - ($doy % 7); |
231 | - if ($avs < 0) $avs += 7; |
|
237 | + if ($avs < 0) { |
|
238 | + $avs += 7; |
|
239 | + } |
|
232 | 240 | $num = (int) (($doy + $avs) / 7) + 1; |
233 | - if ($avs > 3 or $avs == 1) $num--; |
|
241 | + if ($avs > 3 or $avs == 1) { |
|
242 | + $num--; |
|
243 | + } |
|
234 | 244 | $out .= ($num < 10) ? '0' . $num : $num; |
235 | 245 | break; |
236 | 246 | case 'V': |
237 | 247 | $avs = (($date[6] == 6) ? 0 : $date[6] + 1) - ($doy % 7); |
238 | - if ($avs < 0) $avs += 7; |
|
248 | + if ($avs < 0) { |
|
249 | + $avs += 7; |
|
250 | + } |
|
239 | 251 | $num = (int) (($doy + $avs) / 7); |
240 | 252 | if ($avs < 4) { |
241 | 253 | $num++; |
242 | - } |
|
243 | - elseif ($num < 1) { |
|
254 | + } elseif ($num < 1) { |
|
244 | 255 | $num = ($avs == 4 or $avs == ((((($j_y % 33) % 4) - 2) == ((int) (($j_y % 33) * 0.05))) ? 5 : 4)) ? 53 : 52; |
245 | 256 | } |
246 | 257 | $aks = $avs + $kab; |
247 | - if ($aks == 7) $aks = 0; |
|
258 | + if ($aks == 7) { |
|
259 | + $aks = 0; |
|
260 | + } |
|
248 | 261 | $out .= (($kab + 363 - $doy) < $aks and $aks < 3) ? '01' : (($num < 10) ? '0' . $num : $num); |
249 | 262 | break; |
250 | 263 | case 'W': |
251 | 264 | $avs = (($date[6] == 6) ? 0 : $date[6] + 1) - ($doy % 7); |
252 | - if ($avs < 0) $avs += 7; |
|
265 | + if ($avs < 0) { |
|
266 | + $avs += 7; |
|
267 | + } |
|
253 | 268 | $num = (int) (($doy + $avs) / 7) + 1; |
254 | - if ($avs > 3) $num--; |
|
269 | + if ($avs > 3) { |
|
270 | + $num--; |
|
271 | + } |
|
255 | 272 | $out .= ($num < 10) ? '0' . $num : $num; |
256 | 273 | break; |
257 | 274 | /* Month */ |
@@ -360,11 +377,12 @@ discard block |
||
360 | 377 | return ($tr_num != 'en') ? self::tr_num($out, 'fa', '.') : $out; |
361 | 378 | } |
362 | 379 | public static function jmktime ($h = '', $m = '', $s = '', $jm = '', $jd = '', $jy = '', $none = '', $timezone = 'Asia/Tehran') { |
363 | - if ($timezone != 'local') date_default_timezone_set($timezone); |
|
380 | + if ($timezone != 'local') { |
|
381 | + date_default_timezone_set($timezone); |
|
382 | + } |
|
364 | 383 | if ($h === '') { |
365 | 384 | return time(); |
366 | - } |
|
367 | - else { |
|
385 | + } else { |
|
368 | 386 | [ |
369 | 387 | $h, |
370 | 388 | $m, |
@@ -375,27 +393,22 @@ discard block |
||
375 | 393 | ] = explode('_', self::tr_num($h . '_' . $m . '_' . $s . '_' . $jm . '_' . $jd . '_' . $jy)); |
376 | 394 | if ($m === '') { |
377 | 395 | return mktime($h); |
378 | - } |
|
379 | - else { |
|
396 | + } else { |
|
380 | 397 | if ($s === '') { |
381 | 398 | return mktime($h, $m); |
382 | - } |
|
383 | - else { |
|
399 | + } else { |
|
384 | 400 | if ($jm === '') { |
385 | 401 | return mktime($h, $m, $s); |
386 | - } |
|
387 | - else { |
|
402 | + } else { |
|
388 | 403 | $jdate = explode('_', self::jdate('Y_j', '', '', $timezone, 'en')); |
389 | 404 | if ($jd === '') { |
390 | 405 | [$gy, $gm, $gd] = self::jalali_to_gregorian($jdate[0], $jm, $jdate[1]); |
391 | 406 | return mktime($h, $m, $s, $gm); |
392 | - } |
|
393 | - else { |
|
407 | + } else { |
|
394 | 408 | if ($jy === '') { |
395 | 409 | [$gy, $gm, $gd] = self::jalali_to_gregorian($jdate[0], $jm, $jd); |
396 | 410 | return mktime($h, $m, $s, $gm, $gd); |
397 | - } |
|
398 | - else { |
|
411 | + } else { |
|
399 | 412 | [$gy, $gm, $gd] = self::jalali_to_gregorian($jy, $jm, $jd); |
400 | 413 | return mktime($h, $m, $s, $gm, $gd, $gy); |
401 | 414 | } |
@@ -445,8 +458,7 @@ discard block |
||
445 | 458 | $p34 = ''; |
446 | 459 | $k34 = ['ده', 'یازده', 'دوازده', 'سیزده', 'چهارده', 'پانزده', 'شانزده', 'هفده', 'هجده', 'نوزده']; |
447 | 460 | $h34 = $k34[substr($num, 2 - $sl, 2) - 10]; |
448 | - } |
|
449 | - else { |
|
461 | + } else { |
|
450 | 462 | $xy4 = substr($num, 3 - $sl, 1); |
451 | 463 | $p34 = ($xy3 == 0 or $xy4 == 0) ? '' : ' و '; |
452 | 464 | $k3 = ['', '', 'بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود']; |
@@ -561,8 +573,7 @@ discard block |
||
561 | 573 | if ($days < 186) { |
562 | 574 | $jm = 1 + (int) ($days / 31); |
563 | 575 | $jd = 1 + ($days % 31); |
564 | - } |
|
565 | - else { |
|
576 | + } else { |
|
566 | 577 | $jm = 7 + (int) (($days - 186) / 30); |
567 | 578 | $jd = 1 + (($days - 186) % 30); |
568 | 579 | } |
@@ -577,7 +588,9 @@ discard block |
||
577 | 588 | if ($days > 36524) { |
578 | 589 | $gy += 100 * ((int) (--$days / 36524)); |
579 | 590 | $days %= 36524; |
580 | - if ($days >= 365) $days++; |
|
591 | + if ($days >= 365) { |
|
592 | + $days++; |
|
593 | + } |
|
581 | 594 | } |
582 | 595 | $gy += 4 * ((int) ($days / 1461)); |
583 | 596 | $days %= 1461; |
@@ -601,7 +614,9 @@ discard block |
||
601 | 614 | 30, |
602 | 615 | 31 |
603 | 616 | ]; |
604 | - for ($gm = 0; $gm < 13 and $gd > $sal_a[$gm]; $gm++) $gd -= $sal_a[$gm]; |
|
617 | + for ($gm = 0; $gm < 13 and $gd > $sal_a[$gm]; $gm++) { |
|
618 | + $gd -= $sal_a[$gm]; |
|
619 | + } |
|
605 | 620 | return ($mod == '') ? [$gy, $gm, $gd] : $gy . $mod . $gm . $mod . $gd; |
606 | 621 | } |
607 | 622 | } |
608 | 623 | \ No newline at end of file |
@@ -69,17 +69,13 @@ discard block |
||
69 | 69 | if (self::$auto_process) { |
70 | 70 | if (isset(BPT::$update->message)) { |
71 | 71 | self::processMessage(BPT::$update->message); |
72 | - } |
|
73 | - elseif (isset(BPT::$update->edited_message)) { |
|
72 | + } elseif (isset(BPT::$update->edited_message)) { |
|
74 | 73 | self::processMessage(BPT::$update->edited_message); |
75 | - } |
|
76 | - elseif (isset(BPT::$update->callback_query)) { |
|
74 | + } elseif (isset(BPT::$update->callback_query)) { |
|
77 | 75 | self::processCallbackQuery(BPT::$update->callback_query); |
78 | - } |
|
79 | - elseif (isset(BPT::$update->inline_query)) { |
|
76 | + } elseif (isset(BPT::$update->inline_query)) { |
|
80 | 77 | self::processInlineQuery(BPT::$update->inline_query); |
81 | - } |
|
82 | - elseif (isset(BPT::$update->my_chat_member)) { |
|
78 | + } elseif (isset(BPT::$update->my_chat_member)) { |
|
83 | 79 | self::processMyChatMember(BPT::$update->my_chat_member); |
84 | 80 | } |
85 | 81 | } |
@@ -136,8 +132,7 @@ discard block |
||
136 | 132 | if ($type === chatType::PRIVATE) { |
137 | 133 | if ($update->new_chat_member->status === chatMemberStatus::MEMBER) { |
138 | 134 | self::update('users', ['blocked' => false], ['id' => $update->from->id], 1); |
139 | - } |
|
140 | - else { |
|
135 | + } else { |
|
141 | 136 | self::update('users', ['blocked' => true], ['id' => $update->from->id], 1); |
142 | 137 | } |
143 | 138 | } |
@@ -251,11 +246,9 @@ discard block |
||
251 | 246 | foreach ($vars as $var) { |
252 | 247 | if (is_int($var)) { |
253 | 248 | $types .= 'i'; |
254 | - } |
|
255 | - elseif (is_double($var)) { |
|
249 | + } elseif (is_double($var)) { |
|
256 | 250 | $types .= 'd'; |
257 | - } |
|
258 | - else { |
|
251 | + } else { |
|
259 | 252 | $types .= 's'; |
260 | 253 | } |
261 | 254 | } |
@@ -273,15 +266,13 @@ discard block |
||
273 | 266 | foreach ($array as $name => $value) { |
274 | 267 | if ($first) { |
275 | 268 | $first = false; |
276 | - } |
|
277 | - else { |
|
269 | + } else { |
|
278 | 270 | $query .= $operator; |
279 | 271 | } |
280 | 272 | if ($is_update && str_starts_with($value, '.=') && is_numeric(substr($value,2))) { |
281 | 273 | $query .= " `$name` = `$name` + ?"; |
282 | 274 | $values[] = substr($value,2); |
283 | - } |
|
284 | - else { |
|
275 | + } else { |
|
285 | 276 | $query .= " `$name` = ?"; |
286 | 277 | $values[] = $value; |
287 | 278 | } |
@@ -298,8 +289,7 @@ discard block |
||
298 | 289 | } |
299 | 290 | if (!empty($count)) { |
300 | 291 | $query .= !empty($offset) ? " LIMIT $offset,$count" : " LIMIT $count"; |
301 | - } |
|
302 | - elseif (!empty($offset)) { |
|
292 | + } elseif (!empty($offset)) { |
|
303 | 293 | $query .= " OFFSET $offset"; |
304 | 294 | } |
305 | 295 | return $values; |
@@ -317,8 +307,7 @@ discard block |
||
317 | 307 | foreach ($where as $name => $value) { |
318 | 308 | if ($first) { |
319 | 309 | $first = false; |
320 | - } |
|
321 | - else { |
|
310 | + } else { |
|
322 | 311 | $query .= ' AND'; |
323 | 312 | } |
324 | 313 | |
@@ -384,8 +373,7 @@ discard block |
||
384 | 373 | foreach ($order_by as $key => $mode) { |
385 | 374 | if ($first) { |
386 | 375 | $first = false; |
387 | - } |
|
388 | - else { |
|
376 | + } else { |
|
389 | 377 | $query .= ', '; |
390 | 378 | } |
391 | 379 | if (is_numeric($key)) { |
@@ -399,8 +387,7 @@ discard block |
||
399 | 387 | private static function countBuilder(string &$query, int $count = null, int $offset = null): void { |
400 | 388 | if (!empty($count)) { |
401 | 389 | $query .= !empty($offset) ? " LIMIT $offset,$count" : " LIMIT $count"; |
402 | - } |
|
403 | - elseif (!empty($offset)) { |
|
390 | + } elseif (!empty($offset)) { |
|
404 | 391 | $query .= " OFFSET $offset"; |
405 | 392 | } |
406 | 393 | } |
@@ -412,8 +399,7 @@ discard block |
||
412 | 399 | foreach ($modify as $name => $value) { |
413 | 400 | if ($first) { |
414 | 401 | $first = false; |
415 | - } |
|
416 | - else { |
|
402 | + } else { |
|
417 | 403 | $query .= ' ,'; |
418 | 404 | } |
419 | 405 | |
@@ -453,7 +439,9 @@ discard block |
||
453 | 439 | |
454 | 440 | private static function insertBuilder(string &$query, string|array $columns, array|string $values): array { |
455 | 441 | $query .= '(`' . (is_string($columns) ? $columns : implode('`,`', $columns)) . '`) VALUES ('; |
456 | - if (is_string($values)) $values = [$values]; |
|
442 | + if (is_string($values)) { |
|
443 | + $values = [$values]; |
|
444 | + } |
|
457 | 445 | $query .= '?' . str_repeat(',?', count($values) - 1) . ')'; |
458 | 446 | return $values; |
459 | 447 | } |
@@ -461,8 +449,7 @@ discard block |
||
461 | 449 | private static function selectBuilder(string &$query, string|array $columns): void { |
462 | 450 | if ($columns == '*') { |
463 | 451 | $query .= " * "; |
464 | - } |
|
465 | - else { |
|
452 | + } else { |
|
466 | 453 | $query .= ' `' . (is_string($columns) ? $columns : implode('`,`', $columns)) . '` '; |
467 | 454 | } |
468 | 455 | } |
@@ -604,9 +591,12 @@ discard block |
||
604 | 591 | public static function selectEach (string $table, array|string $columns = '*', array $where = null, int $count = null, int $offset = null): bool|Generator { |
605 | 592 | $res = self::select($table, $columns, $where, $count, $offset); |
606 | 593 | if ($res) { |
607 | - while ($row = $res->fetch_assoc()) yield $row; |
|
594 | + while ($row = $res->fetch_assoc()) { |
|
595 | + yield $row; |
|
596 | + } |
|
597 | + } else { |
|
598 | + return $res; |
|
608 | 599 | } |
609 | - else return $res; |
|
610 | 600 | } |
611 | 601 | |
612 | 602 | /** |