Merge pull request #19075 from colemanw/searchable
[civicrm-core.git] / CRM / Core / DAO / UFField.php
CommitLineData
e501603b 1<?php
c3fc2621 2
e501603b
TO
3/**
4 * @package CRM
ca5cec67 5 * @copyright CiviCRM LLC https://civicrm.org/licensing
e501603b
TO
6 *
7 * Generated from xml/schema/CRM/Core/UFField.xml
8 * DO NOT EDIT. Generated by CRM_Core_CodeGen
d31fb4e3 9 * (GenCodeChecksum:1c306561fedcaf68fb7d1c78756edf2e)
e501603b 10 */
c3fc2621 11
f41f0342 12/**
c3fc2621 13 * Database access object for the UFField entity.
f41f0342 14 */
e501603b 15class CRM_Core_DAO_UFField extends CRM_Core_DAO {
929a1c14
CW
16 const EXT = 'civicrm';
17 const TABLE_ADDED = '1.1';
c3fc2621 18
e501603b 19 /**
f41f0342 20 * Static instance to hold the table name.
e501603b
TO
21 *
22 * @var string
23 */
fa45b5b9 24 public static $_tableName = 'civicrm_uf_field';
c3fc2621 25
e501603b 26 /**
f41f0342 27 * Should CiviCRM log any modifications to this table in the civicrm_log table.
e501603b 28 *
c3fc2621 29 * @var bool
e501603b 30 */
fa45b5b9 31 public static $_log = TRUE;
c3fc2621 32
e501603b
TO
33 /**
34 * Unique table ID
35 *
e6ca0a57 36 * @var int
e501603b
TO
37 */
38 public $id;
c3fc2621 39
e501603b
TO
40 /**
41 * Which form does this field belong to.
42 *
e6ca0a57 43 * @var int
e501603b
TO
44 */
45 public $uf_group_id;
c3fc2621 46
e501603b
TO
47 /**
48 * Name for CiviCRM field which is being exposed for sharing.
49 *
50 * @var string
51 */
52 public $field_name;
c3fc2621 53
e501603b
TO
54 /**
55 * Is this field currently shareable? If false, hide the field for all sharing contexts.
56 *
e6ca0a57 57 * @var bool
e501603b
TO
58 */
59 public $is_active;
c3fc2621 60
e501603b
TO
61 /**
62 * the field is view only and not editable in user forms.
63 *
e6ca0a57 64 * @var bool
e501603b
TO
65 */
66 public $is_view;
c3fc2621 67
e501603b
TO
68 /**
69 * Is this field required when included in a user or registration form?
70 *
e6ca0a57 71 * @var bool
e501603b
TO
72 */
73 public $is_required;
c3fc2621 74
e501603b
TO
75 /**
76 * Controls field display order when user framework fields are displayed in registration and account editing forms.
77 *
78 * @var int
79 */
80 public $weight;
c3fc2621 81
e501603b
TO
82 /**
83 * Description and/or help text to display after this field.
84 *
85 * @var text
86 */
87 public $help_post;
c3fc2621 88
e501603b
TO
89 /**
90 * Description and/or help text to display before this field.
91 *
92 * @var text
93 */
94 public $help_pre;
c3fc2621 95
e501603b
TO
96 /**
97 * In what context(s) is this field visible.
98 *
99 * @var string
100 */
101 public $visibility;
c3fc2621 102
e501603b
TO
103 /**
104 * Is this field included as a column in the selector table?
105 *
e6ca0a57 106 * @var bool
e501603b
TO
107 */
108 public $in_selector;
c3fc2621 109
e501603b
TO
110 /**
111 * Is this field included search form of profile?
112 *
e6ca0a57 113 * @var bool
e501603b
TO
114 */
115 public $is_searchable;
c3fc2621 116
e501603b
TO
117 /**
118 * Location type of this mapping, if required
119 *
e6ca0a57 120 * @var int
e501603b
TO
121 */
122 public $location_type_id;
c3fc2621 123
e501603b
TO
124 /**
125 * Phone Type Id, if required
126 *
e6ca0a57 127 * @var int
e501603b
TO
128 */
129 public $phone_type_id;
c3fc2621 130
e501603b
TO
131 /**
132 * Website Type Id, if required
133 *
e6ca0a57 134 * @var int
e501603b
TO
135 */
136 public $website_type_id;
c3fc2621 137
e501603b
TO
138 /**
139 * To save label for fields.
140 *
141 * @var string
142 */
143 public $label;
c3fc2621 144
e501603b
TO
145 /**
146 * This field saves field type (ie individual,household.. field etc).
147 *
148 * @var string
149 */
150 public $field_type;
c3fc2621 151
e501603b
TO
152 /**
153 * Is this field reserved for use by some other CiviCRM functionality?
154 *
e6ca0a57 155 * @var bool
e501603b
TO
156 */
157 public $is_reserved;
c3fc2621 158
e501603b
TO
159 /**
160 * Include in multi-record listing?
161 *
e6ca0a57 162 * @var bool
e501603b
TO
163 */
164 public $is_multi_summary;
c3fc2621 165
e501603b 166 /**
f41f0342 167 * Class constructor.
e501603b 168 */
c3fc2621 169 public function __construct() {
e501603b
TO
170 $this->__table = 'civicrm_uf_field';
171 parent::__construct();
172 }
c3fc2621 173
449c4e6b
CW
174 /**
175 * Returns localized title of this entity.
7b66c3b5
AH
176 *
177 * @param bool $plural
178 * Whether to return the plural version of the title.
449c4e6b 179 */
7b66c3b5
AH
180 public static function getEntityTitle($plural = FALSE) {
181 return $plural ? ts('UFFields') : ts('UFField');
449c4e6b
CW
182 }
183
e501603b 184 /**
f41f0342 185 * Returns foreign keys and entity references.
e501603b
TO
186 *
187 * @return array
188 * [CRM_Core_Reference_Interface]
189 */
c3fc2621 190 public static function getReferenceColumns() {
346aaaba 191 if (!isset(Civi::$statics[__CLASS__]['links'])) {
fa45b5b9 192 Civi::$statics[__CLASS__]['links'] = static::createReferenceColumns(__CLASS__);
c3fc2621
CW
193 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'uf_group_id', 'civicrm_uf_group', 'id');
194 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'location_type_id', 'civicrm_location_type', 'id');
346aaaba 195 CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'links_callback', Civi::$statics[__CLASS__]['links']);
e501603b 196 }
346aaaba 197 return Civi::$statics[__CLASS__]['links'];
e501603b 198 }
c3fc2621 199
e501603b
TO
200 /**
201 * Returns all the column names of this table
202 *
203 * @return array
204 */
c3fc2621 205 public static function &fields() {
346aaaba 206 if (!isset(Civi::$statics[__CLASS__]['fields'])) {
c3fc2621
CW
207 Civi::$statics[__CLASS__]['fields'] = [
208 'id' => [
e501603b
TO
209 'name' => 'id',
210 'type' => CRM_Utils_Type::T_INT,
c3fc2621 211 'title' => ts('Profile Field ID'),
215b423e 212 'description' => ts('Unique table ID'),
c3fc2621 213 'required' => TRUE,
a36434b9 214 'where' => 'civicrm_uf_field.id',
522a26c9 215 'table_name' => 'civicrm_uf_field',
216 'entity' => 'UFField',
217 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 218 'localizable' => 0,
a9d0587b 219 'add' => '1.1',
c3fc2621
CW
220 ],
221 'uf_group_id' => [
e501603b
TO
222 'name' => 'uf_group_id',
223 'type' => CRM_Utils_Type::T_INT,
c3fc2621 224 'title' => ts('Profile ID'),
215b423e 225 'description' => ts('Which form does this field belong to.'),
c3fc2621 226 'required' => TRUE,
a36434b9 227 'where' => 'civicrm_uf_field.uf_group_id',
522a26c9 228 'table_name' => 'civicrm_uf_field',
229 'entity' => 'UFField',
230 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 231 'localizable' => 0,
e501603b 232 'FKClassName' => 'CRM_Core_DAO_UFGroup',
c3fc2621 233 'html' => [
e501603b 234 'type' => 'Select',
c3fc2621
CW
235 ],
236 'pseudoconstant' => [
e501603b
TO
237 'table' => 'civicrm_uf_group',
238 'keyColumn' => 'id',
239 'labelColumn' => 'title',
e6ca0a57 240 ],
a9d0587b 241 'add' => '1.1',
c3fc2621
CW
242 ],
243 'field_name' => [
e501603b
TO
244 'name' => 'field_name',
245 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 246 'title' => ts('Profile Field Name'),
215b423e 247 'description' => ts('Name for CiviCRM field which is being exposed for sharing.'),
c3fc2621 248 'required' => TRUE,
e501603b
TO
249 'maxlength' => 64,
250 'size' => CRM_Utils_Type::BIG,
a36434b9 251 'where' => 'civicrm_uf_field.field_name',
522a26c9 252 'table_name' => 'civicrm_uf_field',
253 'entity' => 'UFField',
254 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 255 'localizable' => 0,
ffb9cdec
CW
256 'pseudoconstant' => [
257 'callback' => 'CRM_Core_BAO_UFField::getAvailableFieldTitles',
e6ca0a57 258 ],
a9d0587b 259 'add' => '1.1',
c3fc2621
CW
260 ],
261 'is_active' => [
e501603b
TO
262 'name' => 'is_active',
263 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 264 'title' => ts('Profile Field Is Active'),
215b423e 265 'description' => ts('Is this field currently shareable? If false, hide the field for all sharing contexts.'),
a36434b9 266 'where' => 'civicrm_uf_field.is_active',
e501603b 267 'default' => '1',
522a26c9 268 'table_name' => 'civicrm_uf_field',
269 'entity' => 'UFField',
270 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 271 'localizable' => 0,
a9d0587b 272 'add' => '1.1',
c3fc2621
CW
273 ],
274 'is_view' => [
e501603b
TO
275 'name' => 'is_view',
276 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 277 'title' => ts('Profile Is View Only'),
215b423e 278 'description' => ts('the field is view only and not editable in user forms.'),
a36434b9 279 'where' => 'civicrm_uf_field.is_view',
45a83e42 280 'default' => '0',
522a26c9 281 'table_name' => 'civicrm_uf_field',
282 'entity' => 'UFField',
283 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 284 'localizable' => 0,
a9d0587b 285 'add' => '1.1',
c3fc2621
CW
286 ],
287 'is_required' => [
e501603b
TO
288 'name' => 'is_required',
289 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 290 'title' => ts('Profile Field Is Required'),
215b423e 291 'description' => ts('Is this field required when included in a user or registration form?'),
a36434b9 292 'where' => 'civicrm_uf_field.is_required',
45a83e42 293 'default' => '0',
522a26c9 294 'table_name' => 'civicrm_uf_field',
295 'entity' => 'UFField',
296 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 297 'localizable' => 0,
a9d0587b 298 'add' => '1.1',
c3fc2621
CW
299 ],
300 'weight' => [
e501603b
TO
301 'name' => 'weight',
302 'type' => CRM_Utils_Type::T_INT,
c3fc2621 303 'title' => ts('Order'),
215b423e 304 'description' => ts('Controls field display order when user framework fields are displayed in registration and account editing forms.'),
c3fc2621 305 'required' => TRUE,
a36434b9 306 'where' => 'civicrm_uf_field.weight',
e501603b 307 'default' => '1',
522a26c9 308 'table_name' => 'civicrm_uf_field',
309 'entity' => 'UFField',
310 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 311 'localizable' => 0,
a9d0587b 312 'add' => '1.1',
c3fc2621
CW
313 ],
314 'help_post' => [
e501603b
TO
315 'name' => 'help_post',
316 'type' => CRM_Utils_Type::T_TEXT,
c3fc2621 317 'title' => ts('Profile Field Post Help'),
215b423e 318 'description' => ts('Description and/or help text to display after this field.'),
a36434b9 319 'where' => 'civicrm_uf_field.help_post',
522a26c9 320 'table_name' => 'civicrm_uf_field',
321 'entity' => 'UFField',
322 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 323 'localizable' => 1,
a9d0587b 324 'add' => '1.1',
c3fc2621
CW
325 ],
326 'help_pre' => [
e501603b
TO
327 'name' => 'help_pre',
328 'type' => CRM_Utils_Type::T_TEXT,
c3fc2621 329 'title' => ts('Profile Field Pre Help'),
215b423e 330 'description' => ts('Description and/or help text to display before this field.'),
a36434b9 331 'where' => 'civicrm_uf_field.help_pre',
522a26c9 332 'table_name' => 'civicrm_uf_field',
333 'entity' => 'UFField',
334 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 335 'localizable' => 1,
a9d0587b 336 'add' => '3.2',
c3fc2621
CW
337 ],
338 'visibility' => [
e501603b
TO
339 'name' => 'visibility',
340 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 341 'title' => ts('Profile Field Visibility'),
215b423e 342 'description' => ts('In what context(s) is this field visible.'),
e501603b
TO
343 'maxlength' => 32,
344 'size' => CRM_Utils_Type::MEDIUM,
a36434b9 345 'where' => 'civicrm_uf_field.visibility',
e501603b 346 'default' => 'User and User Admin Only',
522a26c9 347 'table_name' => 'civicrm_uf_field',
348 'entity' => 'UFField',
349 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 350 'localizable' => 0,
c3fc2621 351 'html' => [
e501603b 352 'type' => 'Select',
c3fc2621
CW
353 ],
354 'pseudoconstant' => [
e501603b 355 'callback' => 'CRM_Core_SelectValues::ufVisibility',
e6ca0a57 356 ],
a9d0587b 357 'add' => '1.1',
c3fc2621
CW
358 ],
359 'in_selector' => [
e501603b
TO
360 'name' => 'in_selector',
361 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 362 'title' => ts('Profile Field Is a Filter'),
215b423e 363 'description' => ts('Is this field included as a column in the selector table?'),
a36434b9 364 'where' => 'civicrm_uf_field.in_selector',
45a83e42 365 'default' => '0',
522a26c9 366 'table_name' => 'civicrm_uf_field',
367 'entity' => 'UFField',
368 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 369 'localizable' => 0,
a9d0587b 370 'add' => '1.2',
c3fc2621
CW
371 ],
372 'is_searchable' => [
e501603b
TO
373 'name' => 'is_searchable',
374 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 375 'title' => ts('Profile Field Is Searchable'),
215b423e 376 'description' => ts('Is this field included search form of profile?'),
a36434b9 377 'where' => 'civicrm_uf_field.is_searchable',
45a83e42 378 'default' => '0',
522a26c9 379 'table_name' => 'civicrm_uf_field',
380 'entity' => 'UFField',
381 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 382 'localizable' => 0,
a9d0587b 383 'add' => '1.4',
c3fc2621
CW
384 ],
385 'location_type_id' => [
e501603b
TO
386 'name' => 'location_type_id',
387 'type' => CRM_Utils_Type::T_INT,
c3fc2621 388 'title' => ts('Profile Field Location Type'),
215b423e 389 'description' => ts('Location type of this mapping, if required'),
a36434b9 390 'where' => 'civicrm_uf_field.location_type_id',
522a26c9 391 'table_name' => 'civicrm_uf_field',
392 'entity' => 'UFField',
393 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 394 'localizable' => 0,
e501603b 395 'FKClassName' => 'CRM_Core_DAO_LocationType',
a9d0587b 396 'add' => '1.3',
c3fc2621
CW
397 ],
398 'phone_type_id' => [
e501603b
TO
399 'name' => 'phone_type_id',
400 'type' => CRM_Utils_Type::T_INT,
c3fc2621 401 'title' => ts('Profile Field Phone Type'),
215b423e 402 'description' => ts('Phone Type Id, if required'),
a36434b9 403 'where' => 'civicrm_uf_field.phone_type_id',
522a26c9 404 'table_name' => 'civicrm_uf_field',
405 'entity' => 'UFField',
406 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 407 'localizable' => 0,
b9bf5852
PN
408 'pseudoconstant' => [
409 'optionGroupName' => 'phone_type',
410 'optionEditPath' => 'civicrm/admin/options/phone_type',
e6ca0a57 411 ],
a9d0587b 412 'add' => '2.2',
c3fc2621
CW
413 ],
414 'website_type_id' => [
e501603b
TO
415 'name' => 'website_type_id',
416 'type' => CRM_Utils_Type::T_INT,
c3fc2621 417 'title' => ts('Profile Field Website Type'),
215b423e 418 'description' => ts('Website Type Id, if required'),
a36434b9 419 'where' => 'civicrm_uf_field.website_type_id',
522a26c9 420 'table_name' => 'civicrm_uf_field',
421 'entity' => 'UFField',
422 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 423 'localizable' => 0,
b9bf5852
PN
424 'pseudoconstant' => [
425 'optionGroupName' => 'website_type',
426 'optionEditPath' => 'civicrm/admin/options/website_type',
e6ca0a57 427 ],
a9d0587b 428 'add' => '4.5',
c3fc2621
CW
429 ],
430 'label' => [
e501603b
TO
431 'name' => 'label',
432 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 433 'title' => ts('Profile Field Label'),
215b423e 434 'description' => ts('To save label for fields.'),
c3fc2621 435 'required' => TRUE,
e501603b
TO
436 'maxlength' => 255,
437 'size' => CRM_Utils_Type::HUGE,
a36434b9 438 'where' => 'civicrm_uf_field.label',
522a26c9 439 'table_name' => 'civicrm_uf_field',
440 'entity' => 'UFField',
441 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 442 'localizable' => 1,
a9d0587b 443 'add' => '1.4',
c3fc2621
CW
444 ],
445 'field_type' => [
e501603b
TO
446 'name' => 'field_type',
447 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 448 'title' => ts('Profile Field Type'),
215b423e 449 'description' => ts('This field saves field type (ie individual,household.. field etc).'),
e501603b
TO
450 'maxlength' => 255,
451 'size' => CRM_Utils_Type::HUGE,
a36434b9 452 'where' => 'civicrm_uf_field.field_type',
522a26c9 453 'table_name' => 'civicrm_uf_field',
454 'entity' => 'UFField',
455 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 456 'localizable' => 0,
a9d0587b 457 'add' => '1.4',
c3fc2621
CW
458 ],
459 'is_reserved' => [
e501603b
TO
460 'name' => 'is_reserved',
461 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 462 'title' => ts('Profile Field Is Reserved'),
215b423e 463 'description' => ts('Is this field reserved for use by some other CiviCRM functionality?'),
a36434b9 464 'where' => 'civicrm_uf_field.is_reserved',
522a26c9 465 'table_name' => 'civicrm_uf_field',
466 'entity' => 'UFField',
467 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 468 'localizable' => 0,
a9d0587b 469 'add' => '3.0',
c3fc2621
CW
470 ],
471 'is_multi_summary' => [
e501603b
TO
472 'name' => 'is_multi_summary',
473 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 474 'title' => ts('Profile Field Supports Multiple'),
215b423e 475 'description' => ts('Include in multi-record listing?'),
a36434b9 476 'where' => 'civicrm_uf_field.is_multi_summary',
45a83e42 477 'default' => '0',
522a26c9 478 'table_name' => 'civicrm_uf_field',
479 'entity' => 'UFField',
480 'bao' => 'CRM_Core_BAO_UFField',
6a7e5e5d 481 'localizable' => 0,
a9d0587b 482 'add' => '4.3',
c3fc2621
CW
483 ],
484 ];
346aaaba 485 CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
e501603b 486 }
346aaaba 487 return Civi::$statics[__CLASS__]['fields'];
e501603b 488 }
c3fc2621 489
e501603b 490 /**
bd8e0b14 491 * Return a mapping from field-name to the corresponding key (as used in fields()).
e501603b
TO
492 *
493 * @return array
bd8e0b14 494 * Array(string $name => string $uniqueName).
e501603b 495 */
c3fc2621 496 public static function &fieldKeys() {
bd8e0b14
TO
497 if (!isset(Civi::$statics[__CLASS__]['fieldKeys'])) {
498 Civi::$statics[__CLASS__]['fieldKeys'] = array_flip(CRM_Utils_Array::collect('name', self::fields()));
e501603b 499 }
bd8e0b14 500 return Civi::$statics[__CLASS__]['fieldKeys'];
e501603b 501 }
c3fc2621 502
e501603b
TO
503 /**
504 * Returns the names of this table
505 *
506 * @return string
507 */
c3fc2621 508 public static function getTableName() {
e501603b
TO
509 return CRM_Core_DAO::getLocaleTableName(self::$_tableName);
510 }
c3fc2621 511
e501603b
TO
512 /**
513 * Returns if this table needs to be logged
514 *
c3fc2621 515 * @return bool
e501603b 516 */
c3fc2621 517 public function getLog() {
e501603b
TO
518 return self::$_log;
519 }
c3fc2621 520
e501603b
TO
521 /**
522 * Returns the list of fields that can be imported
523 *
524 * @param bool $prefix
525 *
526 * @return array
527 */
c3fc2621
CW
528 public static function &import($prefix = FALSE) {
529 $r = CRM_Core_DAO_AllCoreTables::getImports(__CLASS__, 'uf_field', $prefix, []);
60808919 530 return $r;
e501603b 531 }
c3fc2621 532
e501603b
TO
533 /**
534 * Returns the list of fields that can be exported
535 *
536 * @param bool $prefix
537 *
538 * @return array
539 */
c3fc2621
CW
540 public static function &export($prefix = FALSE) {
541 $r = CRM_Core_DAO_AllCoreTables::getExports(__CLASS__, 'uf_field', $prefix, []);
60808919 542 return $r;
e501603b 543 }
c3fc2621 544
e7a6b91a
AS
545 /**
546 * Returns the list of indices
c3fc2621
CW
547 *
548 * @param bool $localize
549 *
550 * @return array
e7a6b91a
AS
551 */
552 public static function indices($localize = TRUE) {
c3fc2621
CW
553 $indices = [
554 'IX_website_type_id' => [
e7a6b91a 555 'name' => 'IX_website_type_id',
c3fc2621 556 'field' => [
e7a6b91a 557 0 => 'website_type_id',
c3fc2621
CW
558 ],
559 'localizable' => FALSE,
e7a6b91a 560 'sig' => 'civicrm_uf_field::0::website_type_id',
c3fc2621
CW
561 ],
562 ];
e7a6b91a
AS
563 return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices;
564 }
c3fc2621 565
e501603b 566}