From 9ec94e507ffde2b21b95b1107d6812f83bebc104 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 17 Oct 2019 09:54:21 +0200 Subject: `compressions` and `binary_packages`.`compression` new --- misc/database-layout.dmf | 2033 ++++++++++++++++++++++++---------------------- 1 file changed, 1048 insertions(+), 985 deletions(-) (limited to 'misc/database-layout.dmf') diff --git a/misc/database-layout.dmf b/misc/database-layout.dmf index e1f59e2..b03dd47 100644 --- a/misc/database-layout.dmf +++ b/misc/database-layout.dmf @@ -2,13 +2,37 @@ Relational - + - 977 - 378 + 187 + 294 - command_log + compressions + #ffffff + + + id + SMALLINT + True + True + + + suffix + VARCHAR(8) + True + False + + +
+
+ + + 901 + 641 + + + mirror_statuses#ffffff @@ -18,123 +42,123 @@ True - date - TIMESTAMP + protocol + VARCHAR(8) True False - command - VARCHAR(64) + url + VARCHAR(128) True False - parameters - TEXT + country + VARCHAR(64) True False - shell - BIT + country_code + VARCHAR(4) True False - -
-
- - - 632 - 498 - - - upstream_packages - #ffffff - - id + last_sync BIGINT True - True + False - pkgname - VARCHAR(64) + start + FLOAT True False - epoch - MEDIUMINT + stop + FLOAT True False - pkgver - VARCHAR(64) + isos + BIT True False - pkgrel - MEDIUMINT + ipv4 + BIT True False - architecture - VARCHAR(6) + ipv6 + BIT True False - repository - SMALLINT + active + BIT True False
- + - -31 - 605 + 656 + 380 - toolchain_order + architecture_compatibilities#ffffff - number - SMALLINT + id + MEDIUMINT True True - pkgbase - VARCHAR(64) + built_for + SMALLINT True False - requires_all_dependencies_built + runs_on + SMALLINT + True + False + + + fully_compatible BIT True False + + build_slave_compatible + BIT(n) + True + False +
- + - 483 - 57 + 229 + 20 - versions + ssh_keys#ffffff @@ -144,19 +168,37 @@ True - order - BIGINT + owner + MEDIUMINT True False - epoch - MEDIUMINT + fingerprint + TEXT True False + +
+
+ + + -54 + 70 + + + email_actions + #ffffff + - version + id + MEDIUMINT + True + True + + + name VARCHAR(32) True False @@ -164,13 +206,13 @@
- + - 345 - -71 + 56 + 26 - dependencies + allowed_email_actions#ffffff @@ -180,87 +222,111 @@ True - dependent + gpg_key BIGINT True False - depending_on - BIGINT + action + MEDIUMINT True False + +
+
+ + + 92 + -69 + + + gpg_keys + #ffffff + + + id + BIGINT + True + True + - dependency_type - SMALLINT + fingerprint + VARCHAR(40) True False - version - BIGINT + owner + MEDIUMINT True False - version_relation - VARCHAR(2) + public_key + TEXT True False
- + - 525 - 215 + 240 + -66 - binary_packages_in_repositories + persons#ffffff id - BIGINT + MEDIUMINT True True - package - BIGINT - True - False - - - repository - MEDIUMINT + name + VARCHAR(32) True False + +
+
+ + + 821 + -49 + + + todo_links + #ffffff + - is_to_be_deleted - BIT + dependent + BIGINT True False - last_moved - TIMESTAMP + depending_on + BIGINT True False
- + - -52 - 134 + 971 + -69 - ssh_log + todos#ffffff @@ -270,51 +336,39 @@ True - date - TIMESTAMP + file + VARCHAR(64) True False - build_slave + line MEDIUMINT - False - False - - - action - VARCHAR(32) True False - parameters + description TEXT True False - duration - MEDIUMINT - False - False - - - exit_code - MEDIUMINT + importance + SMALLINT False False
- + - -55 - -72 + 357 + 455 - email_log + statitstics#ffffff @@ -330,363 +384,279 @@ False - success - BIT + stable_packages_count + MEDIUMINT True False - action + pending_tasks_count MEDIUMINT - False + True False - count + pending_packages_count MEDIUMINT - False - False - - - gpg_key - BIGINT - False - False - - - comment - TEXT - False + True False - -
-
- - - 793 - 497 - - - repository_moves - #ffffff - - id + staging_packages_count MEDIUMINT True - True + False - from_repository + testing_packages_count MEDIUMINT True False - to_repository + tested_packages_count MEDIUMINT True False - upstream_package_repository - SMALLINT + broken_tasks_count + MEDIUMINT True False - -
-
- - - 829 - 168 - - - repository_stabilities - #ffffff - - id - SMALLINT + dependency_loops_count + MEDIUMINT True - True + False - name - VARCHAR(32) + dependency_looped_tasks_count + MEDIUMINT True False - bugtracker_category - VARCHAR(32) - False + locked_tasks_count + MEDIUMINT + True False - -
-
- - - -22 - 527 - - - build_dependency_loops - #ffffff - - id - BIGINT + blocked_tasks_count + MEDIUMINT True - True + False - loop + next_tasks_count MEDIUMINT True False - build_assignment - BIGINT + architecture + SMALLINT True False
- + - 580 - -71 + 816 + 57 - dependency_types + repository_stability_relations#ffffff id - SMALLINT + MEDIUMINT True True - name - VARCHAR(32) - True - False - - - relevant_for_building - BIT + more_stable + MEDIUMINT True False - relevant_for_binary_packages - BIT + less_stable + MEDIUMINT True False
- + - 653 - 21 + -43 + 267 - install_targets + fail_reasons#ffffff id - BIGINT + SMALLINT True True name - VARCHAR(64) + VARCHAR(32) True False - -
-
- - - 382 - 378 - - - architectures - #ffffff - - id - SMALLINT + identifier + VARCHAR(64) True - True + False - name - VARCHAR(16) + severity + SMALLINT True False
- + - 103 - 694 + -44 + 372 - package_sources + failed_builds#ffffff id - BIGINT + MEDIUMINT True True - pkgbase - VARCHAR(64) + build_slave + MEDIUMINT True False - git_revision - VARCHAR(40) + build_assignment + BIGINT True False - mod_git_revision - VARCHAR(40) + date + TIMESTAMP True False - upstream_package_repository + reason SMALLINT True False - uses_upstream - BIT + log_file + VARCHAR(512) True False - uses_modification + log_file_exists BIT True False - - commit_time - TIMESTAMP - True - False - - - upstream_flag_date - TIMESTAMP - False - False -
- + - 729 - 684 + 153 + 447 - upstream_repositories + build_assignments#ffffff id - SMALLINT + BIGINT True True - name - VARCHAR(64) + package_source + BIGINT True False - git_repository + architecture SMALLINT True False - -
-
- - - 598 - 736 - - - git_repositories - #ffffff - - id - SMALLINT - True - True + is_blocked + VARCHAR(128) + False + False - name - VARCHAR(64) - True + is_black_listed + VARCHAR(128) + False False - url - VARCHAR(128) + is_broken + BIT True False - directory - VARCHAR(128) + priority + SMALLINT True False - head - VARCHAR(40) - True + return_date + TIMESTAMP + False + False + + + currently_blocking + MEDIUMINT + False False
- + - 803 - 261 + 74 + 113 - repositories + build_slaves#ffffff @@ -697,74 +667,62 @@ name - VARCHAR(64) + VARCHAR(32) True False - stability - SMALLINT + ssh_key + BIGINT True False - is_on_master_mirror - BIT - True + currently_building + BIGINT + False False - architecture - SMALLINT + last_connection + TIME True False - -
-
- - - 604 - 88 - - - install_target_providers - #ffffff - - id + logged_lines BIGINT - True - True + False + False - package - BIGINT - True + last_action + VARCHAR(32) + False False - install_target - BIGINT - True + trials + MEDIUMINT + False False - version - BIGINT + is_sane + BIT True False - install_target_is_group - BIT + access_allowed + BIT(n) True False
- + 299 99 @@ -845,208 +803,292 @@ True False + + compression + SMALLINT + False + False + - + - 118 - 148 + 604 + 88 - build_slaves + install_target_providers#ffffff id - MEDIUMINT + BIGINT True True - name - VARCHAR(32) + package + BIGINT True False - ssh_key + install_target BIGINT True False - currently_building + version BIGINT - False + True False - last_connection - TIME + install_target_is_group + BIT True False + +
+
+ + + 803 + 261 + + + repositories + #ffffff + - logged_lines - BIGINT - False - False + id + MEDIUMINT + True + True - last_action - VARCHAR(32) - False + name + VARCHAR(64) + True False - trials - MEDIUMINT - False + stability + SMALLINT + True False - is_sane + is_on_master_mirror BIT True False - access_allowed - BIT(n) + architecture + SMALLINT True False
- + - 164 - 408 + 598 + 736 - build_assignments + git_repositories#ffffff id - BIGINT + SMALLINT True True - package_source - BIGINT - True - False - - - architecture - SMALLINT + name + VARCHAR(64) True False - is_blocked + url VARCHAR(128) - False + True False - is_black_listed + directory VARCHAR(128) - False + True False - is_broken - BIT + head + VARCHAR(40) True False + +
+
+ + + 729 + 684 + + + upstream_repositories + #ffffff + - priority + id SMALLINT True - False + True - return_date - TIMESTAMP - False + name + VARCHAR(64) + True False - currently_blocking - MEDIUMINT - False + git_repository + SMALLINT + True False
- + - -22 - 374 + 103 + 694 - failed_builds + package_sources#ffffff id - MEDIUMINT + BIGINT True True - build_slave - MEDIUMINT + pkgbase + VARCHAR(64) True False - build_assignment - BIGINT + git_revision + VARCHAR(40) True False - date - TIMESTAMP + mod_git_revision + VARCHAR(40) True False - reason + upstream_package_repository SMALLINT True False - log_file - VARCHAR(512) + uses_upstream + BIT + True + False + + + uses_modification + BIT + True + False + + + commit_time + TIMESTAMP + True + False + + + upstream_flag_date + TIMESTAMP + False + False + + +
+
+ + + 382 + 378 + + + architectures + #ffffff + + + id + SMALLINT + True + True + + + name + VARCHAR(16) + True + False + + +
+
+ + + 653 + 21 + + + install_targets + #ffffff + + + id + BIGINT True - False + True - log_file_exists - BIT + name + VARCHAR(64) True False
- + - -43 - 267 + 580 + -71 - fail_reasons + dependency_types#ffffff @@ -1062,159 +1104,177 @@ False - identifier - VARCHAR(64) + relevant_for_building + BIT True False - severity - SMALLINT + relevant_for_binary_packages + BIT True False
- + - 816 - 57 + -42 + 529 - repository_stability_relations + build_dependency_loops#ffffff id - MEDIUMINT + BIGINT True True - more_stable + loop MEDIUMINT True False - less_stable - MEDIUMINT + build_assignment + BIGINT True False
- + - 357 - 455 + 829 + 168 - statitstics + repository_stabilities#ffffff id - BIGINT + SMALLINT True True - date - TIMESTAMP - True - False - - - stable_packages_count - MEDIUMINT + name + VARCHAR(32) True False - pending_tasks_count - MEDIUMINT - True + bugtracker_category + VARCHAR(32) + False False + +
+
+ + + 793 + 497 + + + repository_moves + #ffffff + - pending_packages_count + id MEDIUMINT True - False + True - staging_packages_count + from_repository MEDIUMINT True False - testing_packages_count + to_repository MEDIUMINT True False - tested_packages_count - MEDIUMINT + upstream_package_repository + SMALLINT True False + +
+
+ + + -55 + -72 + + + email_log + #ffffff + - broken_tasks_count - MEDIUMINT + id + BIGINT True - False + True - dependency_loops_count - MEDIUMINT + date + TIMESTAMP True False - dependency_looped_tasks_count - MEDIUMINT + success + BIT True False - locked_tasks_count + action MEDIUMINT - True + False False - blocked_tasks_count + count MEDIUMINT - True + False False - next_tasks_count - MEDIUMINT - True + gpg_key + BIGINT + False False - architecture - SMALLINT - True + comment + TEXT + False False
- + - 971 - -69 + -52 + 134 - todos + ssh_log#ffffff @@ -1224,87 +1284,51 @@ True - file - VARCHAR(64) + date + TIMESTAMP True False - line + build_slave MEDIUMINT - True - False - - - description - TEXT - True - False - - - importance - SMALLINT False False - -
-
- - - 821 - -49 - - - todo_links - #ffffff - - dependent - BIGINT + action + VARCHAR(32) True False - depending_on - BIGINT + parameters + TEXT True False - -
-
- - - 240 - -66 - - - persons - #ffffff - - id + duration MEDIUMINT - True - True + False + False - name - VARCHAR(32) - True + exit_code + MEDIUMINT + False False
- + - 92 - -69 + 525 + 215 - gpg_keys + binary_packages_in_repositories#ffffff @@ -1314,33 +1338,39 @@ True - fingerprint - VARCHAR(40) + package + BIGINT True False - owner + repository MEDIUMINT True False - public_key - TEXT + is_to_be_deleted + BIT + True + False + + + last_moved + TIMESTAMP True False
- + - 68 - 42 + 345 + -71 - allowed_email_actions + dependencies#ffffff @@ -1350,51 +1380,45 @@ True - gpg_key + dependent BIGINT True False - action - MEDIUMINT + depending_on + BIGINT True False - -
-
- - - -54 - 70 - - - email_actions - #ffffff - - id - MEDIUMINT + dependency_type + SMALLINT True - True + False - name - VARCHAR(32) + version + BIGINT + True + False + + + version_relation + VARCHAR(2) True False
- + - 229 - 20 + 483 + 57 - ssh_keys + versions#ffffff @@ -1404,69 +1428,63 @@ True - owner + order + BIGINT + True + False + + + epoch MEDIUMINT True False - fingerprint - TEXT + version + VARCHAR(32) True False
- + - 656 - 380 + -31 + 605 - architecture_compatibilities + toolchain_order#ffffff - id - MEDIUMINT - True - True - - - built_for + number SMALLINT True - False + True - runs_on - SMALLINT + pkgbase + VARCHAR(64) True False - fully_compatible + requires_all_dependencies_built BIT True False - - build_slave_compatible - BIT(n) - True - False -
- + - 901 - 641 + 632 + 498 - mirror_statuses + upstream_packages#ffffff @@ -1476,67 +1494,79 @@ True - protocol - VARCHAR(8) + pkgname + VARCHAR(64) True False - url - VARCHAR(128) + epoch + MEDIUMINT True False - country + pkgver VARCHAR(64) True False - country_code - VARCHAR(4) + pkgrel + MEDIUMINT True False - last_sync - BIGINT + architecture + VARCHAR(6) True False - start - FLOAT + repository + SMALLINT True False + +
+
+ + + 977 + 378 + + + command_log + #ffffff + - stop - FLOAT + id + BIGINT True - False + True - isos - BIT + date + TIMESTAMP True False - ipv4 - BIT + command + VARCHAR(64) True False - ipv6 - BIT + parameters + TEXT True False - active + shell BIT True False @@ -1544,57 +1574,57 @@
- + - 483.75 - 455 + 656 + 441.875 - 90 - + 180 + - 429.273 - 428.813 + 476.547 + 416.109 - 270 + 0 - OneToMany + OneToOne - Optional - Optional + Mandatory + Mandatory - 14 + 1 0 - + - 699.898 - 618.813 + 656 + 410.938 - 270 - + 180 + - 778.818 - 684 + 476.547 + 403.406 - 90 - + 0 + @@ -1605,62 +1635,95 @@ Mandatory - 6 + 2 0 - + - 93.3906 - 669.813 + 803 + 322.875 - 270 - + 180 + - 181.755 - 694 + 476.547 + 390.703 + + 0 + + + + + + OneToOne + + Mandatory + Mandatory + + + 4 + 0 + + + + + + + + + 282.328 + 20 90 - + + + + + 275.289 + -15.1875 + + 270 + OneToOne - Optional - Optional + Mandatory + Mandatory 1 - 1 + 0 - + - 446.115 - 35.8125 + 215.453 + 194.406 - 270 - + 0 + - 524.594 - 57 + 282.328 + 84.8125 - 90 - + 270 + @@ -1671,36 +1734,36 @@ Mandatory - 4 + 2 0 - + - 604 - 118.938 + -9.85156 + 48.8125 - 180 - + 270 + - 566.188 - 96.4063 + -5.27344 + 70 - 0 - + 90 + OneToOne - Mandatory + Optional Mandatory @@ -1709,24 +1772,24 @@ - + - 496.672 - -35.3958 + 56 + 58.4063 - 0 - + 180 + - 580 - -31.5938 + 43.4531 + 95.4063 - 180 - + 0 + @@ -1737,29 +1800,29 @@ Mandatory - 3 + 2 0 - + - 496.672 - 0.208333 + 130.789 + 26 - 0 - + 90 + - 653 - 46.4063 + 145.328 + 9.8125 - 180 - + 270 + @@ -1770,62 +1833,62 @@ Mandatory - 2 + 1 0 - + - 734.844 - 261.406 + 35.2969 + -11.5938 0 - + - 803 - 291.938 + 92 + -29.5938 180 - + - OneToMany + OneToOne Optional - Optional + Mandatory - 2 + 5 0 - + - 395.557 - 35.8125 + 198.656 + -29.5938 - 270 - + 0 + - 381.93 - 99 + 240 + -40.5938 - 90 - + 180 + @@ -1836,29 +1899,29 @@ Mandatory - 1 + 2 0 - + - 525 - 261.406 + 948.234 + -32.0625 - 180 - + 0 + - 464.859 - 226.208 + 971 + -38.0625 - 0 - + 180 + @@ -1869,29 +1932,29 @@ Mandatory - 1 + 0 0 - + - 59.5313 - 194.406 + 948.234 + -15.125 0 - + - 118 - 229.406 + 971 + -7.125 180 - + @@ -1902,29 +1965,29 @@ Mandatory - 2 + 1 0 - + - 911.133 - 575.813 + 941.313 + 121.813 270 - + - 828.635 - 684 + 934.271 + 168 90 - + @@ -1935,29 +1998,29 @@ Mandatory - 3 + 2 0 - + - 871.755 - 497 + 878.656 + 121.813 - 90 - + 270 + - 859.469 - 353.813 + 881.635 + 168 - 270 - + 90 + @@ -1973,24 +2036,24 @@ - + - 950.51 - 497 + 6.57292 + 372 90 - + - 915.938 - 353.813 + 4.9375 + 345.813 270 - + @@ -2001,29 +2064,29 @@ Mandatory - 2 + 4 0 - + - 409.573 - 289.813 + 107.719 + 432.406 - 270 - + 0 + - 429.273 - 378 + 153 + 496.604 - 90 - + 180 + @@ -2034,29 +2097,29 @@ Mandatory - 9 + 2 0 - + - 887.703 - 261 + 57.1458 + 372 90 - + - 907.953 - 232.813 + 121.151 + 275.813 270 - + @@ -2067,29 +2130,29 @@ Mandatory - 2 + 1 0 - + - 697.203 - 88 + 120.391 + 561.406 - 90 - + 0 + - 703.016 - 71.8125 + 153 + 546.208 - 270 - + 180 + @@ -2105,57 +2168,57 @@ - + - 604 - 149.875 + 168.302 + 275.813 - 180 - + 270 + - 464.859 - 162.604 + 200.927 + 447 - 0 - + 90 + OneToOne - Mandatory + Optional Mandatory - 1 + 3 0 - + - 339.266 - 768.406 + 354.286 + 303.813 - 0 - + 270 + - 729 - 716.406 + 248.854 + 447 - 180 - + 90 + @@ -2166,29 +2229,29 @@ Mandatory - 4 + 1 0 - + - 803.727 - 748.813 + 296.781 + 521.406 - 270 - + 0 + - 705.609 - 782.406 + 413.516 + 428.813 - 0 - + 270 + @@ -2204,13 +2267,13 @@ - + - 235.891 - 556.813 + 224.891 + 595.813 270 @@ -2237,24 +2300,24 @@ - + - 307.781 - 482.406 + 803.727 + 748.813 - 0 - + 270 + - 382 - 403.406 + 705.609 + 782.406 - 180 - + 0 + @@ -2270,24 +2333,24 @@ - + - 354.286 - 289.813 + 339.266 + 768.406 - 270 - + 0 + - 259.854 - 408 + 729 + 716.406 - 90 - + 180 + @@ -2298,29 +2361,29 @@ Mandatory - 1 + 4 0 - + - 212.302 - 310.813 + 604 + 149.875 - 270 - + 180 + - 211.927 - 408 + 464.859 + 167.271 - 90 - + 0 + @@ -2331,29 +2394,29 @@ Mandatory - 3 + 1 0 - + - 59.1953 - 527 + 697.203 + 88 90 - + - 164 - 507.208 + 703.016 + 71.8125 - 180 - + 270 + @@ -2369,24 +2432,24 @@ - + - 79.1458 - 374 + 887.703 + 261 90 - + - 165.151 - 310.813 + 907.953 + 232.813 270 - + @@ -2397,29 +2460,29 @@ Mandatory - 1 + 2 0 - + - 129.719 - 434.406 + 409.573 + 303.813 - 0 - + 270 + - 164 - 457.604 + 429.273 + 378 - 180 - + 90 + @@ -2430,29 +2493,29 @@ Mandatory - 2 + 9 0 - + - 28.5729 - 374 + 871.755 + 497 90 - + - 4.9375 - 345.813 + 859.469 + 353.813 270 - + @@ -2463,29 +2526,29 @@ Mandatory - 4 + 2 0 - + - 941.313 - 121.813 + 950.51 + 497 - 270 - + 90 + - 934.271 - 168 + 915.938 + 353.813 - 90 - + 270 + @@ -2501,24 +2564,24 @@ - + - 878.656 - 121.813 + 911.133 + 575.813 270 - + - 881.635 - 168 + 828.635 + 684 90 - + @@ -2529,62 +2592,62 @@ Mandatory - 2 + 3 0 - + - 948.234 - -32.0625 + 59.5313 + 194.406 0 - + - 971 - -38.0625 + 74 + 194.406 180 - + OneToOne - Mandatory + Optional Mandatory - 1 + 2 0 - + - 948.234 - -15.125 + 525 + 261.406 - 0 - + 180 + - 971 - -7.125 + 464.859 + 235.542 - 180 - + 0 + @@ -2595,29 +2658,29 @@ Mandatory - 0 + 1 0 - + - 198.656 - -29.5938 + 395.557 + 35.8125 - 0 - + 270 + - 240 - -40.5938 + 381.93 + 99 - 180 - + 90 + @@ -2628,62 +2691,62 @@ Mandatory - 2 + 1 0 - + - 35.2969 - -11.5938 + 734.844 + 261.406 0 - + - 92 - -29.5938 + 803 + 291.938 180 - + - OneToOne + OneToMany - Mandatory - Mandatory + Optional + Optional - 5 + 2 0 - + - 142.789 - 42 + 496.672 + 0.208333 - 90 - + 0 + - 145.328 - 9.8125 + 653 + 46.4063 - 270 - + 180 + @@ -2694,29 +2757,29 @@ Mandatory - 1 + 2 0 - + - 68 - 74.4063 + 496.672 + -35.3958 - 180 - + 0 + - 43.4531 - 95.4063 + 580 + -31.5938 - 0 - + 180 + @@ -2727,29 +2790,29 @@ Mandatory - 2 + 3 0 - + - -9.85156 - 48.8125 + 604 + 118.938 - 270 - + 180 + - -5.27344 - 70 + 566.188 + 96.4063 - 90 - + 0 + @@ -2765,24 +2828,24 @@ - + - 188.727 - 148 + 446.115 + 35.8125 - 90 - + 270 + - 282.328 - 84.8125 + 524.594 + 57 - 270 - + 90 + @@ -2793,62 +2856,62 @@ Mandatory - 2 + 4 0 - + - 282.328 - 20 + 93.3906 + 669.813 - 90 - + 270 + - 275.289 - -15.1875 + 181.755 + 694 - 270 - + 90 + OneToOne - Mandatory - Mandatory + Optional + Optional 1 - 0 + 1 - + - 803 - 322.875 + 699.898 + 618.813 - 180 - + 270 + - 476.547 - 390.703 + 778.818 + 684 - 0 - + 90 + @@ -2859,73 +2922,73 @@ Mandatory - 4 + 6 0 - + - 656 - 441.875 + 483.75 + 455 - 180 - + 90 + - 476.547 - 416.109 + 445.031 + 428.813 - 0 + 270 - OneToOne + OneToMany - Mandatory - Mandatory + Optional + Optional - 2 + 14 0 - + - 656 - 410.938 + 299 + 201.406 180 - + - 476.547 - 403.406 + 235.883 + 294 - 0 - + 90 + OneToOne - Mandatory + Optional Mandatory - 1 + 12 0 -- cgit v1.2.3