r5102 do not allow NULL IP allocation type in database
[racktables-incomplete-works] / wwwroot / inc / install.php
1 <?php
2
3 # This file is a part of RackTables, a datacenter and server room management
4 # framework. See accompanying file "COPYING" for the full copyright and
5 # licensing information.
6
7 function renderInstallerHTML()
8 {
9 $stepfunc[1] = 'not_already_installed';
10 $stepfunc[2] = 'platform_is_ok';
11 $stepfunc[3] = 'init_config';
12 $stepfunc[4] = 'init_database_static';
13 $stepfunc[5] = 'init_database_dynamic';
14 $stepfunc[6] = 'congrats';
15
16 if (isset ($_REQUEST['step']))
17 $step = $_REQUEST['step'];
18 else
19 $step = 1;
20
21 if ($step > count ($stepfunc))
22 {
23 $root = (empty($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off') ? 'http://' : 'https://';
24 $root .= isset ($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']));
25 // "Since PHP 4.3.0, you will often get a slash or a dot back from
26 // dirname() in situations where the older functionality would have given
27 // you the empty string."
28 // "On Windows, both slash (/) and backslash (\) are used as directory
29 // separator character."
30 $root .= strtr (dirname ($_SERVER['PHP_SELF']), '\\', '/');
31 if (substr ($root, -1) != '/')
32 $root .= '/';
33 header ("Location: ${root}");
34 exit;
35 }
36 $title = "RackTables installation: step ${step} of " . count ($stepfunc);
37 header ('Content-Type: text/html; charset=UTF-8');
38 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
39 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
40 <head><title><?php echo $title; ?></title>
41 <style type="text/css">
42 .tdleft {
43 text-align: left;
44 }
45
46 .trok {
47 background-color: #80FF80;
48 }
49
50 .trwarning {
51 background-color: #FFFF80;
52 }
53
54 .trerror {
55 background-color: #FF8080;
56 }
57 </style>
58 </head>
59 <body>
60 <center>
61 <?php
62 echo "<h1>${title}</h1><p>";
63
64 echo "</p><form method=post>\n";
65 $testres = $stepfunc[$step] ();
66 if ($testres)
67 {
68 $next_step = $step + 1;
69 echo "<br><input type=submit value='proceed'>";
70 }
71 else
72 {
73 $next_step = $step;
74 echo "<br><input type=submit value='retry'>";
75 }
76 echo "<input type=hidden name=step value='${next_step}'>\n";
77
78 ?>
79 </form>
80 </center>
81 </body>
82 </html>
83
84 <?php
85 }
86
87 // Check if the software is already installed.
88 function not_already_installed()
89 {
90 global $found_secret_file, $pdo_dsn;
91 if ($found_secret_file and isset ($pdo_dsn))
92 {
93 echo 'Your configuration file exists and seems to hold necessary data already.<br>';
94 return FALSE;
95 }
96 else
97 {
98 echo 'There seem to be no existing installation here, I am going to setup one now.<br>';
99 return TRUE;
100 }
101 }
102
103 // Check that we can write to configuration file.
104 // If so, ask for DB connection paramaters and test
105 // the connection. Neither save the parameters nor allow
106 // going further until we succeed with the given
107 // credentials.
108 function init_config ()
109 {
110 function print_form
111 (
112 $use_tcp = TRUE,
113 $tcp_host = 'localhost',
114 $tcp_port = '',
115 $unix_socket = '/var/lib/mysql/mysql.sock',
116 $database = 'racktables_db',
117 $username = 'racktables_user',
118 $password = ''
119 )
120 {
121 echo "<input type=hidden name=save_config value=1>\n";
122 echo '<h3>Server-side MySQL setup of the database:</h3><div align=left><pre class=trok>';
123 echo "mysql&gt;\nCREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
124 echo "GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';\n</pre></div>";
125 echo '<table>';
126 echo '<tr><td><label for=conn_tcp>TCP connection</label></td>';
127 echo '<td><input type=radio name=conn value=conn_tcp id=conn_tcp' . ($use_tcp ? ' checked' : '') . '></td></tr>';
128 echo '<tr><td><label for=conn_unix>UNIX socket</label></td>';
129 echo '<td><input type=radio name=conn value=conn_unix id=conn_unix' . ($use_tcp ? '' : ' checked') . '></td></tr>';
130 echo "<tr><td><label for=mysql_host>TCP host:</label></td>";
131 echo "<td><input type=text name=mysql_host id=mysql_host value='${tcp_host}'></td></tr>\n";
132 echo "<tr><td><label for=mysql_port>TCP port (if not 3306):</label></td>";
133 echo "<td><input type=text name=mysql_port id=mysql_port value='${tcp_port}'></td></tr>\n";
134 echo "<tr><td><label for=mysql_socket>UNIX socket:</label></td>";
135 echo "<td><input type=text name=mysql_socket id=mysql_socket value='${unix_socket}'></td></tr>\n";
136 echo "<tr><td><label for=mysql_db>database:</label></td>";
137 echo "<td><input type=text name=mysql_db id=mysql_db value='${database}'></td></tr>\n";
138 echo "<tr><td><label for=mysql_username>username:</label></td>";
139 echo "<td><input type=text name=mysql_username id=mysql_username value='${username}'></td></tr>\n";
140 echo "<tr><td><label for=mysql_password>password:</label></td>";
141 echo "<td><input type=password name=mysql_password id=mysql_password value='${password}'></td></tr>\n";
142 echo '</table>';
143 }
144 global $path_to_secret_php;
145 if (!is_writable ($path_to_secret_php))
146 {
147 echo "The $path_to_secret_php file is not writable by web-server. Make sure it is.";
148 echo "The following commands should suffice:<pre>touch '$path_to_secret_php'; chmod 666 '$path_to_secret_php'</pre>";
149 echo 'Fedora Linux with SELinux may require this file to be owned by specific user (apache) and/or executing "setenforce 0" for the time of installation. ';
150 echo 'SELinux may be turned back on with "setenforce 1" command.<br>';
151 return FALSE;
152 }
153 if (! array_key_exists ('save_config', $_REQUEST))
154 {
155 print_form();
156 return FALSE;
157 }
158 if (empty ($_REQUEST['mysql_db']) or empty ($_REQUEST['mysql_username']))
159 {
160 print_form
161 (
162 $_REQUEST['conn'] == 'conn_tcp',
163 $_REQUEST['mysql_host'],
164 $_REQUEST['mysql_port'],
165 $_REQUEST['mysql_socket'],
166 $_REQUEST['mysql_db'],
167 $_REQUEST['mysql_username'],
168 $_REQUEST['mysql_password']
169 );
170 echo '<h2 class=trerror>Missing database/username parameter!</h2>';
171 return FALSE;
172 }
173 if ($_REQUEST['conn'] == 'conn_tcp' and empty ($_REQUEST['mysql_host']))
174 {
175 print_form
176 (
177 $_REQUEST['conn'] == 'conn_tcp',
178 $_REQUEST['mysql_host'],
179 $_REQUEST['mysql_port'],
180 $_REQUEST['mysql_socket'],
181 $_REQUEST['mysql_db'],
182 $_REQUEST['mysql_username'],
183 $_REQUEST['mysql_password']
184 );
185 echo '<h2 class=trerror>Missing TCP hostname parameter!</h2>';
186 return FALSE;
187 }
188 if ($_REQUEST['conn'] == 'conn_unix' and empty ($_REQUEST['mysql_socket']))
189 {
190 print_form
191 (
192 $_REQUEST['conn'] == 'conn_tcp',
193 $_REQUEST['mysql_host'],
194 $_REQUEST['mysql_port'],
195 $_REQUEST['mysql_socket'],
196 $_REQUEST['mysql_db'],
197 $_REQUEST['mysql_username'],
198 $_REQUEST['mysql_password']
199 );
200 echo '<h2 class=trerror>Missing UNIX socket parameter!</h2>';
201 return FALSE;
202 }
203 # finally OK to make a connection attempt
204 $pdo_dsn = 'mysql:';
205 switch ($_REQUEST['conn'])
206 {
207 case 'conn_tcp':
208 $pdo_dsn .= 'host=' . $_REQUEST['mysql_host'];
209 if (!empty ($_REQUEST['mysql_port']) and $_REQUEST['mysql_port'] != '3306')
210 $pdo_dsn .= ';port=' . $_REQUEST['mysql_port'];
211 break;
212 case 'conn_unix':
213 $pdo_dsn .= 'unix_socket=' . $_REQUEST['mysql_socket'];
214 break;
215 default:
216 print_form();
217 echo '<h2 class=trerror>form error</h2>';
218 return FALSE;
219 }
220 $pdo_dsn .= ';dbname=' . $_REQUEST['mysql_db'];
221 try
222 {
223 $dbxlink = new PDO ($pdo_dsn, $_REQUEST['mysql_username'], $_REQUEST['mysql_password']);
224 }
225 catch (PDOException $e)
226 {
227 print_form
228 (
229 $_REQUEST['conn'] == 'conn_tcp',
230 $_REQUEST['mysql_host'],
231 $_REQUEST['mysql_port'],
232 $_REQUEST['mysql_socket'],
233 $_REQUEST['mysql_db'],
234 $_REQUEST['mysql_username'],
235 $_REQUEST['mysql_password']
236 );
237 echo "<h2 class=trerror>Datase connection failed. Check parameters and try again.</h2>\n";
238 echo "PDO DSN: <tt class=trwarning>${pdo_dsn}</tt><br>";
239 return FALSE;
240 }
241
242 $conf = fopen ($path_to_secret_php, 'w+');
243 if ($conf === FALSE)
244 {
245 echo "Error: failed to open $path_to_secret_php for writing";
246 return FALSE;
247 }
248 fwrite ($conf, "<?php\n# This file has been generated automatically by RackTables installer.\n");
249 fwrite ($conf, "\$pdo_dsn = '${pdo_dsn}';\n");
250 fwrite ($conf, "\$db_username = '" . $_REQUEST['mysql_username'] . "';\n");
251 fwrite ($conf, "\$db_password = '" . $_REQUEST['mysql_password'] . "';\n\n");
252 fwrite ($conf, <<<ENDOFTEXT
253
254 \$user_auth_src = 'database';
255 \$require_local_account = TRUE;
256 # Default setting is to authenticate users locally, but it is possible to
257 # employ existing LDAP or Apache user accounts. Check RackTables wiki for
258 # more information, in particular, this page for LDAP configuration details:
259 # http://sourceforge.net/apps/mediawiki/racktables/index.php?title=LDAP
260
261 #\$LDAP_options = array
262 #(
263 # 'server' => 'localhost',
264 # 'domain' => 'example.com',
265 # 'search_attr' => '',
266 # 'search_dn' => '',
267 # // The following credentials will be used when searching for the user's DN:
268 # 'search_bind_rdn' => NULL,
269 # 'search_bind_password' => NULL,
270 # 'displayname_attrs' => '',
271 # 'options' => array (LDAP_OPT_PROTOCOL_VERSION => 3),
272 # 'use_tls' => 2, // 0 == don't attempt, 1 == attempt, 2 == require
273 #);
274
275 # This HTML banner is intended to assist users in dispatching their issues
276 # to the local tech support service. Its text (in its verbatim form) will
277 # be appended to assorted error messages visible in user's browser (including
278 # "not authenticated" message). Beware of placing any sensitive information
279 # here, it will be readable by unauthorized visitors.
280 #\$helpdesk_banner = '<B>This RackTables instance is supported by Example Inc. IT helpdesk, dial ext. 1234 to report a problem.</B>';
281
282
283 ENDOFTEXT
284 );
285 fwrite ($conf, "?>\n");
286 fclose ($conf);
287 echo "The configuration file has been written successfully.<br>";
288 return TRUE;
289 }
290
291 function connect_to_db_or_die ()
292 {
293 try
294 {
295 connectDB();
296 }
297 catch (RackTablesError $e)
298 {
299 die ('Error connecting to the database');
300 }
301 }
302
303 function init_database_static ()
304 {
305 connect_to_db_or_die();
306 global $dbxlink;
307 if (!isInnoDBSupported())
308 {
309 echo 'InnoDB test failed! Please configure MySQL server properly and retry.';
310 return FALSE;
311 }
312 $result = $dbxlink->query ('show tables');
313 $tables = $result->fetchAll (PDO::FETCH_NUM);
314 $result->closeCursor();
315 unset ($result);
316 if (count ($tables))
317 {
318 echo 'Your database is already holding ' . count ($tables);
319 echo ' tables, so I will stop here and let you check it yourself.<br>';
320 echo 'There is some important data there probably.<br>';
321 return FALSE;
322 }
323 echo 'Initializing the database...<br>';
324 echo '<table border=1>';
325 echo "<tr><th>section</th><th>queries</th><th>errors</th></tr>";
326 $errlist = array();
327 foreach (array ('structure', 'dictbase') as $part)
328 {
329 echo "<tr><td>${part}</td>";
330 $nq = $nerrs = 0;
331 foreach (preg_split ("/;\s*\n/", get_pseudo_file ($part)) as $query)
332 {
333 $query = trim($query);
334 if (empty ($query) or '--' == substr ($query, 0, 2))
335 continue;
336 $nq++;
337 if ($dbxlink->exec ($query) === FALSE)
338 {
339 $nerrs++;
340 $errlist[] = $query;
341 }
342 }
343 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
344 }
345 // (re)load dictionary by pure PHP means w/o any external file
346 echo "<tr><td>dictionary</td>";
347 $nq = $nerrs = 0;
348 $dictq = array();
349 foreach (reloadDictionary() as $query)
350 {
351 $nq++;
352 if ($dbxlink->exec ($query) === FALSE)
353 {
354 $nerrs++;
355 $errlist[] = $query;
356 }
357 }
358 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
359
360 echo '</table>';
361 if (count ($errlist))
362 {
363 echo '<pre>The following queries failed:\n';
364 foreach ($errlist as $q)
365 echo "${q}\n\n";
366 echo '</pre>';
367 return FALSE;
368 }
369 return TRUE;
370 }
371
372 function init_database_dynamic ()
373 {
374 connect_to_db_or_die();
375 global $dbxlink;
376 if (!isset ($_REQUEST['password']) or empty ($_REQUEST['password']))
377 {
378 $result = $dbxlink->query ('select count(user_id) from UserAccount where user_id = 1');
379 $row = $result->fetch (PDO::FETCH_NUM);
380 $nrecs = $row[0];
381 $result->closeCursor();
382 if (!$nrecs)
383 {
384 echo '<table border=1>';
385 echo '<caption>Administrator password not set</caption>';
386 echo '<tr><td><input type=password name=password></td></tr>';
387 echo '</table>';
388 }
389 return FALSE;
390 }
391 else
392 {
393 // Never send cleartext password over the wire.
394 $hash = sha1 ($_REQUEST['password']);
395 $query = "INSERT INTO `UserAccount` (`user_id`, `user_name`, `user_password_hash`, `user_realname`) " .
396 "VALUES (1,'admin','${hash}','RackTables Administrator')";
397 $result = $dbxlink->exec ($query);
398 echo "Administrator password has been set successfully.<br>";
399 return TRUE;
400 }
401 }
402
403 function congrats ()
404 {
405 echo 'Congratulations! RackTables installation is complete. After pressing Proceed you will ';
406 echo 'enter the system. Authenticate with <strong>admin</strong> username.<br>RackTables project has a ';
407 echo "<a href='http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide'>";
408 echo "wiki</a> and a ";
409 echo "<a href='http://www.freelists.org/list/racktables-users'>mailing list</a> for users. Have fun.<br>";
410 return TRUE;
411 }
412
413 function get_pseudo_file ($name)
414 {
415 switch ($name)
416 {
417 case 'structure':
418 return <<<END_OF_FILE
419 alter database character set utf8;
420 set names 'utf8';
421 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
422
423 CREATE TABLE `Atom` (
424 `molecule_id` int(10) unsigned default NULL,
425 `rack_id` int(10) unsigned default NULL,
426 `unit_no` int(10) unsigned default NULL,
427 `atom` enum('front','interior','rear') default NULL
428 ) ENGINE=InnoDB;
429
430 CREATE TABLE `Attribute` (
431 `id` int(10) unsigned NOT NULL auto_increment,
432 `type` enum('string','uint','float','dict','date') default NULL,
433 `name` char(64) default NULL,
434 PRIMARY KEY (`id`),
435 UNIQUE KEY `name` (`name`)
436 ) ENGINE=InnoDB;
437
438 CREATE TABLE `AttributeMap` (
439 `objtype_id` int(10) unsigned NOT NULL default '1',
440 `attr_id` int(10) unsigned NOT NULL default '1',
441 `chapter_id` int(10) unsigned default NULL,
442 UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`),
443 KEY `attr_id` (`attr_id`),
444 KEY `chapter_id` (`chapter_id`),
445 CONSTRAINT `AttributeMap-FK-chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `Chapter` (`id`),
446 CONSTRAINT `AttributeMap-FK-attr_id` FOREIGN KEY (`attr_id`) REFERENCES `Attribute` (`id`)
447 ) ENGINE=InnoDB;
448
449 CREATE TABLE `AttributeValue` (
450 `object_id` int(10) unsigned default NULL,
451 -- Default value intentionally breaks the constraint, this blocks
452 -- any insertion, which doesn't have 'object_tid' on the column list.
453 `object_tid` int(10) unsigned NOT NULL default '0',
454 `attr_id` int(10) unsigned default NULL,
455 `string_value` char(255) default NULL,
456 `uint_value` int(10) unsigned default NULL,
457 `float_value` float default NULL,
458 UNIQUE KEY `object_id` (`object_id`,`attr_id`),
459 KEY `attr_id-uint_value` (`attr_id`,`uint_value`),
460 KEY `attr_id-string_value` (`attr_id`,`string_value`(12)),
461 KEY `id-tid` (`object_id`,`object_tid`),
462 KEY `object_tid-attr_id` (`object_tid`,`attr_id`),
463 CONSTRAINT `AttributeValue-FK-map` FOREIGN KEY (`object_tid`, `attr_id`) REFERENCES `AttributeMap` (`objtype_id`, `attr_id`),
464 CONSTRAINT `AttributeValue-FK-object` FOREIGN KEY (`object_id`, `object_tid`) REFERENCES `Object` (`id`, `objtype_id`) ON DELETE CASCADE ON UPDATE CASCADE
465 ) ENGINE=InnoDB;
466
467 CREATE TABLE `CachedPAV` (
468 `object_id` int(10) unsigned NOT NULL,
469 `port_name` char(255) NOT NULL,
470 `vlan_id` int(10) unsigned NOT NULL default '0',
471 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
472 KEY `vlan_id` (`vlan_id`),
473 CONSTRAINT `CachedPAV-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`) ON DELETE CASCADE,
474 CONSTRAINT `CachedPAV-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
475 ) ENGINE=InnoDB;
476
477 CREATE TABLE `CachedPNV` (
478 `object_id` int(10) unsigned NOT NULL,
479 `port_name` char(255) NOT NULL,
480 `vlan_id` int(10) unsigned NOT NULL default '0',
481 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
482 UNIQUE KEY `port_id` (`object_id`,`port_name`),
483 CONSTRAINT `CachedPNV-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `CachedPAV` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
484 ) ENGINE=InnoDB;
485
486 CREATE TABLE `CachedPVM` (
487 `object_id` int(10) unsigned NOT NULL,
488 `port_name` char(255) NOT NULL,
489 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
490 PRIMARY KEY (`object_id`,`port_name`),
491 CONSTRAINT `CachedPVM-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
492 ) ENGINE=InnoDB;
493
494 CREATE TABLE `CactiGraph` (
495 `object_id` int(10) unsigned NOT NULL,
496 `graph_id` int(10) unsigned NOT NULL,
497 `caption` char(255) DEFAULT NULL,
498 PRIMARY KEY (`graph_id`),
499 KEY `object_id` (`object_id`),
500 CONSTRAINT `CactiGraph-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
501 ) ENGINE=InnoDB;
502
503 CREATE TABLE `Chapter` (
504 `id` int(10) unsigned NOT NULL auto_increment,
505 `sticky` enum('yes','no') default 'no',
506 `name` char(128) NOT NULL,
507 PRIMARY KEY (`id`),
508 UNIQUE KEY `name` (`name`)
509 ) ENGINE=InnoDB;
510
511 CREATE TABLE `Config` (
512 `varname` char(32) NOT NULL,
513 `varvalue` text NOT NULL,
514 `vartype` enum('string','uint') NOT NULL default 'string',
515 `emptyok` enum('yes','no') NOT NULL default 'no',
516 `is_hidden` enum('yes','no') NOT NULL default 'yes',
517 `is_userdefined` enum('yes','no') NOT NULL default 'no',
518 `description` text,
519 PRIMARY KEY (`varname`)
520 ) ENGINE=InnoDB;
521
522 CREATE TABLE `Dictionary` (
523 `chapter_id` int(10) unsigned NOT NULL,
524 `dict_key` int(10) unsigned NOT NULL auto_increment,
525 `dict_value` char(255) default NULL,
526 PRIMARY KEY (`dict_key`),
527 UNIQUE KEY `chap_to_val` (`chapter_id`,`dict_value`),
528 CONSTRAINT `Dictionary-FK-chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `Chapter` (`id`)
529 ) ENGINE=InnoDB;
530
531 CREATE TABLE `EntityLink` (
532 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
533 `parent_entity_type` enum('ipv4net','ipv4rspool','ipv4vs','ipv6net','location','object','rack','row','user') NOT NULL,
534 `parent_entity_id` int(10) unsigned NOT NULL,
535 `child_entity_type` enum('file','location','object','rack','row') NOT NULL,
536 `child_entity_id` int(10) unsigned NOT NULL,
537 PRIMARY KEY (`id`),
538 UNIQUE KEY `EntityLink-unique` (`parent_entity_type`,`parent_entity_id`,`child_entity_type`,`child_entity_id`),
539 KEY `EntityLink-compound` (`parent_entity_type`,`child_entity_type`,`child_entity_id`)
540 ) ENGINE=InnoDB;
541
542 CREATE TABLE `File` (
543 `id` int(10) unsigned NOT NULL auto_increment,
544 `name` char(255) NOT NULL,
545 `type` char(255) NOT NULL,
546 `size` int(10) unsigned NOT NULL,
547 `ctime` datetime NOT NULL,
548 `mtime` datetime NOT NULL,
549 `atime` datetime NOT NULL,
550 `thumbnail` longblob,
551 `contents` longblob NOT NULL,
552 `comment` text,
553 PRIMARY KEY (`id`),
554 UNIQUE KEY `name` (`name`)
555 ) ENGINE=InnoDB;
556
557 CREATE TABLE `FileLink` (
558 `id` int(10) unsigned NOT NULL auto_increment,
559 `file_id` int(10) unsigned NOT NULL,
560 `entity_type` enum('ipv4net','ipv4rspool','ipv4vs','ipv6net','location','object','rack','user') NOT NULL default 'object',
561 `entity_id` int(10) NOT NULL,
562 PRIMARY KEY (`id`),
563 KEY `FileLink-file_id` (`file_id`),
564 UNIQUE KEY `FileLink-unique` (`file_id`,`entity_type`,`entity_id`),
565 CONSTRAINT `FileLink-File_fkey` FOREIGN KEY (`file_id`) REFERENCES `File` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
566 ) ENGINE=InnoDB;
567
568 CREATE TABLE `IPv4Address` (
569 `ip` int(10) unsigned NOT NULL default '0',
570 `name` char(255) NOT NULL default '',
571 `reserved` enum('yes','no') default NULL,
572 PRIMARY KEY (`ip`)
573 ) ENGINE=InnoDB;
574
575 CREATE TABLE `IPv4Allocation` (
576 `object_id` int(10) unsigned NOT NULL default '0',
577 `ip` int(10) unsigned NOT NULL default '0',
578 `name` char(255) NOT NULL default '',
579 `type` enum('regular','shared','virtual','router') NOT NULL DEFAULT 'regular',
580 PRIMARY KEY (`object_id`,`ip`),
581 KEY `ip` (`ip`),
582 CONSTRAINT `IPv4Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
583 ) ENGINE=InnoDB;
584
585 CREATE TABLE `IPv4LB` (
586 `object_id` int(10) unsigned default NULL,
587 `rspool_id` int(10) unsigned default NULL,
588 `vs_id` int(10) unsigned default NULL,
589 `prio` varchar(255) default NULL,
590 `vsconfig` text,
591 `rsconfig` text,
592 UNIQUE KEY `LB-VS` (`object_id`,`vs_id`),
593 KEY `IPv4LB-FK-rspool_id` (`rspool_id`),
594 KEY `IPv4LB-FK-vs_id` (`vs_id`),
595 CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (`vs_id`) REFERENCES `IPv4VS` (`id`),
596 CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`),
597 CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`)
598 ) ENGINE=InnoDB;
599
600 CREATE TABLE `IPv4Log` (
601 `id` int(10) NOT NULL AUTO_INCREMENT,
602 `ip` int(10) unsigned NOT NULL,
603 `date` datetime NOT NULL,
604 `user` varchar(64) NOT NULL,
605 `message` text NOT NULL,
606 PRIMARY KEY (`id`),
607 KEY `ip-date` (`ip`,`date`)
608 ) ENGINE=InnoDB;
609
610 CREATE TABLE `IPv6Log` (
611 `id` int(10) NOT NULL AUTO_INCREMENT,
612 `ip` binary(16) NOT NULL,
613 `date` datetime NOT NULL,
614 `user` varchar(64) NOT NULL,
615 `message` text NOT NULL,
616 PRIMARY KEY (`id`),
617 KEY `ip-date` (`ip`,`date`)
618 ) ENGINE=InnoDB;
619
620 CREATE TABLE `IPv4NAT` (
621 `object_id` int(10) unsigned NOT NULL default '0',
622 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
623 `localip` int(10) unsigned NOT NULL default '0',
624 `localport` smallint(5) unsigned NOT NULL default '0',
625 `remoteip` int(10) unsigned NOT NULL default '0',
626 `remoteport` smallint(5) unsigned NOT NULL default '0',
627 `description` char(255) default NULL,
628 PRIMARY KEY (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
629 KEY `localip` (`localip`),
630 KEY `remoteip` (`remoteip`),
631 KEY `object_id` (`object_id`),
632 CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`)
633 ) ENGINE=InnoDB;
634
635 CREATE TABLE `IPv4Network` (
636 `id` int(10) unsigned NOT NULL auto_increment,
637 `ip` int(10) unsigned NOT NULL default '0',
638 `mask` int(10) unsigned NOT NULL default '0',
639 `name` char(255) default NULL,
640 `comment` text,
641 PRIMARY KEY (`id`),
642 UNIQUE KEY `base-len` (`ip`,`mask`)
643 ) ENGINE=InnoDB;
644
645 CREATE TABLE `IPv4RS` (
646 `id` int(10) unsigned NOT NULL auto_increment,
647 `inservice` enum('yes','no') NOT NULL default 'no',
648 `rsip` varbinary(16) NOT NULL,
649 `rsport` smallint(5) unsigned default NULL,
650 `rspool_id` int(10) unsigned default NULL,
651 `rsconfig` text,
652 `comment` varchar(255) DEFAULT NULL,
653 PRIMARY KEY (`id`),
654 KEY `rsip` (`rsip`),
655 UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`),
656 CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
657 ) ENGINE=InnoDB;
658
659 CREATE TABLE `IPv4RSPool` (
660 `id` int(10) unsigned NOT NULL auto_increment,
661 `name` char(255) default NULL,
662 `vsconfig` text,
663 `rsconfig` text,
664 PRIMARY KEY (`id`)
665 ) ENGINE=InnoDB;
666
667 CREATE TABLE `IPv4VS` (
668 `id` int(10) unsigned NOT NULL auto_increment,
669 `vip` varbinary(16) NOT NULL,
670 `vport` smallint(5) unsigned default NULL,
671 `proto` enum('TCP','UDP','MARK') NOT NULL default 'TCP',
672 `name` char(255) default NULL,
673 `vsconfig` text,
674 `rsconfig` text,
675 PRIMARY KEY (`id`),
676 KEY `vip` (`vip`)
677 ) ENGINE=InnoDB;
678
679 CREATE TABLE `IPv6Address` (
680 `ip` binary(16) NOT NULL,
681 `name` char(255) NOT NULL default '',
682 `reserved` enum('yes','no') default NULL,
683 PRIMARY KEY (`ip`)
684 ) ENGINE=InnoDB;
685
686 CREATE TABLE `IPv6Allocation` (
687 `object_id` int(10) unsigned NOT NULL default '0',
688 `ip` binary(16) NOT NULL,
689 `name` char(255) NOT NULL default '',
690 `type` enum('regular','shared','virtual','router') NOT NULL DEFAULT 'regular',
691 PRIMARY KEY (`object_id`,`ip`),
692 KEY `ip` (`ip`),
693 CONSTRAINT `IPv6Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
694 ) ENGINE=InnoDB;
695
696 CREATE TABLE `IPv6Network` (
697 `id` int(10) unsigned NOT NULL auto_increment,
698 `ip` binary(16) NOT NULL,
699 `mask` int(10) unsigned NOT NULL,
700 `last_ip` binary(16) NOT NULL,
701 `name` char(255) default NULL,
702 `comment` text,
703 PRIMARY KEY (`id`),
704 UNIQUE KEY `ip` (`ip`,`mask`)
705 ) ENGINE=InnoDB;
706
707 CREATE TABLE `LDAPCache` (
708 `presented_username` char(64) NOT NULL,
709 `successful_hash` char(40) NOT NULL,
710 `first_success` timestamp NOT NULL default CURRENT_TIMESTAMP,
711 `last_retry` timestamp NOT NULL default '0000-00-00 00:00:00',
712 `displayed_name` char(128) default NULL,
713 `memberof` text,
714 UNIQUE KEY `presented_username` (`presented_username`),
715 KEY `scanidx` (`presented_username`,`successful_hash`)
716 ) ENGINE=InnoDB;
717
718 CREATE TABLE `Link` (
719 `porta` int(10) unsigned NOT NULL default '0',
720 `portb` int(10) unsigned NOT NULL default '0',
721 `cable` char(64) DEFAULT NULL,
722 PRIMARY KEY (`porta`,`portb`),
723 UNIQUE KEY `porta` (`porta`),
724 UNIQUE KEY `portb` (`portb`),
725 CONSTRAINT `Link-FK-a` FOREIGN KEY (`porta`) REFERENCES `Port` (`id`) ON DELETE CASCADE,
726 CONSTRAINT `Link-FK-b` FOREIGN KEY (`portb`) REFERENCES `Port` (`id`) ON DELETE CASCADE
727 ) ENGINE=InnoDB;
728
729 CREATE TABLE `Molecule` (
730 `id` int(10) unsigned NOT NULL auto_increment,
731 PRIMARY KEY (`id`)
732 ) ENGINE=InnoDB;
733
734 CREATE TABLE `MountOperation` (
735 `id` int(10) unsigned NOT NULL auto_increment,
736 `object_id` int(10) unsigned NOT NULL default '0',
737 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
738 `user_name` char(64) default NULL,
739 `old_molecule_id` int(10) unsigned default NULL,
740 `new_molecule_id` int(10) unsigned default NULL,
741 `comment` text,
742 PRIMARY KEY (`id`),
743 KEY `object_id` (`object_id`),
744 CONSTRAINT `MountOperation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
745 ) ENGINE=InnoDB;
746
747 CREATE TABLE `ObjectLog` (
748 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
749 `object_id` int(10) unsigned NOT NULL,
750 `user` char(64) NOT NULL,
751 `date` datetime NOT NULL,
752 `content` text NOT NULL,
753 PRIMARY KEY (`id`),
754 KEY `object_id` (`object_id`),
755 KEY `date` (`date`),
756 CONSTRAINT `ObjectLog-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
757 ) ENGINE=InnoDB;
758
759 CREATE TABLE `ObjectParentCompat` (
760 `parent_objtype_id` int(10) unsigned NOT NULL,
761 `child_objtype_id` int(10) unsigned NOT NULL,
762 UNIQUE KEY `parent_child` (`parent_objtype_id`,`child_objtype_id`)
763 ) ENGINE=InnoDB;
764
765 CREATE TABLE `Port` (
766 `id` int(10) unsigned NOT NULL auto_increment,
767 `object_id` int(10) unsigned NOT NULL default '0',
768 `name` char(255) NOT NULL default '',
769 `iif_id` int(10) unsigned NOT NULL,
770 `type` int(10) unsigned NOT NULL default '0',
771 `l2address` char(64) default NULL,
772 `reservation_comment` char(255) default NULL,
773 `label` char(255) default NULL,
774 PRIMARY KEY (`id`),
775 UNIQUE KEY `object_iif_oif_name` (`object_id`,`iif_id`,`type`,`name`),
776 KEY `type` (`type`),
777 KEY `comment` (`reservation_comment`),
778 KEY `l2address` (`l2address`),
779 KEY `Port-FK-iif-oif` (`iif_id`,`type`),
780 CONSTRAINT `Port-FK-iif-oif` FOREIGN KEY (`iif_id`, `type`) REFERENCES `PortInterfaceCompat` (`iif_id`, `oif_id`),
781 CONSTRAINT `Port-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
782 ) ENGINE=InnoDB;
783
784 CREATE TABLE `PortAllowedVLAN` (
785 `object_id` int(10) unsigned NOT NULL,
786 `port_name` char(255) NOT NULL,
787 `vlan_id` int(10) unsigned NOT NULL default '0',
788 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
789 KEY `vlan_id` (`vlan_id`),
790 CONSTRAINT `PortAllowedVLAN-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `PortVLANMode` (`object_id`, `port_name`) ON DELETE CASCADE,
791 CONSTRAINT `PortAllowedVLAN-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
792 ) ENGINE=InnoDB;
793
794 CREATE TABLE `PortCompat` (
795 `type1` int(10) unsigned NOT NULL default '0',
796 `type2` int(10) unsigned NOT NULL default '0',
797 UNIQUE KEY `type1_2` (`type1`,`type2`),
798 KEY `type2` (`type2`)
799 ) ENGINE=InnoDB;
800
801 CREATE TABLE `PortInnerInterface` (
802 `id` int(10) unsigned NOT NULL,
803 `iif_name` char(16) NOT NULL,
804 PRIMARY KEY (`id`),
805 UNIQUE KEY `iif_name` (`iif_name`)
806 ) ENGINE=InnoDB;
807
808 CREATE TABLE `PortInterfaceCompat` (
809 `iif_id` int(10) unsigned NOT NULL,
810 `oif_id` int(10) unsigned NOT NULL,
811 UNIQUE KEY `pair` (`iif_id`,`oif_id`),
812 CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerInterface` (`id`)
813 ) ENGINE=InnoDB;
814
815 CREATE TABLE `PortLog` (
816 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
817 `port_id` int(10) unsigned NOT NULL,
818 `date` datetime NOT NULL,
819 `user` varchar(64) NOT NULL,
820 `message` text NOT NULL,
821 PRIMARY KEY (`id`),
822 KEY `port_id-date` (`port_id`,`date`),
823 CONSTRAINT `PortLog_ibfk_1` FOREIGN KEY (`port_id`) REFERENCES `Port` (`id`) ON DELETE CASCADE
824 ) ENGINE=InnoDB;
825
826 CREATE TABLE `PortNativeVLAN` (
827 `object_id` int(10) unsigned NOT NULL,
828 `port_name` char(255) NOT NULL,
829 `vlan_id` int(10) unsigned NOT NULL default '0',
830 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
831 UNIQUE KEY `port_id` (`object_id`,`port_name`),
832 CONSTRAINT `PortNativeVLAN-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `PortAllowedVLAN` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
833 ) ENGINE=InnoDB;
834
835 CREATE TABLE `PortVLANMode` (
836 `object_id` int(10) unsigned NOT NULL,
837 `port_name` char(255) NOT NULL,
838 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
839 PRIMARY KEY (`object_id`,`port_name`),
840 CONSTRAINT `PortVLANMode-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`)
841 ) ENGINE=InnoDB;
842
843 CREATE TABLE `Object` (
844 `id` int(10) unsigned NOT NULL auto_increment,
845 `name` char(255) default NULL,
846 `label` char(255) default NULL,
847 `objtype_id` int(10) unsigned NOT NULL default '1',
848 `asset_no` char(64) default NULL,
849 `has_problems` enum('yes','no') NOT NULL default 'no',
850 `comment` text,
851 PRIMARY KEY (`id`),
852 UNIQUE KEY `asset_no` (`asset_no`),
853 KEY `id-tid` (`id`,`objtype_id`),
854 KEY `type_id` (`objtype_id`,`id`)
855 ) ENGINE=InnoDB;
856
857 CREATE TABLE `ObjectHistory` (
858 `id` int(10) unsigned default NULL,
859 `name` char(255) default NULL,
860 `label` char(255) default NULL,
861 `objtype_id` int(10) unsigned default NULL,
862 `asset_no` char(64) default NULL,
863 `has_problems` enum('yes','no') NOT NULL default 'no',
864 `comment` text,
865 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
866 `user_name` char(64) default NULL,
867 KEY `id` (`id`),
868 CONSTRAINT `ObjectHistory-FK-object_id` FOREIGN KEY (`id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
869 ) ENGINE=InnoDB;
870
871 CREATE TABLE `RackSpace` (
872 `rack_id` int(10) unsigned NOT NULL default '0',
873 `unit_no` int(10) unsigned NOT NULL default '0',
874 `atom` enum('front','interior','rear') NOT NULL default 'interior',
875 `state` enum('A','U','T','W') NOT NULL default 'A',
876 `object_id` int(10) unsigned default NULL,
877 PRIMARY KEY (`rack_id`,`unit_no`,`atom`),
878 KEY `RackSpace_object_id` (`object_id`),
879 CONSTRAINT `RackSpace-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Object` (`id`),
880 CONSTRAINT `RackSpace-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
881 ) ENGINE=InnoDB;
882
883 CREATE TABLE `RackThumbnail` (
884 `rack_id` int(10) unsigned NOT NULL,
885 `thumb_data` blob,
886 UNIQUE KEY `rack_id` (`rack_id`),
887 CONSTRAINT `RackThumbnail-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
888 ) ENGINE=InnoDB;
889
890 CREATE TABLE `Script` (
891 `script_name` char(64) NOT NULL,
892 `script_text` longtext,
893 PRIMARY KEY (`script_name`)
894 ) ENGINE=InnoDB;
895
896 CREATE TABLE `TagStorage` (
897 `entity_realm` enum('file','ipv4net','ipv4rspool','ipv4vs','ipv6net','location','object','rack','user','vst') NOT NULL default 'object',
898 `entity_id` int(10) unsigned NOT NULL,
899 `tag_id` int(10) unsigned NOT NULL default '0',
900 `user` char(64) DEFAULT NULL,
901 `date` datetime DEFAULT NULL,
902 UNIQUE KEY `entity_tag` (`entity_realm`,`entity_id`,`tag_id`),
903 KEY `entity_id` (`entity_id`),
904 KEY `TagStorage-FK-tag_id` (`tag_id`),
905 CONSTRAINT `TagStorage-FK-tag_id` FOREIGN KEY (`tag_id`) REFERENCES `TagTree` (`id`)
906 ) ENGINE=InnoDB;
907
908 CREATE TABLE `TagTree` (
909 `id` int(10) unsigned NOT NULL auto_increment,
910 `parent_id` int(10) unsigned default NULL,
911 `tag` char(255) default NULL,
912 PRIMARY KEY (`id`),
913 UNIQUE KEY `tag` (`tag`),
914 KEY `TagTree-K-parent_id` (`parent_id`),
915 CONSTRAINT `TagTree-K-parent_id` FOREIGN KEY (`parent_id`) REFERENCES `TagTree` (`id`)
916 ) ENGINE=InnoDB;
917
918 CREATE TABLE `UserAccount` (
919 `user_id` int(10) unsigned NOT NULL auto_increment,
920 `user_name` char(64) NOT NULL default '',
921 `user_password_hash` char(40) default NULL,
922 `user_realname` char(64) default NULL,
923 PRIMARY KEY (`user_id`),
924 UNIQUE KEY `user_name` (`user_name`)
925 ) ENGINE=InnoDB;
926
927 CREATE TABLE `UserConfig` (
928 `varname` char(32) NOT NULL,
929 `varvalue` text NOT NULL,
930 `user` char(64) NOT NULL,
931 UNIQUE KEY `user_varname` (`user`,`varname`),
932 KEY `varname` (`varname`),
933 CONSTRAINT `UserConfig-FK-varname` FOREIGN KEY (`varname`) REFERENCES `Config` (`varname`) ON DELETE CASCADE,
934 CONSTRAINT `UserConfig-FK-user` FOREIGN KEY (`user`) REFERENCES `UserAccount` (`user_name`) ON DELETE CASCADE
935 ) ENGINE=InnoDB;
936
937 CREATE TABLE `VLANDescription` (
938 `domain_id` int(10) unsigned NOT NULL,
939 `vlan_id` int(10) unsigned NOT NULL default '0',
940 `vlan_type` enum('ondemand','compulsory','alien') NOT NULL default 'ondemand',
941 `vlan_descr` char(255) default NULL,
942 PRIMARY KEY (`domain_id`,`vlan_id`),
943 KEY `vlan_id` (`vlan_id`),
944 CONSTRAINT `VLANDescription-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`) ON DELETE CASCADE,
945 CONSTRAINT `VLANDescription-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
946 ) ENGINE=InnoDB;
947
948 CREATE TABLE `VLANDomain` (
949 `id` int(10) unsigned NOT NULL auto_increment,
950 `description` char(255) default NULL,
951 PRIMARY KEY (`id`),
952 UNIQUE KEY `description` (`description`)
953 ) ENGINE=InnoDB;
954
955 CREATE TABLE `VLANIPv4` (
956 `domain_id` int(10) unsigned NOT NULL,
957 `vlan_id` int(10) unsigned NOT NULL,
958 `ipv4net_id` int(10) unsigned NOT NULL,
959 UNIQUE KEY `network-domain` (`ipv4net_id`,`domain_id`),
960 KEY `VLANIPv4-FK-compound` (`domain_id`,`vlan_id`),
961 CONSTRAINT `VLANIPv4-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
962 CONSTRAINT `VLANIPv4-FK-ipv4net_id` FOREIGN KEY (`ipv4net_id`) REFERENCES `IPv4Network` (`id`) ON DELETE CASCADE
963 ) ENGINE=InnoDB;
964
965 CREATE TABLE `VLANIPv6` (
966 `domain_id` int(10) unsigned NOT NULL,
967 `vlan_id` int(10) unsigned NOT NULL,
968 `ipv6net_id` int(10) unsigned NOT NULL,
969 UNIQUE KEY `network-domain` (`ipv6net_id`,`domain_id`),
970 KEY `VLANIPv6-FK-compound` (`domain_id`,`vlan_id`),
971 CONSTRAINT `VLANIPv6-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
972 CONSTRAINT `VLANIPv6-FK-ipv6net_id` FOREIGN KEY (`ipv6net_id`) REFERENCES `IPv6Network` (`id`) ON DELETE CASCADE
973 ) ENGINE=InnoDB;
974
975 CREATE TABLE `VLANSTRule` (
976 `vst_id` int(10) unsigned NOT NULL,
977 `rule_no` int(10) unsigned NOT NULL,
978 `port_pcre` char(255) NOT NULL,
979 `port_role` enum('access','trunk','anymode','uplink','downlink','none') NOT NULL default 'none',
980 `wrt_vlans` char(255) default NULL,
981 `description` char(255) default NULL,
982 UNIQUE KEY `vst-rule` (`vst_id`,`rule_no`),
983 CONSTRAINT `VLANSTRule-FK-vst_id` FOREIGN KEY (`vst_id`) REFERENCES `VLANSwitchTemplate` (`id`) ON DELETE CASCADE
984 ) ENGINE=InnoDB;
985
986 CREATE TABLE `VLANSwitch` (
987 `object_id` int(10) unsigned NOT NULL,
988 `domain_id` int(10) unsigned NOT NULL,
989 `template_id` int(10) unsigned NOT NULL,
990 `mutex_rev` int(10) unsigned NOT NULL default '0',
991 `out_of_sync` enum('yes','no') NOT NULL default 'yes',
992 `last_errno` int(10) unsigned NOT NULL default '0',
993 `last_change` timestamp NOT NULL default '0000-00-00 00:00:00',
994 `last_push_started` timestamp NOT NULL default '0000-00-00 00:00:00',
995 `last_push_finished` timestamp NOT NULL default '0000-00-00 00:00:00',
996 `last_error_ts` timestamp NOT NULL default '0000-00-00 00:00:00',
997 UNIQUE KEY `object_id` (`object_id`),
998 KEY `domain_id` (`domain_id`),
999 KEY `template_id` (`template_id`),
1000 KEY `out_of_sync` (`out_of_sync`),
1001 KEY `last_errno` (`last_errno`),
1002 CONSTRAINT `VLANSwitch-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`),
1003 CONSTRAINT `VLANSwitch-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`),
1004 CONSTRAINT `VLANSwitch-FK-template_id` FOREIGN KEY (`template_id`) REFERENCES `VLANSwitchTemplate` (`id`)
1005 ) ENGINE=InnoDB;
1006
1007 CREATE TABLE `VLANSwitchTemplate` (
1008 `id` int(10) unsigned NOT NULL auto_increment,
1009 `mutex_rev` int(10) NOT NULL,
1010 `description` char(255) default NULL,
1011 `saved_by` char(64) NOT NULL,
1012 PRIMARY KEY (`id`),
1013 UNIQUE KEY `description` (`description`)
1014 ) ENGINE=InnoDB;
1015
1016 CREATE TABLE `VLANValidID` (
1017 `vlan_id` int(10) unsigned NOT NULL default '1',
1018 PRIMARY KEY (`vlan_id`)
1019 ) ENGINE=InnoDB;
1020
1021 CREATE VIEW `Location` AS SELECT O.id, O.name, O.has_problems, O.comment, P.id AS parent_id, P.name AS parent_name
1022 FROM `Object` O
1023 LEFT JOIN `EntityLink` EL ON O.id = EL.child_entity_id
1024 LEFT JOIN `Object` P ON (EL.parent_entity_id = P.id AND P.objtype_id = 1562 AND EL.parent_entity_type = 'location' AND EL.child_entity_type = 'location')
1025 WHERE O.objtype_id = 1562;
1026
1027 CREATE VIEW `Row` AS SELECT O.id, O.name, L.id AS location_id, L.name AS location_name
1028 FROM `Object` O
1029 LEFT JOIN `EntityLink` EL ON O.id = EL.child_entity_id AND EL.parent_entity_type = 'location' AND EL.child_entity_type = 'row'
1030 LEFT JOIN `Object` L ON EL.parent_entity_id = L.id AND L.objtype_id = 1562
1031 WHERE O.objtype_id = 1561;
1032
1033 CREATE VIEW `Rack` AS SELECT O.id, O.name AS name, O.asset_no, O.has_problems, O.comment,
1034 AV.uint_value AS height,
1035 RT.thumb_data,
1036 R.id AS row_id,
1037 R.name AS row_name
1038 FROM `Object` O
1039 LEFT JOIN `AttributeValue` AV ON O.id = AV.object_id AND AV.attr_id = 27
1040 LEFT JOIN `RackThumbnail` RT ON O.id = RT.rack_id
1041 LEFT JOIN `EntityLink` EL ON O.id = EL.child_entity_id AND EL.parent_entity_type = 'row' AND EL.child_entity_type = 'rack'
1042 INNER JOIN `Object` R ON R.id = EL.parent_entity_id
1043 WHERE O.objtype_id = 1560;
1044
1045 CREATE VIEW `RackObject` AS SELECT id, name, label, objtype_id, asset_no, has_problems, comment FROM `Object`
1046 WHERE `objtype_id` NOT IN (1560, 1561, 1562);
1047
1048 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
1049 END_OF_FILE;
1050 ##########################################################################
1051 case 'dictbase':
1052 $db_version = CODE_VERSION;
1053 return <<<END_OF_FILE
1054 INSERT INTO `Attribute` (`id`, `type`, `name`) VALUES
1055 (1,'string','OEM S/N 1'),
1056 (2,'dict','HW type'),
1057 (3,'string','FQDN'),
1058 (4,'dict','SW type'),
1059 (5,'string','SW version'),
1060 (6,'uint','number of ports'),
1061 (7,'float','max. current, Ampers'),
1062 (8,'float','power load, percents'),
1063 (14,'string','contact person'),
1064 (13,'float','max power, Watts'),
1065 (16,'uint','flash memory, MB'),
1066 (17,'uint','DRAM, MB'),
1067 (18,'uint','CPU, MHz'),
1068 (20,'string','OEM S/N 2'),
1069 (21,'date','support contract expiration'),
1070 (22,'date','HW warranty expiration'),
1071 (24,'date','SW warranty expiration'),
1072 (25,'string','UUID'),
1073 (26,'dict','Hypervisor'),
1074 (27,'uint','Height, units'),
1075 (28,'string','Slot number'),
1076 -- ^^^^^ Any new "default" attributes must go above this line! ^^^^^
1077 -- Primary key value 9999 makes sure, that AUTO_INCREMENT on server restart
1078 -- doesn't drop below 10000 (other code relies on this, site-specific
1079 -- attributes are assigned IDs starting from 10000).
1080 (9999,'string','base MAC address');
1081
1082 INSERT INTO `Chapter` (`id`, `sticky`, `name`) VALUES
1083 (1,'yes','ObjectType'),
1084 (2,'yes','PortOuterInterface'),
1085 (11,'no','server models'),
1086 (12,'no','network switch models'),
1087 (13,'no','server OS type'),
1088 (14,'no','switch OS type'),
1089 (16,'no','router OS type'),
1090 (17,'no','router models'),
1091 (18,'no','disk array models'),
1092 (19,'no','tape library models'),
1093 (21,'no','KVM switch models'),
1094 (23,'no','console models'),
1095 (24,'no','network security models'),
1096 (25,'no','wireless models'),
1097 (26,'no','fibre channel switch models'),
1098 (27,'no','PDU models'),
1099 (28,'no','Voice/video hardware'),
1100 (29,'no','Yes/No'),
1101 (30,'no','network chassis models'),
1102 (31,'no','server chassis models'),
1103 (32,'no','virtual switch models'),
1104 (33,'no','virtual switch OS type'),
1105 (34,'no','power supply chassis models'),
1106 (35,'no','power supply models'),
1107 (36,'no','serial console server models'),
1108 (37,'no','wireless OS type'),
1109 -- Default chapters must have ID less than 10000, add them above this line.
1110 (9999,'no','multiplexer models');
1111
1112 INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_id`) VALUES
1113 (2,1,NULL),
1114 (2,2,27),
1115 (2,3,NULL),
1116 (2,5,NULL),
1117 (4,1,NULL),
1118 (4,2,11),
1119 (4,3,NULL),
1120 (4,4,13),
1121 (4,14,NULL),
1122 (4,21,NULL),
1123 (4,22,NULL),
1124 (4,24,NULL),
1125 (4,25,NULL),
1126 (4,26,29),
1127 (4,28,NULL),
1128 (5,1,NULL),
1129 (5,2,18),
1130 (6,1,NULL),
1131 (6,2,19),
1132 (6,20,NULL),
1133 (7,1,NULL),
1134 (7,2,17),
1135 (7,3,NULL),
1136 (7,4,16),
1137 (7,5,NULL),
1138 (7,14,NULL),
1139 (7,16,NULL),
1140 (7,17,NULL),
1141 (7,18,NULL),
1142 (7,21,NULL),
1143 (7,22,NULL),
1144 (7,24,NULL),
1145 (8,1,NULL),
1146 (8,2,12),
1147 (8,3,NULL),
1148 (8,4,14),
1149 (8,5,NULL),
1150 (8,14,NULL),
1151 (8,16,NULL),
1152 (8,17,NULL),
1153 (8,18,NULL),
1154 (8,20,NULL),
1155 (8,21,NULL),
1156 (8,22,NULL),
1157 (8,24,NULL),
1158 (8,28,NULL),
1159 (9,6,NULL),
1160 (12,1,NULL),
1161 (12,3,NULL),
1162 (12,7,NULL),
1163 (12,8,NULL),
1164 (12,13,NULL),
1165 (12,20,NULL),
1166 (445,1,NULL),
1167 (445,2,21),
1168 (445,3,NULL),
1169 (445,5,NULL),
1170 (445,14,NULL),
1171 (445,22,NULL),
1172 (447,1,NULL),
1173 (447,2,9999),
1174 (447,3,NULL),
1175 (447,5,NULL),
1176 (447,14,NULL),
1177 (447,22,NULL),
1178 (15,2,23),
1179 (798,1,NULL),
1180 (798,2,24),
1181 (798,3,NULL),
1182 (798,5,NULL),
1183 (798,14,NULL),
1184 (798,16,NULL),
1185 (798,17,NULL),
1186 (798,18,NULL),
1187 (798,20,NULL),
1188 (798,21,NULL),
1189 (798,22,NULL),
1190 (798,24,NULL),
1191 (798,28,NULL),
1192 (965,1,NULL),
1193 (965,3,NULL),
1194 (965,2,25),
1195 (965,4,37),
1196 (1055,2,26),
1197 (1055,28,NULL),
1198 (1323,1,NULL),
1199 (1323,2,28),
1200 (1323,3,NULL),
1201 (1323,5,NULL),
1202 (1397,1,NULL),
1203 (1397,2,34),
1204 (1397,14,NULL),
1205 (1397,21,NULL),
1206 (1397,22,NULL),
1207 (1398,1,NULL),
1208 (1398,2,35),
1209 (1398,14,NULL),
1210 (1398,21,NULL),
1211 (1398,22,NULL),
1212 (1502,1,NULL),
1213 (1502,2,31),
1214 (1502,3,NULL),
1215 (1502,14,NULL),
1216 (1502,20,NULL),
1217 (1502,21,NULL),
1218 (1502,22,NULL),
1219 (1503,1,NULL),
1220 (1503,2,30),
1221 (1503,3,NULL),
1222 (1503,4,14),
1223 (1503,5,NULL),
1224 (1503,14,NULL),
1225 (1503,16,NULL),
1226 (1503,17,NULL),
1227 (1503,18,NULL),
1228 (1503,20,NULL),
1229 (1503,21,NULL),
1230 (1503,22,NULL),
1231 (1503,24,NULL),
1232 (1504,3,NULL),
1233 (1504,4,13),
1234 (1504,14,NULL),
1235 (1504,24,NULL),
1236 (1505,14,NULL),
1237 (1506,14,NULL),
1238 (1506,17,NULL),
1239 (1506,18,NULL),
1240 (1507,1,NULL),
1241 (1507,2,32),
1242 (1507,3,NULL),
1243 (1507,4,33),
1244 (1507,5,NULL),
1245 (1507,14,NULL),
1246 (1507,20,NULL),
1247 (1507,21,NULL),
1248 (1507,22,NULL),
1249 (1560,27,NULL),
1250 (1562,14,NULL),
1251 (1644, 1, NULL),
1252 (1644, 2, 36),
1253 (1644, 3, NULL);
1254
1255 INSERT INTO `PortInnerInterface` VALUES
1256 (1,'hardwired'),
1257 (2,'SFP-100'),
1258 (3,'GBIC'),
1259 (4,'SFP-1000'),
1260 (5,'XENPAK'),
1261 (6,'X2'),
1262 (7,'XPAK'),
1263 (8,'XFP'),
1264 (9,'SFP+'),
1265 (10,'QSFP+'),
1266 (11,'CFP');
1267
1268 INSERT INTO `ObjectParentCompat` VALUES
1269 (3,13),
1270 (4,1504),
1271 (4,1507),
1272 (1397,1398),
1273 (1502,4),
1274 (1503,8),
1275 (1505,4),
1276 (1505,1504),
1277 (1505,1506),
1278 (1505,1507),
1279 (1506,4),
1280 (1506,1504);
1281
1282 INSERT INTO `PortInterfaceCompat` VALUES
1283 (2,1208),(2,1195),(2,1196),(2,1197),(2,1198),(2,1199),(2,1200),(2,1201),
1284 (3,1078),(3,24),(3,34),(3,1202),(3,1203),(3,1204),(3,1205),(3,1206),(3,1207),
1285 (4,1077),(4,24),(4,34),(4,1202),(4,1203),(4,1204),(4,1205),(4,1206),(4,1207),
1286 (5,1079),(5,30),(5,35),(5,36),(5,37),(5,38),(5,39),(5,40),
1287 (6,1080),(6,30),(6,35),(6,36),(6,37),(6,38),(6,39),(6,40),
1288 (7,1081),(7,30),(7,35),(7,36),(7,37),(7,38),(7,39),(7,40),
1289 (8,1082),(8,30),(8,35),(8,36),(8,37),(8,38),(8,39),(8,40),
1290 (9,1084),(9,30),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),
1291 (10,1588),(10,1663),(10,1664),
1292 (11,1668),(11,1669),(11,1670),(11,1671),
1293 (1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682),(1,1322),(1,1399),(1,1469);
1294
1295 INSERT INTO `PortCompat` (`type1`, `type2`) VALUES
1296 (17,17),
1297 (18,18),
1298 (19,19),
1299 (24,24),
1300 (18,19),
1301 (19,18),
1302 (18,24),
1303 (24,18),
1304 (19,24),
1305 (24,19),
1306 (29,29),
1307 (30,30),
1308 (16,1322),
1309 (1322,16),
1310 (29,681),
1311 (29,682),
1312 (32,32),
1313 (33,446),
1314 (34,34),
1315 (35,35),
1316 (36,36),
1317 (37,37),
1318 (38,38),
1319 (39,39),
1320 (40,40),
1321 (41,41),
1322 (439,439),
1323 (446,33),
1324 (681,29),
1325 (681,681),
1326 (681,682),
1327 (682,29),
1328 (682,681),
1329 (682,682),
1330 (1077,1077),
1331 (1084,1084),
1332 (1087,1087),
1333 (1195,1195),
1334 (1196,1196),
1335 (1197,1197),
1336 (1198,1199),
1337 (1199,1198),
1338 (1200,1200),
1339 (1201,1201),
1340 (1202,1202),
1341 (1203,1203),
1342 (1204,1204),
1343 (1205,1205),
1344 (1206,1207),
1345 (1207,1206),
1346 (1209,1209),
1347 (1210,1210),
1348 (1211,1211),
1349 (1212,1212),
1350 (1213,1213),
1351 (1214,1214),
1352 (1215,1215),
1353 (1216,1216),
1354 (1217,1217),
1355 (1218,1218),
1356 (1219,1219),
1357 (1220,1220),
1358 (1221,1221),
1359 (1222,1222),
1360 (1223,1223),
1361 (1224,1224),
1362 (1225,1225),
1363 (1226,1226),
1364 (1227,1227),
1365 (1228,1228),
1366 (1229,1229),
1367 (1230,1230),
1368 (1231,1231),
1369 (1232,1232),
1370 (1233,1233),
1371 (1234,1234),
1372 (1235,1235),
1373 (1236,1236),
1374 (1237,1237),
1375 (1238,1238),
1376 (1239,1239),
1377 (1240,1240),
1378 (1241,1241),
1379 (1242,1242),
1380 (1243,1243),
1381 (1244,1244),
1382 (1245,1245),
1383 (1246,1246),
1384 (1247,1247),
1385 (1248,1248),
1386 (1249,1249),
1387 (1250,1250),
1388 (1251,1251),
1389 (1252,1252),
1390 (1253,1253),
1391 (1254,1254),
1392 (1255,1255),
1393 (1256,1256),
1394 (1257,1257),
1395 (1258,1258),
1396 (1259,1259),
1397 (1260,1260),
1398 (1261,1261),
1399 (1262,1262),
1400 (1263,1263),
1401 (1264,1264),
1402 (1265,1265),
1403 (1266,1266),
1404 (1267,1267),
1405 (1268,1268),
1406 (1269,1269),
1407 (1270,1270),
1408 (1271,1271),
1409 (1272,1272),
1410 (1273,1273),
1411 (1274,1274),
1412 (1275,1275),
1413 (1276,1276),
1414 (1277,1277),
1415 (1278,1278),
1416 (1279,1279),
1417 (1280,1280),
1418 (1281,1281),
1419 (1282,1282),
1420 (1283,1283),
1421 (1284,1284),
1422 (1285,1285),
1423 (1286,1286),
1424 (1287,1287),
1425 (1288,1288),
1426 (1289,1289),
1427 (1290,1290),
1428 (1291,1291),
1429 (1292,1292),
1430 (1293,1293),
1431 (1294,1294),
1432 (1295,1295),
1433 (1296,1296),
1434 (1297,1297),
1435 (1298,1298),
1436 (1299,1299),
1437 (1300,1300),
1438 (1316,1316),
1439 (1424,1424),
1440 (1425,1425),
1441 (1426,1426),
1442 (1427,1427),
1443 (1428,1428),
1444 (1429,1429),
1445 (1430,1430),
1446 (1431,1431),
1447 (1432,1432),
1448 (1433,1433),
1449 (1434,1434),
1450 (1435,1435),
1451 (1436,1436),
1452 (1437,1437),
1453 (1438,1438),
1454 (1439,1439),
1455 (1440,1440),
1456 (1441,1441),
1457 (1442,1442),
1458 (1443,1443),
1459 (1444,1444),
1460 (1445,1445),
1461 (1446,1446),
1462 (1447,1447),
1463 (1448,1448),
1464 (1449,1449),
1465 (1450,1450),
1466 (1451,1451),
1467 (1452,1452),
1468 (1453,1453),
1469 (1454,1454),
1470 (1455,1455),
1471 (1456,1456),
1472 (1457,1457),
1473 (1458,1458),
1474 (1459,1459),
1475 (1460,1460),
1476 (1461,1461),
1477 (1462,1462),
1478 (1463,1463),
1479 (1464,1464),
1480 (1465,1465),
1481 (1466,1466),
1482 (1469,1469),
1483 (1399,1399),
1484 (1588,1588),
1485 (1603,1603),
1486 (1661,1661),
1487 (1663,1663),
1488 (1664,1664),
1489 (1668,1668),
1490 (1669,1669),
1491 (1670,1670),
1492 (1671,1671),
1493 (1642,1642);
1494
1495 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES
1496 ('MASSCOUNT','8','uint','no','no','yes','&quot;Fast&quot; form is this many records tall'),
1497 ('MAXSELSIZE','30','uint','no','no','yes','&lt;SELECT&gt; lists height'),
1498 ('enterprise','MyCompanyName','string','no','no','no','Organization name'),
1499 ('ROW_SCALE','2','uint','no','no','yes','Picture scale for rack row display'),
1500 ('PORTS_PER_ROW','12','uint','no','no','yes','Ports per row in VLANs tab'),
1501 ('IPV4_ADDRS_PER_PAGE','256','uint','no','no','yes','IPv4 addresses per page'),
1502 ('DEFAULT_RACK_HEIGHT','42','uint','yes','no','yes','Default rack height'),
1503 ('DEFAULT_SLB_VS_PORT','','uint','yes','no','yes','Default port of SLB virtual service'),
1504 ('DEFAULT_SLB_RS_PORT','','uint','yes','no','yes','Default port of SLB real server'),
1505 ('DETECT_URLS','no','string','yes','no','yes','Detect URLs in text fields'),
1506 ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','yes','Rack pre-selection threshold'),
1507 ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','yes','Inservice status for new SLB real servers'),
1508 ('AUTOPORTS_CONFIG','4 = 1*33*kvm + 2*24*eth%u;15 = 1*446*kvm','string','yes','no','no','AutoPorts configuration'),
1509 ('DEFAULT_OBJECT_TYPE','4','uint','yes','no','yes','Default object type for new objects'),
1510 ('SHOW_EXPLICIT_TAGS','yes','string','no','no','yes','Show explicit tags'),
1511 ('SHOW_IMPLICIT_TAGS','yes','string','no','no','yes','Show implicit tags'),
1512 ('SHOW_AUTOMATIC_TAGS','no','string','no','no','yes','Show automatic tags'),
1513 ('IPV4_AUTO_RELEASE','1','uint','no','no','yes','Auto-release IPv4 addresses on allocation'),
1514 ('SHOW_LAST_TAB','no','string','yes','no','yes','Remember last tab shown for each page'),
1515 ('EXT_IPV4_VIEW','yes','string','no','no','yes','Extended IPv4 view'),
1516 ('TREE_THRESHOLD','25','uint','yes','no','yes','Tree view auto-collapse threshold'),
1517 ('IPV4_JAYWALK','no','string','no','no','no','Enable IPv4 address allocations w/o covering network'),
1518 ('ADDNEW_AT_TOP','yes','string','no','no','yes','Render "add new" line at top of the list'),
1519 ('IPV4_TREE_SHOW_USAGE','yes','string','no','no','yes','Show address usage in IPv4 tree'),
1520 ('PREVIEW_TEXT_MAXCHARS','10240','uint','yes','no','yes','Max chars for text file preview'),
1521 ('PREVIEW_TEXT_ROWS','25','uint','yes','no','yes','Rows for text file preview'),
1522 ('PREVIEW_TEXT_COLS','80','uint','yes','no','yes','Columns for text file preview'),
1523 ('PREVIEW_IMAGE_MAXPXS','320','uint','yes','no','yes','Max pixels per axis for image file preview'),
1524 ('VENDOR_SIEVE','','string','yes','no','yes','Vendor sieve configuration'),
1525 ('IPV4LB_LISTSRC','{\$typeid_4}','string','yes','no','no','List source: IPv4 load balancers'),
1526 ('IPV4OBJ_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_12} or {\$typeid_445} or {\$typeid_447} or {\$typeid_798} or {\$typeid_1397} or {\$typeid_1502} or {\$typeid_1503} or {\$typeid_1504} or {\$typeid_1507}','string','yes','no','no','List source: IPv4-enabled objects'),
1527 ('IPV4NAT_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_798}','string','yes','no','no','List source: IPv4 NAT performers'),
1528 ('ASSETWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which asset tag should be set'),
1529 ('NAMEWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which common name should be set'),
1530 ('RACKS_PER_ROW','12','uint','yes','no','yes','Racks per row'),
1531 ('FILTER_PREDICATE_SIEVE','','string','yes','no','yes','Predicate sieve regex(7)'),
1532 ('FILTER_DEFAULT_ANDOR','or','string','no','no','yes','Default list filter boolean operation (or/and)'),
1533 ('FILTER_SUGGEST_ANDOR','yes','string','no','no','yes','Suggest and/or selector in list filter'),
1534 ('FILTER_SUGGEST_TAGS','yes','string','no','no','yes','Suggest tags in list filter'),
1535 ('FILTER_SUGGEST_PREDICATES','yes','string','no','no','yes','Suggest predicates in list filter'),
1536 ('FILTER_SUGGEST_EXTRA','no','string','no','no','yes','Suggest extra expression in list filter'),
1537 ('DEFAULT_SNMP_COMMUNITY','public','string','no','no','no','Default SNMP Community string'),
1538 ('IPV4_ENABLE_KNIGHT','yes','string','no','no','yes','Enable IPv4 knight feature'),
1539 ('TAGS_TOPLIST_SIZE','50','uint','yes','no','yes','Tags top list size'),
1540 ('TAGS_QUICKLIST_SIZE','20','uint','no','no','yes','Tags quick list size'),
1541 ('TAGS_QUICKLIST_THRESHOLD','50','uint','yes','no','yes','Tags quick list threshold'),
1542 ('ENABLE_MULTIPORT_FORM','no','string','no','no','yes','Enable "Add/update multiple ports" form'),
1543 ('DEFAULT_PORT_IIF_ID','1','uint','no','no','no','Default port inner interface ID'),
1544 ('DEFAULT_PORT_OIF_IDS','1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084; 10=1588; 11=1668','string','no','no','no','Default port outer interface IDs'),
1545 ('IPV4_TREE_RTR_AS_CELL','yes','string','no','no','yes','Show full router info for each network in IPv4 tree view'),
1546 ('PROXIMITY_RANGE','0','uint','yes','no','yes','Proximity range (0 is current rack only)'),
1547 ('VLANSWITCH_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN running switches'),
1548 ('VLANIPV4NET_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN-based IPv4 networks'),
1549 ('IPV4_TREE_SHOW_VLAN','yes','string','no','no','yes','Show VLAN for each network in IPv4 tree'),
1550 ('DEFAULT_VDOM_ID','','uint','yes','no','yes','Default VLAN domain ID'),
1551 ('DEFAULT_VST_ID','','uint','yes','no','yes','Default VLAN switch template ID'),
1552 ('8021Q_DEPLOY_MINAGE','300','uint','no','no','no','802.1Q deploy minimum age'),
1553 ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age'),
1554 ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer'),
1555 ('8021Q_WRI_AFTER_CONFT_LISTSRC','false','string','no','no','no','802.1Q: save device configuration after deploy (RackCode)'),
1556 ('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy'),
1557 ('STATIC_FILTER','yes','string','no','no','yes','Enable Filter Caching'),
1558 ('ENABLE_BULKPORT_FORM','yes','string','no','no','yes','Enable "Bulk Port" form'),
1559 ('CDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running CDP'),
1560 ('LLDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running LLDP'),
1561 ('SHRINK_TAG_TREE_ON_CLICK','yes','string','no','no','yes','Dynamically hide useless tags in tagtree'),
1562 ('MAX_UNFILTERED_ENTITIES','0','uint','no','no','yes','Max item count to display on unfiltered result page'),
1563 ('SYNCDOMAIN_MAX_PROCESSES','0','uint','yes','no', 'no', 'How many worker proceses syncdomain cron script should create'),
1564 ('PORT_EXCLUSION_LISTSRC','{\$typeid_3} or {\$typeid_10} or {\$typeid_11} or {\$typeid_1505} or {\$typeid_1506}','string','yes','no','no','List source: objects without ports'),
1565 ('FILTER_RACKLIST_BY_TAGS','yes','string','yes','no','yes','Rackspace: show only racks matching the current object\'s tags'),
1566 ('SSH_OBJS_LISTSRC','none','string','yes','no','yes','Rackcode filter for SSH-managed objects'),
1567 ('TELNET_OBJS_LISTSRC','none','string','yes','no','yes','Rackcode filter for telnet-managed objects'),
1568 ('SYNC_802Q_LISTSRC','','string','yes','no','no','List of VLAN switches sync is enabled on'),
1569 ('QUICK_LINK_PAGES','','string','yes','no','yes','List of pages to dislay in quick links'),
1570 ('CACTI_LISTSRC','false','string','yes','no','no','List of object with Cacti graphs'),
1571 ('CACTI_URL','','string','yes','no','no','Cacti server base URL'),
1572 ('CACTI_USERNAME','','string','yes','no','no','Cacti user account'),
1573 ('CACTI_USERPASS','','string','yes','no','no','Cacti user password'),
1574 ('VIRTUAL_OBJ_LISTSRC','1504,1505,1506,1507','string','no','no','no','List source: virtual objects'),
1575 ('DATETIME_ZONE','UTC','string','yes','no','yes','Timezone to use for displaying/calculating dates'),
1576 ('DATETIME_FORMAT','m/d/Y','string','no','no','yes','PHP date() format to use for date output'),
1577 ('DB_VERSION','${db_version}','string','no','yes','no','Database version.');
1578
1579 INSERT INTO `Script` VALUES ('RackCode','allow {\$userid_1}');
1580
1581 INSERT INTO VLANValidID (vlan_id) VALUES
1582 (1),
1583 (2),
1584 (3),
1585 (4),
1586 (5),
1587 (6),
1588 (7),
1589 (8),
1590 (9),
1591 (10),
1592 (11),
1593 (12),
1594 (13),
1595 (14),
1596 (15),
1597 (16),
1598 (17),
1599 (18),
1600 (19),
1601 (20),
1602 (21),
1603 (22),
1604 (23),
1605 (24),
1606 (25),
1607 (26),
1608 (27),
1609 (28),
1610 (29),
1611 (30),
1612 (31),
1613 (32),
1614 (33),
1615 (34),
1616 (35),
1617 (36),
1618 (37),
1619 (38),
1620 (39),
1621 (40),
1622 (41),
1623 (42),
1624 (43),
1625 (44),
1626 (45),
1627 (46),
1628 (47),
1629 (48),
1630 (49),
1631 (50),
1632 (51),
1633 (52),
1634 (53),
1635 (54),
1636 (55),
1637 (56),
1638 (57),
1639 (58),
1640 (59),
1641 (60),
1642 (61),
1643 (62),
1644 (63),
1645 (64),
1646 (65),
1647 (66),
1648 (67),
1649 (68),
1650 (69),
1651 (70),
1652 (71),
1653 (72),
1654 (73),
1655 (74),
1656 (75),
1657 (76),
1658 (77),
1659 (78),
1660 (79),
1661 (80),
1662 (81),
1663 (82),
1664 (83),
1665 (84),
1666 (85),
1667 (86),
1668 (87),
1669 (88),
1670 (89),
1671 (90),
1672 (91),
1673 (92),
1674 (93),
1675 (94),
1676 (95),
1677 (96),
1678 (97),
1679 (98),
1680 (99),
1681 (100),
1682 (101),
1683 (102),
1684 (103),
1685 (104),
1686 (105),
1687 (106),
1688 (107),
1689 (108),
1690 (109),
1691 (110),
1692 (111),
1693 (112),
1694 (113),
1695 (114),
1696 (115),
1697 (116),
1698 (117),
1699 (118),
1700 (119),
1701 (120),
1702 (121),
1703 (122),
1704 (123),
1705 (124),
1706 (125),
1707 (126),
1708 (127),
1709 (128),
1710 (129),
1711 (130),
1712 (131),
1713 (132),
1714 (133),
1715 (134),
1716 (135),
1717 (136),
1718 (137),
1719 (138),
1720 (139),
1721 (140),
1722 (141),
1723 (142),
1724 (143),
1725 (144),
1726 (145),
1727 (146),
1728 (147),
1729 (148),
1730 (149),
1731 (150),
1732 (151),
1733 (152),
1734 (153),
1735 (154),
1736 (155),
1737 (156),
1738 (157),
1739 (158),
1740 (159),
1741 (160),
1742 (161),
1743 (162),
1744 (163),
1745 (164),
1746 (165),
1747 (166),
1748 (167),
1749 (168),
1750 (169),
1751 (170),
1752 (171),
1753 (172),
1754 (173),
1755 (174),
1756 (175),
1757 (176),
1758 (177),
1759 (178),
1760 (179),
1761 (180),
1762 (181),
1763 (182),
1764 (183),
1765 (184),
1766 (185),
1767 (186),
1768 (187),
1769 (188),
1770 (189),
1771 (190),
1772 (191),
1773 (192),
1774 (193),
1775 (194),
1776 (195),
1777 (196),
1778 (197),
1779 (198),
1780 (199),
1781 (200),
1782 (201),
1783 (202),
1784 (203),
1785 (204),
1786 (205),
1787 (206),
1788 (207),
1789 (208),
1790 (209),
1791 (210),
1792 (211),
1793 (212),
1794 (213),
1795 (214),
1796 (215),
1797 (216),
1798 (217),
1799 (218),
1800 (219),
1801 (220),
1802 (221),
1803 (222),
1804 (223),
1805 (224),
1806 (225),
1807 (226),
1808 (227),
1809 (228),
1810 (229),
1811 (230),
1812 (231),
1813 (232),
1814 (233),
1815 (234),
1816 (235),
1817 (236),
1818 (237),
1819 (238),
1820 (239),
1821 (240),
1822 (241),
1823 (242),
1824 (243),
1825 (244),
1826 (245),
1827 (246),
1828 (247),
1829 (248),
1830 (249),
1831 (250),
1832 (251),
1833 (252),
1834 (253),
1835 (254),
1836 (255),
1837 (256),
1838 (257),
1839 (258),
1840 (259),
1841 (260),
1842 (261),
1843 (262),
1844 (263),
1845 (264),
1846 (265),
1847 (266),
1848 (267),
1849 (268),
1850 (269),
1851 (270),
1852 (271),
1853 (272),
1854 (273),
1855 (274),
1856 (275),
1857 (276),
1858 (277),
1859 (278),
1860 (279),
1861 (280),
1862 (281),
1863 (282),
1864 (283),
1865 (284),
1866 (285),
1867 (286),
1868 (287),
1869 (288),
1870 (289),
1871 (290),
1872 (291),
1873 (292),
1874 (293),
1875 (294),
1876 (295),
1877 (296),
1878 (297),
1879 (298),
1880 (299),
1881 (300),
1882 (301),
1883 (302),
1884 (303),
1885 (304),
1886 (305),
1887 (306),
1888 (307),
1889 (308),
1890 (309),
1891 (310),
1892 (311),
1893 (312),
1894 (313),
1895 (314),
1896 (315),
1897 (316),
1898 (317),
1899 (318),
1900 (319),
1901 (320),
1902 (321),
1903 (322),
1904 (323),
1905 (324),
1906 (325),
1907 (326),
1908 (327),
1909 (328),
1910 (329),
1911 (330),
1912 (331),
1913 (332),
1914 (333),
1915 (334),
1916 (335),
1917 (336),
1918 (337),
1919 (338),
1920 (339),
1921 (340),
1922 (341),
1923 (342),
1924 (343),
1925 (344),
1926 (345),
1927 (346),
1928 (347),
1929 (348),
1930 (349),
1931 (350),
1932 (351),
1933 (352),
1934 (353),
1935 (354),
1936 (355),
1937 (356),
1938 (357),
1939 (358),
1940 (359),
1941 (360),
1942 (361),
1943 (362),
1944 (363),
1945 (364),
1946 (365),
1947 (366),
1948 (367),
1949 (368),
1950 (369),
1951 (370),
1952 (371),
1953 (372),
1954 (373),
1955 (374),
1956 (375),
1957 (376),
1958 (377),
1959 (378),
1960 (379),
1961 (380),
1962 (381),
1963 (382),
1964 (383),
1965 (384),
1966 (385),
1967 (386),
1968 (387),
1969 (388),
1970 (389),
1971 (390),
1972 (391),
1973 (392),
1974 (393),
1975 (394),
1976 (395),
1977 (396),
1978 (397),
1979 (398),
1980 (399),
1981 (400),
1982 (401),
1983 (402),
1984 (403),
1985 (404),
1986 (405),
1987 (406),
1988 (407),
1989 (408),
1990 (409),
1991 (410),
1992 (411),
1993 (412),
1994 (413),
1995 (414),
1996 (415),
1997 (416),
1998 (417),
1999 (418),
2000 (419),
2001 (420),
2002 (421),
2003 (422),
2004 (423),
2005 (424),
2006 (425),
2007 (426),
2008 (427),
2009 (428),
2010 (429),
2011 (430),
2012 (431),
2013 (432),
2014 (433),
2015 (434),
2016 (435),
2017 (436),
2018 (437),
2019 (438),
2020 (439),
2021 (440),
2022 (441),
2023 (442),
2024 (443),
2025 (444),
2026 (445),
2027 (446),
2028 (447),
2029 (448),
2030 (449),
2031 (450),
2032 (451),
2033 (452),
2034 (453),
2035 (454),
2036 (455),
2037 (456),
2038 (457),
2039 (458),
2040 (459),
2041 (460),
2042 (461),
2043 (462),
2044 (463),
2045 (464),
2046 (465),
2047 (466),
2048 (467),
2049 (468),
2050 (469),
2051 (470),
2052 (471),
2053 (472),
2054 (473),
2055 (474),
2056 (475),
2057 (476),
2058 (477),
2059 (478),
2060 (479),
2061 (480),
2062 (481),
2063 (482),
2064 (483),
2065 (484),
2066 (485),
2067 (486),
2068 (487),
2069 (488),
2070 (489),
2071 (490),
2072 (491),
2073 (492),
2074 (493),
2075 (494),
2076 (495),
2077 (496),
2078 (497),
2079 (498),
2080 (499),
2081 (500),
2082 (501),
2083 (502),
2084 (503),
2085 (504),
2086 (505),
2087 (506),
2088 (507),
2089 (508),
2090 (509),
2091 (510),
2092 (511),
2093 (512),
2094 (513),
2095 (514),
2096 (515),
2097 (516),
2098 (517),
2099 (518),
2100 (519),
2101 (520),
2102 (521),
2103 (522),
2104 (523),
2105 (524),
2106 (525),
2107 (526),
2108 (527),
2109 (528),
2110 (529),
2111 (530),
2112 (531),
2113 (532),
2114 (533),
2115 (534),
2116 (535),
2117 (536),
2118 (537),
2119 (538),
2120 (539),
2121 (540),
2122 (541),
2123 (542),
2124 (543),
2125 (544),
2126 (545),
2127 (546),
2128 (547),
2129 (548),
2130 (549),
2131 (550),
2132 (551),
2133 (552),
2134 (553),
2135 (554),
2136 (555),
2137 (556),
2138 (557),
2139 (558),
2140 (559),
2141 (560),
2142 (561),
2143 (562),
2144 (563),
2145 (564),
2146 (565),
2147 (566),
2148 (567),
2149 (568),
2150 (569),
2151 (570),
2152 (571),
2153 (572),
2154 (573),
2155 (574),
2156 (575),
2157 (576),
2158 (577),
2159 (578),
2160 (579),
2161 (580),
2162 (581),
2163 (582),
2164 (583),
2165 (584),
2166 (585),
2167 (586),
2168 (587),
2169 (588),
2170 (589),
2171 (590),
2172 (591),
2173 (592),
2174 (593),
2175 (594),
2176 (595),
2177 (596),
2178 (597),
2179 (598),
2180 (599),
2181 (600),
2182 (601),
2183 (602),
2184 (603),
2185 (604),
2186 (605),
2187 (606),
2188 (607),
2189 (608),
2190 (609),
2191 (610),
2192 (611),
2193 (612),
2194 (613),
2195 (614),
2196 (615),
2197 (616),
2198 (617),
2199 (618),
2200 (619),
2201 (620),
2202 (621),
2203 (622),
2204 (623),
2205 (624),
2206 (625),
2207 (626),
2208 (627),
2209 (628),
2210 (629),
2211 (630),
2212 (631),
2213 (632),
2214 (633),
2215 (634),
2216 (635),
2217 (636),
2218 (637),
2219 (638),
2220 (639),
2221 (640),
2222 (641),
2223 (642),
2224 (643),
2225 (644),
2226 (645),
2227 (646),
2228 (647),
2229 (648),
2230 (649),
2231 (650),
2232 (651),
2233 (652),
2234 (653),
2235 (654),
2236 (655),
2237 (656),
2238 (657),
2239 (658),
2240 (659),
2241 (660),
2242 (661),
2243 (662),
2244 (663),
2245 (664),
2246 (665),
2247 (666),
2248 (667),
2249 (668),
2250 (669),
2251 (670),
2252 (671),
2253 (672),
2254 (673),
2255 (674),
2256 (675),
2257 (676),
2258 (677),
2259 (678),
2260 (679),
2261 (680),
2262 (681),
2263 (682),
2264 (683),
2265 (684),
2266 (685),
2267 (686),
2268 (687),
2269 (688),
2270 (689),
2271 (690),
2272 (691),
2273 (692),
2274 (693),
2275 (694),
2276 (695),
2277 (696),
2278 (697),
2279 (698),
2280 (699),
2281 (700),
2282 (701),
2283 (702),
2284 (703),
2285 (704),
2286 (705),
2287 (706),
2288 (707),
2289 (708),
2290 (709),
2291 (710),
2292 (711),
2293 (712),
2294 (713),
2295 (714),
2296 (715),
2297 (716),
2298 (717),
2299 (718),
2300 (719),
2301 (720),
2302 (721),
2303 (722),
2304 (723),
2305 (724),
2306 (725),
2307 (726),
2308 (727),
2309 (728),
2310 (729),
2311 (730),
2312 (731),
2313 (732),
2314 (733),
2315 (734),
2316 (735),
2317 (736),
2318 (737),
2319 (738),
2320 (739),
2321 (740),
2322 (741),
2323 (742),
2324 (743),
2325 (744),
2326 (745),
2327 (746),
2328 (747),
2329 (748),
2330 (749),
2331 (750),
2332 (751),
2333 (752),
2334 (753),
2335 (754),
2336 (755),
2337 (756),
2338 (757),
2339 (758),
2340 (759),
2341 (760),
2342 (761),
2343 (762),
2344 (763),
2345 (764),
2346 (765),
2347 (766),
2348 (767),
2349 (768),
2350 (769),
2351 (770),
2352 (771),
2353 (772),
2354 (773),
2355 (774),
2356 (775),
2357 (776),
2358 (777),
2359 (778),
2360 (779),
2361 (780),
2362 (781),
2363 (782),
2364 (783),
2365 (784),
2366 (785),
2367 (786),
2368 (787),
2369 (788),
2370 (789),
2371 (790),
2372 (791),
2373 (792),
2374 (793),
2375 (794),
2376 (795),
2377 (796),
2378 (797),
2379 (798),
2380 (799),
2381 (800),
2382 (801),
2383 (802),
2384 (803),
2385 (804),
2386 (805),
2387 (806),
2388 (807),
2389 (808),
2390 (809),
2391 (810),
2392 (811),
2393 (812),
2394 (813),
2395 (814),
2396 (815),
2397 (816),
2398 (817),
2399 (818),
2400 (819),
2401 (820),
2402 (821),
2403 (822),
2404 (823),
2405 (824),
2406 (825),
2407 (826),
2408 (827),
2409 (828),
2410 (829),
2411 (830),
2412 (831),
2413 (832),
2414 (833),
2415 (834),
2416 (835),
2417 (836),
2418 (837),
2419 (838),
2420 (839),
2421 (840),
2422 (841),
2423 (842),
2424 (843),
2425 (844),
2426 (845),
2427 (846),
2428 (847),
2429 (848),
2430 (849),
2431 (850),
2432 (851),
2433 (852),
2434 (853),
2435 (854),
2436 (855),
2437 (856),
2438 (857),
2439 (858),
2440 (859),
2441 (860),
2442 (861),
2443 (862),
2444 (863),
2445 (864),
2446 (865),
2447 (866),
2448 (867),
2449 (868),
2450 (869),
2451 (870),
2452 (871),
2453 (872),
2454 (873),
2455 (874),
2456 (875),
2457 (876),
2458 (877),
2459 (878),
2460 (879),
2461 (880),
2462 (881),
2463 (882),
2464 (883),
2465 (884),
2466 (885),
2467 (886),
2468 (887),
2469 (888),
2470 (889),
2471 (890),
2472 (891),
2473 (892),
2474 (893),
2475 (894),
2476 (895),
2477 (896),
2478 (897),
2479 (898),
2480 (899),
2481 (900),
2482 (901),
2483 (902),
2484 (903),
2485 (904),
2486 (905),
2487 (906),
2488 (907),
2489 (908),
2490 (909),
2491 (910),
2492 (911),
2493 (912),
2494 (913),
2495 (914),
2496 (915),
2497 (916),
2498 (917),
2499 (918),
2500 (919),
2501 (920),
2502 (921),
2503 (922),
2504 (923),
2505 (924),
2506 (925),
2507 (926),
2508 (927),
2509 (928),
2510 (929),
2511 (930),
2512 (931),
2513 (932),
2514 (933),
2515 (934),
2516 (935),
2517 (936),
2518 (937),
2519 (938),
2520 (939),
2521 (940),
2522 (941),
2523 (942),
2524 (943),
2525 (944),
2526 (945),
2527 (946),
2528 (947),
2529 (948),
2530 (949),
2531 (950),
2532 (951),
2533 (952),
2534 (953),
2535 (954),
2536 (955),
2537 (956),
2538 (957),
2539 (958),
2540 (959),
2541 (960),
2542 (961),
2543 (962),
2544 (963),
2545 (964),
2546 (965),
2547 (966),
2548 (967),
2549 (968),
2550 (969),
2551 (970),
2552 (971),
2553 (972),
2554 (973),
2555 (974),
2556 (975),
2557 (976),
2558 (977),
2559 (978),
2560 (979),
2561 (980),
2562 (981),
2563 (982),
2564 (983),
2565 (984),
2566 (985),
2567 (986),
2568 (987),
2569 (988),
2570 (989),
2571 (990),
2572 (991),
2573 (992),
2574 (993),
2575 (994),
2576 (995),
2577 (996),
2578 (997),
2579 (998),
2580 (999),
2581 (1000),
2582 (1001),
2583 (1002),
2584 (1003),
2585 (1004),
2586 (1005),
2587 (1006),
2588 (1007),
2589 (1008),
2590 (1009),
2591 (1010),
2592 (1011),
2593 (1012),
2594 (1013),
2595 (1014),
2596 (1015),
2597 (1016),
2598 (1017),
2599 (1018),
2600 (1019),
2601 (1020),
2602 (1021),
2603 (1022),
2604 (1023),
2605 (1024),
2606 (1025),
2607 (1026),
2608 (1027),
2609 (1028),
2610 (1029),
2611 (1030),
2612 (1031),
2613 (1032),
2614 (1033),
2615 (1034),
2616 (1035),
2617 (1036),
2618 (1037),
2619 (1038),
2620 (1039),
2621 (1040),
2622 (1041),
2623 (1042),
2624 (1043),
2625 (1044),
2626 (1045),
2627 (1046),
2628 (1047),
2629 (1048),
2630 (1049),
2631 (1050),
2632 (1051),
2633 (1052),
2634 (1053),
2635 (1054),
2636 (1055),
2637 (1056),
2638 (1057),
2639 (1058),
2640 (1059),
2641 (1060),
2642 (1061),
2643 (1062),
2644 (1063),
2645 (1064),
2646 (1065),
2647 (1066),
2648 (1067),
2649 (1068),
2650 (1069),
2651 (1070),
2652 (1071),
2653 (1072),
2654 (1073),
2655 (1074),
2656 (1075),
2657 (1076),
2658 (1077),
2659 (1078),
2660 (1079),
2661 (1080),
2662 (1081),
2663 (1082),
2664 (1083),
2665 (1084),
2666 (1085),
2667 (1086),
2668 (1087),
2669 (1088),
2670 (1089),
2671 (1090),
2672 (1091),
2673 (1092),
2674 (1093),
2675 (1094),
2676 (1095),
2677 (1096),
2678 (1097),
2679 (1098),
2680 (1099),
2681 (1100),
2682 (1101),
2683 (1102),
2684 (1103),
2685 (1104),
2686 (1105),
2687 (1106),
2688 (1107),
2689 (1108),
2690 (1109),
2691 (1110),
2692 (1111),
2693 (1112),
2694 (1113),
2695 (1114),
2696 (1115),
2697 (1116),
2698 (1117),
2699 (1118),
2700 (1119),
2701 (1120),
2702 (1121),
2703 (1122),
2704 (1123),
2705 (1124),
2706 (1125),
2707 (1126),
2708 (1127),
2709 (1128),
2710 (1129),
2711 (1130),
2712 (1131),
2713 (1132),
2714 (1133),
2715 (1134),
2716 (1135),
2717 (1136),
2718 (1137),
2719 (1138),
2720 (1139),
2721 (1140),
2722 (1141),
2723 (1142),
2724 (1143),
2725 (1144),
2726 (1145),
2727 (1146),
2728 (1147),
2729 (1148),
2730 (1149),
2731 (1150),
2732 (1151),
2733 (1152),
2734 (1153),
2735 (1154),
2736 (1155),
2737 (1156),
2738 (1157),
2739 (1158),
2740 (1159),
2741 (1160),
2742 (1161),
2743 (1162),
2744 (1163),
2745 (1164),
2746 (1165),
2747 (1166),
2748 (1167),
2749 (1168),
2750 (1169),
2751 (1170),
2752 (1171),
2753 (1172),
2754 (1173),
2755 (1174),
2756 (1175),
2757 (1176),
2758 (1177),
2759 (1178),
2760 (1179),
2761 (1180),
2762 (1181),
2763 (1182),
2764 (1183),
2765 (1184),
2766 (1185),
2767 (1186),
2768 (1187),
2769 (1188),
2770 (1189),
2771 (1190),
2772 (1191),
2773 (1192),
2774 (1193),
2775 (1194),
2776 (1195),
2777 (1196),
2778 (1197),
2779 (1198),
2780 (1199),
2781 (1200),
2782 (1201),
2783 (1202),
2784 (1203),
2785 (1204),
2786 (1205),
2787 (1206),
2788 (1207),
2789 (1208),
2790 (1209),
2791 (1210),
2792 (1211),
2793 (1212),
2794 (1213),
2795 (1214),
2796 (1215),
2797 (1216),
2798 (1217),
2799 (1218),
2800 (1219),
2801 (1220),
2802 (1221),
2803 (1222),
2804 (1223),
2805 (1224),
2806 (1225),
2807 (1226),
2808 (1227),
2809 (1228),
2810 (1229),
2811 (1230),
2812 (1231),
2813 (1232),
2814 (1233),
2815 (1234),
2816 (1235),
2817 (1236),
2818 (1237),
2819 (1238),
2820 (1239),
2821 (1240),
2822 (1241),
2823 (1242),
2824 (1243),
2825 (1244),
2826 (1245),
2827 (1246),
2828 (1247),
2829 (1248),
2830 (1249),
2831 (1250),
2832 (1251),
2833 (1252),
2834 (1253),
2835 (1254),
2836 (1255),
2837 (1256),
2838 (1257),
2839 (1258),
2840 (1259),
2841 (1260),
2842 (1261),
2843 (1262),
2844 (1263),
2845 (1264),
2846 (1265),
2847 (1266),
2848 (1267),
2849 (1268),
2850 (1269),
2851 (1270),
2852 (1271),
2853 (1272),
2854 (1273),
2855 (1274),
2856 (1275),
2857 (1276),
2858 (1277),
2859 (1278),
2860 (1279),
2861 (1280),
2862 (1281),
2863 (1282),
2864 (1283),
2865 (1284),
2866 (1285),
2867 (1286),
2868 (1287),
2869 (1288),
2870 (1289),
2871 (1290),
2872 (1291),
2873 (1292),
2874 (1293),
2875 (1294),
2876 (1295),
2877 (1296),
2878 (1297),
2879 (1298),
2880 (1299),
2881 (1300),
2882 (1301),
2883 (1302),
2884 (1303),
2885 (1304),
2886 (1305),
2887 (1306),
2888 (1307),
2889 (1308),
2890 (1309),
2891 (1310),
2892 (1311),
2893 (1312),
2894 (1313),
2895 (1314),
2896 (1315),
2897 (1316),
2898 (1317),
2899 (1318),
2900 (1319),
2901 (1320),
2902 (1321),
2903 (1322),
2904 (1323),
2905 (1324),
2906 (1325),
2907 (1326),
2908 (1327),
2909 (1328),
2910 (1329),
2911 (1330),
2912 (1331),
2913 (1332),
2914 (1333),
2915 (1334),
2916 (1335),
2917 (1336),
2918 (1337),
2919 (1338),
2920 (1339),
2921 (1340),
2922 (1341),
2923 (1342),
2924 (1343),
2925 (1344),
2926 (1345),
2927 (1346),
2928 (1347),
2929 (1348),
2930 (1349),
2931 (1350),
2932 (1351),
2933 (1352),
2934 (1353),
2935 (1354),
2936 (1355),
2937 (1356),
2938 (1357),
2939 (1358),
2940 (1359),
2941 (1360),
2942 (1361),
2943 (1362),
2944 (1363),
2945 (1364),
2946 (1365),
2947 (1366),
2948 (1367),
2949 (1368),
2950 (1369),
2951 (1370),
2952 (1371),
2953 (1372),
2954 (1373),
2955 (1374),
2956 (1375),
2957 (1376),
2958 (1377),
2959 (1378),
2960 (1379),
2961 (1380),
2962 (1381),
2963 (1382),
2964 (1383),
2965 (1384),
2966 (1385),
2967 (1386),
2968 (1387),
2969 (1388),
2970 (1389),
2971 (1390),
2972 (1391),
2973 (1392),
2974 (1393),
2975 (1394),
2976 (1395),
2977 (1396),
2978 (1397),
2979 (1398),
2980 (1399),
2981 (1400),
2982 (1401),
2983 (1402),
2984 (1403),
2985 (1404),
2986 (1405),
2987 (1406),
2988 (1407),
2989 (1408),
2990 (1409),
2991 (1410),
2992 (1411),
2993 (1412),
2994 (1413),
2995 (1414),
2996 (1415),
2997 (1416),
2998 (1417),
2999 (1418),
3000 (1419),
3001 (1420),
3002 (1421),
3003 (1422),
3004 (1423),
3005 (1424),
3006 (1425),
3007 (1426),
3008 (1427),
3009 (1428),
3010 (1429),
3011 (1430),
3012 (1431),
3013 (1432),
3014 (1433),
3015 (1434),
3016 (1435),
3017 (1436),
3018 (1437),
3019 (1438),
3020 (1439),
3021 (1440),
3022 (1441),
3023 (1442),
3024 (1443),
3025 (1444),
3026 (1445),
3027 (1446),
3028 (1447),
3029 (1448),
3030 (1449),
3031 (1450),
3032 (1451),
3033 (1452),
3034 (1453),
3035 (1454),
3036 (1455),
3037 (1456),
3038 (1457),
3039 (1458),
3040 (1459),
3041 (1460),
3042 (1461),
3043 (1462),
3044 (1463),
3045 (1464),
3046 (1465),
3047 (1466),
3048 (1467),
3049 (1468),
3050 (1469),
3051 (1470),
3052 (1471),
3053 (1472),
3054 (1473),
3055 (1474),
3056 (1475),
3057 (1476),
3058 (1477),
3059 (1478),
3060 (1479),
3061 (1480),
3062 (1481),
3063 (1482),
3064 (1483),
3065 (1484),
3066 (1485),
3067 (1486),
3068 (1487),
3069 (1488),
3070 (1489),
3071 (1490),
3072 (1491),
3073 (1492),
3074 (1493),
3075 (1494),
3076 (1495),
3077 (1496),
3078 (1497),
3079 (1498),
3080 (1499),
3081 (1500),
3082 (1501),
3083 (1502),
3084 (1503),
3085 (1504),
3086 (1505),
3087 (1506),
3088 (1507),
3089 (1508),
3090 (1509),
3091 (1510),
3092 (1511),
3093 (1512),
3094 (1513),
3095 (1514),
3096 (1515),
3097 (1516),
3098 (1517),
3099 (1518),
3100 (1519),
3101 (1520),
3102 (1521),
3103 (1522),
3104 (1523),
3105 (1524),
3106 (1525),
3107 (1526),
3108 (1527),
3109 (1528),
3110 (1529),
3111 (1530),
3112 (1531),
3113 (1532),
3114 (1533),
3115 (1534),
3116 (1535),
3117 (1536),
3118 (1537),
3119 (1538),
3120 (1539),
3121 (1540),
3122 (1541),
3123 (1542),
3124 (1543),
3125 (1544),
3126 (1545),
3127 (1546),
3128 (1547),
3129 (1548),
3130 (1549),
3131 (1550),
3132 (1551),
3133 (1552),
3134 (1553),
3135 (1554),
3136 (1555),
3137 (1556),
3138 (1557),
3139 (1558),
3140 (1559),
3141 (1560),
3142 (1561),
3143 (1562),
3144 (1563),
3145 (1564),
3146 (1565),
3147 (1566),
3148 (1567),
3149 (1568),
3150 (1569),
3151 (1570),
3152 (1571),
3153 (1572),
3154 (1573),
3155 (1574),
3156 (1575),
3157 (1576),
3158 (1577),
3159 (1578),
3160 (1579),
3161 (1580),
3162 (1581),
3163 (1582),
3164 (1583),
3165 (1584),
3166 (1585),
3167 (1586),
3168 (1587),
3169 (1588),
3170 (1589),
3171 (1590),
3172 (1591),
3173 (1592),
3174 (1593),
3175 (1594),
3176 (1595),
3177 (1596),
3178 (1597),
3179 (1598),
3180 (1599),
3181 (1600),
3182 (1601),
3183 (1602),
3184 (1603),
3185 (1604),
3186 (1605),
3187 (1606),
3188 (1607),
3189 (1608),
3190 (1609),
3191 (1610),
3192 (1611),
3193 (1612),
3194 (1613),
3195 (1614),
3196 (1615),
3197 (1616),
3198 (1617),
3199 (1618),
3200 (1619),
3201 (1620),
3202 (1621),
3203 (1622),
3204 (1623),
3205 (1624),
3206 (1625),
3207 (1626),
3208 (1627),
3209 (1628),
3210 (1629),
3211 (1630),
3212 (1631),
3213 (1632),
3214 (1633),
3215 (1634),
3216 (1635),
3217 (1636),
3218 (1637),
3219 (1638),
3220 (1639),
3221 (1640),
3222 (1641),
3223 (1642),
3224 (1643),
3225 (1644),
3226 (1645),
3227 (1646),
3228 (1647),
3229 (1648),
3230 (1649),
3231 (1650),
3232 (1651),
3233 (1652),
3234 (1653),
3235 (1654),
3236 (1655),
3237 (1656),
3238 (1657),
3239 (1658),
3240 (1659),
3241 (1660),
3242 (1661),
3243 (1662),
3244 (1663),
3245 (1664),
3246 (1665),
3247 (1666),
3248 (1667),
3249 (1668),
3250 (1669),
3251 (1670),
3252 (1671),
3253 (1672),
3254 (1673),
3255 (1674),
3256 (1675),
3257 (1676),
3258 (1677),
3259 (1678),
3260 (1679),
3261 (1680),
3262 (1681),
3263 (1682),
3264 (1683),
3265 (1684),
3266 (1685),
3267 (1686),
3268 (1687),
3269 (1688),
3270 (1689),
3271 (1690),
3272 (1691),
3273 (1692),
3274 (1693),
3275 (1694),
3276 (1695),
3277 (1696),
3278 (1697),
3279 (1698),
3280 (1699),
3281 (1700),
3282 (1701),
3283 (1702),
3284 (1703),
3285 (1704),
3286 (1705),
3287 (1706),
3288 (1707),
3289 (1708),
3290 (1709),
3291 (1710),
3292 (1711),
3293 (1712),
3294 (1713),
3295 (1714),
3296 (1715),
3297 (1716),
3298 (1717),
3299 (1718),
3300 (1719),
3301 (1720),
3302 (1721),
3303 (1722),
3304 (1723),
3305 (1724),
3306 (1725),
3307 (1726),
3308 (1727),
3309 (1728),
3310 (1729),
3311 (1730),
3312 (1731),
3313 (1732),
3314 (1733),
3315 (1734),
3316 (1735),
3317 (1736),
3318 (1737),
3319 (1738),
3320 (1739),
3321 (1740),
3322 (1741),
3323 (1742),
3324 (1743),
3325 (1744),
3326 (1745),
3327 (1746),
3328 (1747),
3329 (1748),
3330 (1749),
3331 (1750),
3332 (1751),
3333 (1752),
3334 (1753),
3335 (1754),
3336 (1755),
3337 (1756),
3338 (1757),
3339 (1758),
3340 (1759),
3341 (1760),
3342 (1761),
3343 (1762),
3344 (1763),
3345 (1764),
3346 (1765),
3347 (1766),
3348 (1767),
3349 (1768),
3350 (1769),
3351 (1770),
3352 (1771),
3353 (1772),
3354 (1773),
3355 (1774),
3356 (1775),
3357 (1776),
3358 (1777),
3359 (1778),
3360 (1779),
3361 (1780),
3362 (1781),
3363 (1782),
3364 (1783),
3365 (1784),
3366 (1785),
3367 (1786),
3368 (1787),
3369 (1788),
3370 (1789),
3371 (1790),
3372 (1791),
3373 (1792),
3374 (1793),
3375 (1794),
3376 (1795),
3377 (1796),
3378 (1797),
3379 (1798),
3380 (1799),
3381 (1800),
3382 (1801),
3383 (1802),
3384 (1803),
3385 (1804),
3386 (1805),
3387 (1806),
3388 (1807),
3389 (1808),
3390 (1809),
3391 (1810),
3392 (1811),
3393 (1812),
3394 (1813),
3395 (1814),
3396 (1815),
3397 (1816),
3398 (1817),
3399 (1818),
3400 (1819),
3401 (1820),
3402 (1821),
3403 (1822),
3404 (1823),
3405 (1824),
3406 (1825),
3407 (1826),
3408 (1827),
3409 (1828),
3410 (1829),
3411 (1830),
3412 (1831),
3413 (1832),
3414 (1833),
3415 (1834),
3416 (1835),
3417 (1836),
3418 (1837),
3419 (1838),
3420 (1839),
3421 (1840),
3422 (1841),
3423 (1842),
3424 (1843),
3425 (1844),
3426 (1845),
3427 (1846),
3428 (1847),
3429 (1848),
3430 (1849),
3431 (1850),
3432 (1851),
3433 (1852),
3434 (1853),
3435 (1854),
3436 (1855),
3437 (1856),
3438 (1857),
3439 (1858),
3440 (1859),
3441 (1860),
3442 (1861),
3443 (1862),
3444 (1863),
3445 (1864),
3446 (1865),
3447 (1866),
3448 (1867),
3449 (1868),
3450 (1869),
3451 (1870),
3452 (1871),
3453 (1872),
3454 (1873),
3455 (1874),
3456 (1875),
3457 (1876),
3458 (1877),
3459 (1878),
3460 (1879),
3461 (1880),
3462 (1881),
3463 (1882),
3464 (1883),
3465 (1884),
3466 (1885),
3467 (1886),
3468 (1887),
3469 (1888),
3470 (1889),
3471 (1890),
3472 (1891),
3473 (1892),
3474 (1893),
3475 (1894),
3476 (1895),
3477 (1896),
3478 (1897),
3479 (1898),
3480 (1899),
3481 (1900),
3482 (1901),
3483 (1902),
3484 (1903),
3485 (1904),
3486 (1905),
3487 (1906),
3488 (1907),
3489 (1908),
3490 (1909),
3491 (1910),
3492 (1911),
3493 (1912),
3494 (1913),
3495 (1914),
3496 (1915),
3497 (1916),
3498 (1917),
3499 (1918),
3500 (1919),
3501 (1920),
3502 (1921),
3503 (1922),
3504 (1923),
3505 (1924),
3506 (1925),
3507 (1926),
3508 (1927),
3509 (1928),
3510 (1929),
3511 (1930),
3512 (1931),
3513 (1932),
3514 (1933),
3515 (1934),
3516 (1935),
3517 (1936),
3518 (1937),
3519 (1938),
3520 (1939),
3521 (1940),
3522 (1941),
3523 (1942),
3524 (1943),
3525 (1944),
3526 (1945),
3527 (1946),
3528 (1947),
3529 (1948),
3530 (1949),
3531 (1950),
3532 (1951),
3533 (1952),
3534 (1953),
3535 (1954),
3536 (1955),
3537 (1956),
3538 (1957),
3539 (1958),
3540 (1959),
3541 (1960),
3542 (1961),
3543 (1962),
3544 (1963),
3545 (1964),
3546 (1965),
3547 (1966),
3548 (1967),
3549 (1968),
3550 (1969),
3551 (1970),
3552 (1971),
3553 (1972),
3554 (1973),
3555 (1974),
3556 (1975),
3557 (1976),
3558 (1977),
3559 (1978),
3560 (1979),
3561 (1980),
3562 (1981),
3563 (1982),
3564 (1983),
3565 (1984),
3566 (1985),
3567 (1986),
3568 (1987),
3569 (1988),
3570 (1989),
3571 (1990),
3572 (1991),
3573 (1992),
3574 (1993),
3575 (1994),
3576 (1995),
3577 (1996),
3578 (1997),
3579 (1998),
3580 (1999),
3581 (2000),
3582 (2001),
3583 (2002),
3584 (2003),
3585 (2004),
3586 (2005),
3587 (2006),
3588 (2007),
3589 (2008),
3590 (2009),
3591 (2010),
3592 (2011),
3593 (2012),
3594 (2013),
3595 (2014),
3596 (2015),
3597 (2016),
3598 (2017),
3599 (2018),
3600 (2019),
3601 (2020),
3602 (2021),
3603 (2022),
3604 (2023),
3605 (2024),
3606 (2025),
3607 (2026),
3608 (2027),
3609 (2028),
3610 (2029),
3611 (2030),
3612 (2031),
3613 (2032),
3614 (2033),
3615 (2034),
3616 (2035),
3617 (2036),
3618 (2037),
3619 (2038),
3620 (2039),
3621 (2040),
3622 (2041),
3623 (2042),
3624 (2043),
3625 (2044),
3626 (2045),
3627 (2046),
3628 (2047),
3629 (2048),
3630 (2049),
3631 (2050),
3632 (2051),
3633 (2052),
3634 (2053),
3635 (2054),
3636 (2055),
3637 (2056),
3638 (2057),
3639 (2058),
3640 (2059),
3641 (2060),
3642 (2061),
3643 (2062),
3644 (2063),
3645 (2064),
3646 (2065),
3647 (2066),
3648 (2067),
3649 (2068),
3650 (2069),
3651 (2070),
3652 (2071),
3653 (2072),
3654 (2073),
3655 (2074),
3656 (2075),
3657 (2076),
3658 (2077),
3659 (2078),
3660 (2079),
3661 (2080),
3662 (2081),
3663 (2082),
3664 (2083),
3665 (2084),
3666 (2085),
3667 (2086),
3668 (2087),
3669 (2088),
3670 (2089),
3671 (2090),
3672 (2091),
3673 (2092),
3674 (2093),
3675 (2094),
3676 (2095),
3677 (2096),
3678 (2097),
3679 (2098),
3680 (2099),
3681 (2100),
3682 (2101),
3683 (2102),
3684 (2103),
3685 (2104),
3686 (2105),
3687 (2106),
3688 (2107),
3689 (2108),
3690 (2109),
3691 (2110),
3692 (2111),
3693 (2112),
3694 (2113),
3695 (2114),
3696 (2115),
3697 (2116),
3698 (2117),
3699 (2118),
3700 (2119),
3701 (2120),
3702 (2121),
3703 (2122),
3704 (2123),
3705 (2124),
3706 (2125),
3707 (2126),
3708 (2127),
3709 (2128),
3710 (2129),
3711 (2130),
3712 (2131),
3713 (2132),
3714 (2133),
3715 (2134),
3716 (2135),
3717 (2136),
3718 (2137),
3719 (2138),
3720 (2139),
3721 (2140),
3722 (2141),
3723 (2142),
3724 (2143),
3725 (2144),
3726 (2145),
3727 (2146),
3728 (2147),
3729 (2148),
3730 (2149),
3731 (2150),
3732 (2151),
3733 (2152),
3734 (2153),
3735 (2154),
3736 (2155),
3737 (2156),
3738 (2157),
3739 (2158),
3740 (2159),
3741 (2160),
3742 (2161),
3743 (2162),
3744 (2163),
3745 (2164),
3746 (2165),
3747 (2166),
3748 (2167),
3749 (2168),
3750 (2169),
3751 (2170),
3752 (2171),
3753 (2172),
3754 (2173),
3755 (2174),
3756 (2175),
3757 (2176),
3758 (2177),
3759 (2178),
3760 (2179),
3761 (2180),
3762 (2181),
3763 (2182),
3764 (2183),
3765 (2184),
3766 (2185),
3767 (2186),
3768 (2187),
3769 (2188),
3770 (2189),
3771 (2190),
3772 (2191),
3773 (2192),
3774 (2193),
3775 (2194),
3776 (2195),
3777 (2196),
3778 (2197),
3779 (2198),
3780 (2199),
3781 (2200),
3782 (2201),
3783 (2202),
3784 (2203),
3785 (2204),
3786 (2205),
3787 (2206),
3788 (2207),
3789 (2208),
3790 (2209),
3791 (2210),
3792 (2211),
3793 (2212),
3794 (2213),
3795 (2214),
3796 (2215),
3797 (2216),
3798 (2217),
3799 (2218),
3800 (2219),
3801 (2220),
3802 (2221),
3803 (2222),
3804 (2223),
3805 (2224),
3806 (2225),
3807 (2226),
3808 (2227),
3809 (2228),
3810 (2229),
3811 (2230),
3812 (2231),
3813 (2232),
3814 (2233),
3815 (2234),
3816 (2235),
3817 (2236),
3818 (2237),
3819 (2238),
3820 (2239),
3821 (2240),
3822 (2241),
3823 (2242),
3824 (2243),
3825 (2244),
3826 (2245),
3827 (2246),
3828 (2247),
3829 (2248),
3830 (2249),
3831 (2250),
3832 (2251),
3833 (2252),
3834 (2253),
3835 (2254),
3836 (2255),
3837 (2256),
3838 (2257),
3839 (2258),
3840 (2259),
3841 (2260),
3842 (2261),
3843 (2262),
3844 (2263),
3845 (2264),
3846 (2265),
3847 (2266),
3848 (2267),
3849 (2268),
3850 (2269),
3851 (2270),
3852 (2271),
3853 (2272),
3854 (2273),
3855 (2274),
3856 (2275),
3857 (2276),
3858 (2277),
3859 (2278),
3860 (2279),
3861 (2280),
3862 (2281),
3863 (2282),
3864 (2283),
3865 (2284),
3866 (2285),
3867 (2286),
3868 (2287),
3869 (2288),
3870 (2289),
3871 (2290),
3872 (2291),
3873 (2292),
3874 (2293),
3875 (2294),
3876 (2295),
3877 (2296),
3878 (2297),
3879 (2298),
3880 (2299),
3881 (2300),
3882 (2301),
3883 (2302),
3884 (2303),
3885 (2304),
3886 (2305),
3887 (2306),
3888 (2307),
3889 (2308),
3890 (2309),
3891 (2310),
3892 (2311),
3893 (2312),
3894 (2313),
3895 (2314),
3896 (2315),
3897 (2316),
3898 (2317),
3899 (2318),
3900 (2319),
3901 (2320),
3902 (2321),
3903 (2322),
3904 (2323),
3905 (2324),
3906 (2325),
3907 (2326),
3908 (2327),
3909 (2328),
3910 (2329),
3911 (2330),
3912 (2331),
3913 (2332),
3914 (2333),
3915 (2334),
3916 (2335),
3917 (2336),
3918 (2337),
3919 (2338),
3920 (2339),
3921 (2340),
3922 (2341),
3923 (2342),
3924 (2343),
3925 (2344),
3926 (2345),
3927 (2346),
3928 (2347),
3929 (2348),
3930 (2349),
3931 (2350),
3932 (2351),
3933 (2352),
3934 (2353),
3935 (2354),
3936 (2355),
3937 (2356),
3938 (2357),
3939 (2358),
3940 (2359),
3941 (2360),
3942 (2361),
3943 (2362),
3944 (2363),
3945 (2364),
3946 (2365),
3947 (2366),
3948 (2367),
3949 (2368),
3950 (2369),
3951 (2370),
3952 (2371),
3953 (2372),
3954 (2373),
3955 (2374),
3956 (2375),
3957 (2376),
3958 (2377),
3959 (2378),
3960 (2379),
3961 (2380),
3962 (2381),
3963 (2382),
3964 (2383),
3965 (2384),
3966 (2385),
3967 (2386),
3968 (2387),
3969 (2388),
3970 (2389),
3971 (2390),
3972 (2391),
3973 (2392),
3974 (2393),
3975 (2394),
3976 (2395),
3977 (2396),
3978 (2397),
3979 (2398),
3980 (2399),
3981 (2400),
3982 (2401),
3983 (2402),
3984 (2403),
3985 (2404),
3986 (2405),
3987 (2406),
3988 (2407),
3989 (2408),
3990 (2409),
3991 (2410),
3992 (2411),
3993 (2412),
3994 (2413),
3995 (2414),
3996 (2415),
3997 (2416),
3998 (2417),
3999 (2418),
4000 (2419),
4001 (2420),
4002 (2421),
4003 (2422),
4004 (2423),
4005 (2424),
4006 (2425),
4007 (2426),
4008 (2427),
4009 (2428),
4010 (2429),
4011 (2430),
4012 (2431),
4013 (2432),
4014 (2433),
4015 (2434),
4016 (2435),
4017 (2436),
4018 (2437),
4019 (2438),
4020 (2439),
4021 (2440),
4022 (2441),
4023 (2442),
4024 (2443),
4025 (2444),
4026 (2445),
4027 (2446),
4028 (2447),
4029 (2448),
4030 (2449),
4031 (2450),
4032 (2451),
4033 (2452),
4034 (2453),
4035 (2454),
4036 (2455),
4037 (2456),
4038 (2457),
4039 (2458),
4040 (2459),
4041 (2460),
4042 (2461),
4043 (2462),
4044 (2463),
4045 (2464),
4046 (2465),
4047 (2466),
4048 (2467),
4049 (2468),
4050 (2469),
4051 (2470),
4052 (2471),
4053 (2472),
4054 (2473),
4055 (2474),
4056 (2475),
4057 (2476),
4058 (2477),
4059 (2478),
4060 (2479),
4061 (2480),
4062 (2481),
4063 (2482),
4064 (2483),
4065 (2484),
4066 (2485),
4067 (2486),
4068 (2487),
4069 (2488),
4070 (2489),
4071 (2490),
4072 (2491),
4073 (2492),
4074 (2493),
4075 (2494),
4076 (2495),
4077 (2496),
4078 (2497),
4079 (2498),
4080 (2499),
4081 (2500),
4082 (2501),
4083 (2502),
4084 (2503),
4085 (2504),
4086 (2505),
4087 (2506),
4088 (2507),
4089 (2508),
4090 (2509),
4091 (2510),
4092 (2511),
4093 (2512),
4094 (2513),
4095 (2514),
4096 (2515),
4097 (2516),
4098 (2517),
4099 (2518),
4100 (2519),
4101 (2520),
4102 (2521),
4103 (2522),
4104 (2523),
4105 (2524),
4106 (2525),
4107 (2526),
4108 (2527),
4109 (2528),
4110 (2529),
4111 (2530),
4112 (2531),
4113 (2532),
4114 (2533),
4115 (2534),
4116 (2535),
4117 (2536),
4118 (2537),
4119 (2538),
4120 (2539),
4121 (2540),
4122 (2541),
4123 (2542),
4124 (2543),
4125 (2544),
4126 (2545),
4127 (2546),
4128 (2547),
4129 (2548),
4130 (2549),
4131 (2550),
4132 (2551),
4133 (2552),
4134 (2553),
4135 (2554),
4136 (2555),
4137 (2556),
4138 (2557),
4139 (2558),
4140 (2559),
4141 (2560),
4142 (2561),
4143 (2562),
4144 (2563),
4145 (2564),
4146 (2565),
4147 (2566),
4148 (2567),
4149 (2568),
4150 (2569),
4151 (2570),
4152 (2571),
4153 (2572),
4154 (2573),
4155 (2574),
4156 (2575),
4157 (2576),
4158 (2577),
4159 (2578),
4160 (2579),
4161 (2580),
4162 (2581),
4163 (2582),
4164 (2583),
4165 (2584),
4166 (2585),
4167 (2586),
4168 (2587),
4169 (2588),
4170 (2589),
4171 (2590),
4172 (2591),
4173 (2592),
4174 (2593),
4175 (2594),
4176 (2595),
4177 (2596),
4178 (2597),
4179 (2598),
4180 (2599),
4181 (2600),
4182 (2601),
4183 (2602),
4184 (2603),
4185 (2604),
4186 (2605),
4187 (2606),
4188 (2607),
4189 (2608),
4190 (2609),
4191 (2610),
4192 (2611),
4193 (2612),
4194 (2613),
4195 (2614),
4196 (2615),
4197 (2616),
4198 (2617),
4199 (2618),
4200 (2619),
4201 (2620),
4202 (2621),
4203 (2622),
4204 (2623),
4205 (2624),
4206 (2625),
4207 (2626),
4208 (2627),
4209 (2628),
4210 (2629),
4211 (2630),
4212 (2631),
4213 (2632),
4214 (2633),
4215 (2634),
4216 (2635),
4217 (2636),
4218 (2637),
4219 (2638),
4220 (2639),
4221 (2640),
4222 (2641),
4223 (2642),
4224 (2643),
4225 (2644),
4226 (2645),
4227 (2646),
4228 (2647),
4229 (2648),
4230 (2649),
4231 (2650),
4232 (2651),
4233 (2652),
4234 (2653),
4235 (2654),
4236 (2655),
4237 (2656),
4238 (2657),
4239 (2658),
4240 (2659),
4241 (2660),
4242 (2661),
4243 (2662),
4244 (2663),
4245 (2664),
4246 (2665),
4247 (2666),
4248 (2667),
4249 (2668),
4250 (2669),
4251 (2670),
4252 (2671),
4253 (2672),
4254 (2673),
4255 (2674),
4256 (2675),
4257 (2676),
4258 (2677),
4259 (2678),
4260 (2679),
4261 (2680),
4262 (2681),
4263 (2682),
4264 (2683),
4265 (2684),
4266 (2685),
4267 (2686),
4268 (2687),
4269 (2688),
4270 (2689),
4271 (2690),
4272 (2691),
4273 (2692),
4274 (2693),
4275 (2694),
4276 (2695),
4277 (2696),
4278 (2697),
4279 (2698),
4280 (2699),
4281 (2700),
4282 (2701),
4283 (2702),
4284 (2703),
4285 (2704),
4286 (2705),
4287 (2706),
4288 (2707),
4289 (2708),
4290 (2709),
4291 (2710),
4292 (2711),
4293 (2712),
4294 (2713),
4295 (2714),
4296 (2715),
4297 (2716),
4298 (2717),
4299 (2718),
4300 (2719),
4301 (2720),
4302 (2721),
4303 (2722),
4304 (2723),
4305 (2724),
4306 (2725),
4307 (2726),
4308 (2727),
4309 (2728),
4310 (2729),
4311 (2730),
4312 (2731),
4313 (2732),
4314 (2733),
4315 (2734),
4316 (2735),
4317 (2736),
4318 (2737),
4319 (2738),
4320 (2739),
4321 (2740),
4322 (2741),
4323 (2742),
4324 (2743),
4325 (2744),
4326 (2745),
4327 (2746),
4328 (2747),
4329 (2748),
4330 (2749),
4331 (2750),
4332 (2751),
4333 (2752),
4334 (2753),
4335 (2754),
4336 (2755),
4337 (2756),
4338 (2757),
4339 (2758),
4340 (2759),
4341 (2760),
4342 (2761),
4343 (2762),
4344 (2763),
4345 (2764),
4346 (2765),
4347 (2766),
4348 (2767),
4349 (2768),
4350 (2769),
4351 (2770),
4352 (2771),
4353 (2772),
4354 (2773),
4355 (2774),
4356 (2775),
4357 (2776),
4358 (2777),
4359 (2778),
4360 (2779),
4361 (2780),
4362 (2781),
4363 (2782),
4364 (2783),
4365 (2784),
4366 (2785),
4367 (2786),
4368 (2787),
4369 (2788),
4370 (2789),
4371 (2790),
4372 (2791),
4373 (2792),
4374 (2793),
4375 (2794),
4376 (2795),
4377 (2796),
4378 (2797),
4379 (2798),
4380 (2799),
4381 (2800),
4382 (2801),
4383 (2802),
4384 (2803),
4385 (2804),
4386 (2805),
4387 (2806),
4388 (2807),
4389 (2808),
4390 (2809),
4391 (2810),
4392 (2811),
4393 (2812),
4394 (2813),
4395 (2814),
4396 (2815),
4397 (2816),
4398 (2817),
4399 (2818),
4400 (2819),
4401 (2820),
4402 (2821),
4403 (2822),
4404 (2823),
4405 (2824),
4406 (2825),
4407 (2826),
4408 (2827),
4409 (2828),
4410 (2829),
4411 (2830),
4412 (2831),
4413 (2832),
4414 (2833),
4415 (2834),
4416 (2835),
4417 (2836),
4418 (2837),
4419 (2838),
4420 (2839),
4421 (2840),
4422 (2841),
4423 (2842),
4424 (2843),
4425 (2844),
4426 (2845),
4427 (2846),
4428 (2847),
4429 (2848),
4430 (2849),
4431 (2850),
4432 (2851),
4433 (2852),
4434 (2853),
4435 (2854),
4436 (2855),
4437 (2856),
4438 (2857),
4439 (2858),
4440 (2859),
4441 (2860),
4442 (2861),
4443 (2862),
4444 (2863),
4445 (2864),
4446 (2865),
4447 (2866),
4448 (2867),
4449 (2868),
4450 (2869),
4451 (2870),
4452 (2871),
4453 (2872),
4454 (2873),
4455 (2874),
4456 (2875),
4457 (2876),
4458 (2877),
4459 (2878),
4460 (2879),
4461 (2880),
4462 (2881),
4463 (2882),
4464 (2883),
4465 (2884),
4466 (2885),
4467 (2886),
4468 (2887),
4469 (2888),
4470 (2889),
4471 (2890),
4472 (2891),
4473 (2892),
4474 (2893),
4475 (2894),
4476 (2895),
4477 (2896),
4478 (2897),
4479 (2898),
4480 (2899),
4481 (2900),
4482 (2901),
4483 (2902),
4484 (2903),
4485 (2904),
4486 (2905),
4487 (2906),
4488 (2907),
4489 (2908),
4490 (2909),
4491 (2910),
4492 (2911),
4493 (2912),
4494 (2913),
4495 (2914),
4496 (2915),
4497 (2916),
4498 (2917),
4499 (2918),
4500 (2919),
4501 (2920),
4502 (2921),
4503 (2922),
4504 (2923),
4505 (2924),
4506 (2925),
4507 (2926),
4508 (2927),
4509 (2928),
4510 (2929),
4511 (2930),
4512 (2931),
4513 (2932),
4514 (2933),
4515 (2934),
4516 (2935),
4517 (2936),
4518 (2937),
4519 (2938),
4520 (2939),
4521 (2940),
4522 (2941),
4523 (2942),
4524 (2943),
4525 (2944),
4526 (2945),
4527 (2946),
4528 (2947),
4529 (2948),
4530 (2949),
4531 (2950),
4532 (2951),
4533 (2952),
4534 (2953),
4535 (2954),
4536 (2955),
4537 (2956),
4538 (2957),
4539 (2958),
4540 (2959),
4541 (2960),
4542 (2961),
4543 (2962),
4544 (2963),
4545 (2964),
4546 (2965),
4547 (2966),
4548 (2967),
4549 (2968),
4550 (2969),
4551 (2970),
4552 (2971),
4553 (2972),
4554 (2973),
4555 (2974),
4556 (2975),
4557 (2976),
4558 (2977),
4559 (2978),
4560 (2979),
4561 (2980),
4562 (2981),
4563 (2982),
4564 (2983),
4565 (2984),
4566 (2985),
4567 (2986),
4568 (2987),
4569 (2988),
4570 (2989),
4571 (2990),
4572 (2991),
4573 (2992),
4574 (2993),
4575 (2994),
4576 (2995),
4577 (2996),
4578 (2997),
4579 (2998),
4580 (2999),
4581 (3000),
4582 (3001),