legal_markdown 0.4.10 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. data/Gemfile +3 -1
  2. data/README.md +1 -0
  3. data/Rakefile +26 -29
  4. data/legal_markdown.gemspec +1 -0
  5. data/lib/legal_markdown.rb +6 -5
  6. data/lib/legal_markdown/legal_to_markdown.rb +2 -0
  7. data/lib/legal_markdown/legal_to_markdown/json_builder.rb +4 -0
  8. data/lib/legal_markdown/legal_to_markdown/load_source.rb +9 -1
  9. data/lib/legal_markdown/legal_to_markdown/meta.rb +43 -0
  10. data/lib/legal_markdown/legal_to_markdown/mixins.rb +0 -1
  11. data/lib/legal_markdown/make_yaml_frontmatter.rb +22 -3
  12. data/lib/legal_markdown/version.rb +1 -1
  13. data/{test/tests → spec/fixtures}/00.load_write_no_action.headers +0 -0
  14. data/{test/tests → spec/fixtures}/00.load_write_no_action.json +0 -0
  15. data/{test/tests → spec/fixtures}/00.load_write_no_action.lmd +0 -0
  16. data/{test/tests → spec/fixtures}/00.load_write_no_action.md +0 -0
  17. data/{test/tests → spec/fixtures}/01.load_partial_no_action.headers +1 -1
  18. data/{test/tests → spec/fixtures}/01.load_partial_no_action.json +0 -0
  19. data/{test/tests → spec/fixtures}/01.load_partial_no_action.lmd +1 -1
  20. data/{test/tests → spec/fixtures}/01.load_partial_no_action.md +0 -0
  21. data/{test/tests → spec/fixtures}/02.load_partials_no_action.headers +2 -2
  22. data/{test/tests → spec/fixtures}/02.load_partials_no_action.json +0 -0
  23. data/{test/tests → spec/fixtures}/02.load_partials_no_action.lmd +2 -2
  24. data/{test/tests → spec/fixtures}/02.load_partials_no_action.md +0 -0
  25. data/{test/tests → spec/fixtures}/10.mixins_in_headers_and_text.headers +0 -0
  26. data/{test/tests → spec/fixtures}/10.mixins_in_headers_and_text.json +0 -0
  27. data/{test/tests → spec/fixtures}/10.mixins_in_headers_and_text.lmd +0 -0
  28. data/{test/tests → spec/fixtures}/10.mixins_in_headers_and_text.md +0 -0
  29. data/{test/tests → spec/fixtures}/12.opt_clauses_no_subs.headers +0 -0
  30. data/{test/tests → spec/fixtures}/12.opt_clauses_no_subs.json +0 -0
  31. data/{test/tests → spec/fixtures}/12.opt_clauses_no_subs.lmd +0 -0
  32. data/{test/tests → spec/fixtures}/12.opt_clauses_no_subs.md +0 -0
  33. data/{test/tests → spec/fixtures}/13.opt_clauses_subs.headers +0 -0
  34. data/{test/tests → spec/fixtures}/13.opt_clauses_subs.json +0 -0
  35. data/{test/tests → spec/fixtures}/13.opt_clauses_subs.lmd +0 -0
  36. data/{test/tests → spec/fixtures}/13.opt_clauses_subs.md +0 -0
  37. data/{test/tests → spec/fixtures}/14.opt_clauses_with_mixins.headers +0 -0
  38. data/{test/tests → spec/fixtures}/14.opt_clauses_with_mixins.json +0 -0
  39. data/{test/tests → spec/fixtures}/14.opt_clauses_with_mixins.lmd +0 -0
  40. data/{test/tests → spec/fixtures}/14.opt_clauses_with_mixins.md +0 -0
  41. data/{test/tests → spec/fixtures}/20.block_no_addons.headers +0 -0
  42. data/{test/tests → spec/fixtures}/20.block_no_addons.json +0 -0
  43. data/{test/tests → spec/fixtures}/20.block_no_addons.lmd +0 -0
  44. data/{test/tests → spec/fixtures}/20.block_no_addons.md +0 -0
  45. data/{test/tests → spec/fixtures}/21.block_no_indents.headers +0 -0
  46. data/{test/tests → spec/fixtures}/21.block_no_indents.json +0 -0
  47. data/{test/tests → spec/fixtures}/21.block_no_indents.lmd +0 -0
  48. data/{test/tests → spec/fixtures}/21.block_no_indents.md +0 -0
  49. data/{test/tests → spec/fixtures}/22.block_all_indents.headers +0 -0
  50. data/{test/tests → spec/fixtures}/22.block_all_indents.json +0 -0
  51. data/{test/tests → spec/fixtures}/22.block_all_indents.lmd +0 -0
  52. data/{test/tests → spec/fixtures}/22.block_all_indents.md +0 -0
  53. data/{test/tests → spec/fixtures}/23.block_part_indents.headers +0 -0
  54. data/{test/tests → spec/fixtures}/23.block_part_indents.json +0 -0
  55. data/{test/tests → spec/fixtures}/23.block_part_indents.lmd +0 -0
  56. data/{test/tests → spec/fixtures}/23.block_part_indents.md +0 -0
  57. data/{test/tests → spec/fixtures}/24.block_no_closing_ticks.headers +0 -0
  58. data/{test/tests → spec/fixtures}/24.block_no_closing_ticks.json +0 -0
  59. data/{test/tests → spec/fixtures}/24.block_no_closing_ticks.lmd +0 -0
  60. data/{test/tests → spec/fixtures}/24.block_no_closing_ticks.md +0 -0
  61. data/{test/tests → spec/fixtures}/25.block_no_resets.headers +0 -0
  62. data/{test/tests → spec/fixtures}/25.block_no_resets.json +0 -0
  63. data/{test/tests → spec/fixtures}/25.block_no_resets.lmd +0 -0
  64. data/{test/tests → spec/fixtures}/25.block_no_resets.md +0 -0
  65. data/{test/tests → spec/fixtures}/26.block_all_resets.headers +0 -0
  66. data/{test/tests → spec/fixtures}/26.block_all_resets.json +0 -0
  67. data/{test/tests → spec/fixtures}/26.block_all_resets.lmd +0 -0
  68. data/{test/tests → spec/fixtures}/26.block_all_resets.md +0 -0
  69. data/{test/tests → spec/fixtures}/27.block_part_resets.headers +0 -0
  70. data/{test/tests → spec/fixtures}/27.block_part_resets.json +0 -0
  71. data/{test/tests → spec/fixtures}/27.block_part_resets.lmd +0 -0
  72. data/{test/tests → spec/fixtures}/27.block_part_resets.md +0 -0
  73. data/{test/tests → spec/fixtures}/28.block_provs_multi_line_no_indent.headers +0 -0
  74. data/{test/tests → spec/fixtures}/28.block_provs_multi_line_no_indent.json +0 -0
  75. data/{test/tests → spec/fixtures}/28.block_provs_multi_line_no_indent.lmd +0 -0
  76. data/{test/tests → spec/fixtures}/28.block_provs_multi_line_no_indent.md +0 -0
  77. data/{test/tests → spec/fixtures}/29.block_provs_multi_line_indents.headers +0 -0
  78. data/{test/tests → spec/fixtures}/29.block_provs_multi_line_indents.json +0 -0
  79. data/{test/tests → spec/fixtures}/29.block_provs_multi_line_indents.lmd +0 -0
  80. data/{test/tests → spec/fixtures}/29.block_provs_multi_line_indents.md +0 -0
  81. data/{test/tests → spec/fixtures}/30.block_all_leader_types.headers +0 -0
  82. data/{test/tests → spec/fixtures}/30.block_all_leader_types.json +0 -0
  83. data/{test/tests → spec/fixtures}/30.block_all_leader_types.lmd +0 -0
  84. data/{test/tests → spec/fixtures}/30.block_all_leader_types.md +0 -0
  85. data/{test/tests → spec/fixtures}/31.block_complex_leader_types.headers +0 -0
  86. data/{test/tests → spec/fixtures}/31.block_complex_leader_types.json +0 -0
  87. data/{test/tests → spec/fixtures}/31.block_complex_leader_types.lmd +0 -0
  88. data/{test/tests → spec/fixtures}/31.block_complex_leader_types.md +0 -0
  89. data/{test/tests → spec/fixtures}/32.block_new_leader_style.headers +0 -0
  90. data/{test/tests → spec/fixtures}/32.block_new_leader_style.json +0 -0
  91. data/{test/tests → spec/fixtures}/32.block_new_leader_style.lmd +0 -0
  92. data/{test/tests → spec/fixtures}/32.block_new_leader_style.md +0 -0
  93. data/{test/tests → spec/fixtures}/33.block_with_pre_simple.headers +0 -0
  94. data/{test/tests → spec/fixtures}/33.block_with_pre_simple.json +0 -0
  95. data/{test/tests → spec/fixtures}/33.block_with_pre_simple.lmd +0 -0
  96. data/{test/tests → spec/fixtures}/33.block_with_pre_simple.md +0 -0
  97. data/{test/tests → spec/fixtures}/34.block_with_pre_complex.headers +0 -0
  98. data/{test/tests → spec/fixtures}/34.block_with_pre_complex.json +0 -0
  99. data/{test/tests → spec/fixtures}/34.block_with_pre_complex.lmd +0 -0
  100. data/{test/tests → spec/fixtures}/34.block_with_pre_complex.md +0 -0
  101. data/{test/tests → spec/fixtures}/35.block_with_preval.headers +0 -0
  102. data/{test/tests → spec/fixtures}/35.block_with_preval.json +0 -0
  103. data/{test/tests → spec/fixtures}/35.block_with_preval.lmd +0 -0
  104. data/{test/tests → spec/fixtures}/35.block_with_preval.md +0 -0
  105. data/{test/tests → spec/fixtures}/36.block_with_crossrefs.headers +0 -0
  106. data/{test/tests → spec/fixtures}/36.block_with_crossrefs.json +0 -0
  107. data/{test/tests → spec/fixtures}/36.block_with_crossrefs.lmd +0 -0
  108. data/{test/tests → spec/fixtures}/36.block_with_crossrefs.md +0 -0
  109. data/{test/tests → spec/fixtures}/37.block_with_diff_start_pt.headers +0 -0
  110. data/{test/tests → spec/fixtures}/37.block_with_diff_start_pt.json +0 -0
  111. data/{test/tests → spec/fixtures}/37.block_with_diff_start_pt.lmd +0 -0
  112. data/{test/tests → spec/fixtures}/37.block_with_diff_start_pt.md +0 -0
  113. data/{test/tests → spec/fixtures}/38.block_with_bom_characters_windows_produces.headers +0 -0
  114. data/{test/tests → spec/fixtures}/38.block_with_bom_characters_windows_produces.json +0 -0
  115. data/{test/tests → spec/fixtures}/38.block_with_bom_characters_windows_produces.lmd +0 -0
  116. data/{test/tests → spec/fixtures}/38.block_with_bom_characters_windows_produces.md +0 -0
  117. data/spec/fixtures/38.block_with_more_bom_characters_windows_produces.headers +50 -0
  118. data/spec/fixtures/38.block_with_more_bom_characters_windows_produces.json +256 -0
  119. data/spec/fixtures/38.block_with_more_bom_characters_windows_produces.lmd +0 -0
  120. data/spec/fixtures/38.block_with_more_bom_characters_windows_produces.md +26 -0
  121. data/spec/fixtures/39.block_with_windows_default_encoding.headers +50 -0
  122. data/spec/fixtures/39.block_with_windows_default_encoding.json +256 -0
  123. data/spec/fixtures/39.block_with_windows_default_encoding.lmd +50 -0
  124. data/spec/fixtures/39.block_with_windows_default_encoding.md +26 -0
  125. data/{test/tests → spec/fixtures}/40.block_with_mixins.headers +0 -0
  126. data/{test/tests → spec/fixtures}/40.block_with_mixins.json +0 -0
  127. data/{test/tests → spec/fixtures}/40.block_with_mixins.lmd +0 -0
  128. data/{test/tests → spec/fixtures}/40.block_with_mixins.md +0 -0
  129. data/{test/tests → spec/fixtures}/41.block_with_opt_clauses.headers +0 -0
  130. data/{test/tests → spec/fixtures}/41.block_with_opt_clauses.json +0 -0
  131. data/{test/tests → spec/fixtures}/41.block_with_opt_clauses.lmd +0 -0
  132. data/{test/tests → spec/fixtures}/41.block_with_opt_clauses.md +0 -0
  133. data/spec/fixtures/42.block_with_opt_clauses_and_mixins.debug +193 -0
  134. data/spec/fixtures/42.block_with_opt_clauses_and_mixins.debugd +193 -0
  135. data/{test/tests → spec/fixtures}/42.block_with_opt_clauses_and_mixins.headers +0 -0
  136. data/{test/tests → spec/fixtures}/42.block_with_opt_clauses_and_mixins.json +0 -0
  137. data/{test/tests → spec/fixtures}/42.block_with_opt_clauses_and_mixins.lmd +0 -0
  138. data/{test/tests → spec/fixtures}/42.block_with_opt_clauses_and_mixins.md +0 -0
  139. data/spec/fixtures/43.throw_some_erroris.headers +90 -0
  140. data/spec/fixtures/43.throw_some_erroris.json +200 -0
  141. data/spec/fixtures/43.throw_some_erroris.lmd +39 -0
  142. data/spec/fixtures/43.throw_some_erroris.md +26 -0
  143. data/spec/fixtures/44.block_with_meta_kept.headers +60 -0
  144. data/spec/fixtures/44.block_with_meta_kept.json +477 -0
  145. data/spec/fixtures/44.block_with_meta_kept.lmd +56 -0
  146. data/spec/fixtures/44.block_with_meta_kept.md +55 -0
  147. data/spec/fixtures/45.block_with_meta_stripped_no_output.headers +57 -0
  148. data/spec/fixtures/45.block_with_meta_stripped_no_output.json +476 -0
  149. data/spec/fixtures/45.block_with_meta_stripped_no_output.lmd +53 -0
  150. data/spec/fixtures/45.block_with_meta_stripped_no_output.md +50 -0
  151. data/spec/fixtures/46.block_with_meta_no_instructions.headers +57 -0
  152. data/spec/fixtures/46.block_with_meta_no_instructions.json +477 -0
  153. data/spec/fixtures/46.block_with_meta_no_instructions.lmd +57 -0
  154. data/spec/fixtures/46.block_with_meta_no_instructions.md +55 -0
  155. data/spec/fixtures/47.block_with_multi_meta.headers +59 -0
  156. data/spec/fixtures/47.block_with_multi_meta.json +477 -0
  157. data/spec/fixtures/47.block_with_multi_meta.lmd +55 -0
  158. data/spec/fixtures/47.block_with_multi_meta.md +55 -0
  159. data/{test/tests/45.all_features_speed_ratchet.headers → spec/fixtures/99.all_features_speed_ratchet.headers} +0 -0
  160. data/{test/tests/45.all_features_speed_ratchet.json → spec/fixtures/99.all_features_speed_ratchet.json} +0 -0
  161. data/{test/tests/45.all_features_speed_ratchet.lmd → spec/fixtures/99.all_features_speed_ratchet.lmd} +0 -0
  162. data/{test/tests/45.all_features_speed_ratchet.md → spec/fixtures/99.all_features_speed_ratchet.md} +0 -0
  163. data/{test/tests → spec/fixtures}/partials/z.partial1 +0 -0
  164. data/{test/tests → spec/fixtures}/partials/z.partial2 +0 -0
  165. data/spec/spec_helper.rb +18 -0
  166. data/spec/support/samples_helper.rb +60 -0
  167. data/spec/unit/legal_markdown_spec.rb +76 -0
  168. data/spec/unit/legal_to_markdown/legal_to_markdown_spec.rb +35 -0
  169. data/spec/unit/legal_to_markdown/make_yaml_frontmatter_spec.rb +15 -0
  170. metadata +335 -260
  171. data/test/legal_markdown_test.rb +0 -130
  172. data/test/tests/45.all_features_speed_ratchet.debug +0 -550
  173. data/test/tests/46.throw_some_erroris.headers +0 -209
  174. data/test/tests/46.throw_some_erroris.json +0 -1
  175. data/test/tests/46.throw_some_erroris.lmd +0 -107
  176. data/test/tests/46.throw_some_erroris.md +0 -94
@@ -0,0 +1,39 @@
1
+ ---
2
+
3
+ # Mixins
4
+ this_does_not_exist: "1235"
5
+
6
+ # Optional Clauses
7
+ another_irrelevancy: true
8
+
9
+ # Structured Headers
10
+ something_irrelevant: "l., ll."
11
+
12
+ ---
13
+
14
+ THIS AGREEMENT, ALSO KNOWN AS THE [{{tit_op_agree}} OPERATING AGREEMENT][{{tit_by_laws}} BY-LAWS] OF THE COMPANY is entered into as of the date shown below by and between {{party1_full}} {{party1_short}}, {{party2_full}} {{party2_short}} [{{is_three_party}} , {{party3_full}} {{party3_short}}]. {{party1}} is [{{party1_indivdual}} an individual with an address of {{party1_address}}] [{{party1_group}} a {{party1_type}} with an address of {{party1_address}}, registered under the laws of {{party1_reg}}, operating in and therefore subject to the laws of {{party1_reg}}, and represented by {{party1_rep}}]. {{party2}} is [{{party2_indivdual}} an individual with an address of {{party2_address}}] [{{party2_group}} a {{party2_type}} with an address of {{party2_address}}, registered under the laws of {{party2_reg}}, operating in and therefore subject to the laws of {{party2_reg}}, and represented by {{party2_rep}}]. [{{is_three_party}} {{party3}} is [{{party3_indivdual}} an individual with an address of {{party3_address}}] [{{party3_group}} a {{party3_type}} with an address of {{party3_address}}, registered under the laws of {{party3_reg}}, operating in and therefore subject to the laws of {{party3_reg}}, and represented by {{party3_rep}}].] These individuals are referred to individually as a Member and collectively as the Shareholders. This agreement is entered into with reference to the following facts:
15
+
16
+ The Shareholders desire to form a [{{somaliland}} [{{co_private}} private][{{co_public}} public] company limited by shares][{{tennessee}} Limited Liability Company that is [{{member_managed}} managed by its members][{{director_managed}} managed by its directors][{{manager_managed}} managed by a manager]] ("Company") with a share capital under [{{tennessee}} Tennessee Revised Limited Liability Company Act (2005) 48 T.C.A. 249 *et seq*, as amended] [{{somaliland}} the Company's Act of Somaliland (No. 25, 2004, *as amended*)] [{{other_jurisdiction}} {{regulating_act}}] (the "Act"). The Shareholders enter into this Agreement [{{tit_by_laws}} ("Bylaws")] to provide for the governance of the Company, the conduct of the Company's business, and to specify their relative rights and obligations.
17
+
18
+ NOW, THEREFORE, in consideration of the promises and the mutual covenants contained herein, the parties hereto agree to and do associate themselves solely and exclusively for the purposes and upon the terms and conditions set forth herein.
19
+
20
+ ```
21
+ l. |form| Formation
22
+ ll. Formation*. The undersigned [{{prior_formation}} have formed][{{not_formed}} will form] a [{{co_private}} Private][{{co_public}} Public] Company, Limited by Shares under the laws of {{jurisdiction}} [{{prior_formation}} with a registration number of: {{co_reg}}]. The Company can sue and be sued on its own name, the Company is independent from the Shareholders and all related persons.
23
+ ll. Name*. The name of this Company is {{co_name}} (the "Company"). Only the Shareholders of the Company can change the name of the Company, by vote of more than 70% of all Shareholders currently active at the time a motion to change the name of the Company is brought to the Shareholders in an annual or special meeting called for such a purpose.
24
+ ll. Registered Office*. The registered office of the Company in {{jurisdiction}} shall be as set forth in the Articles of Incorporation of the Company or as otherwise designated by the Board of Directors of the Company.
25
+ ll. Other Offices*. The company may also open and maintain an office or principal place of business at such place as may be fixed by the Board of Directors, and may also have offices at such other places, either within or outside of {{jurisdiction}}, as the Board of Directors may from time to time determine in |form|.
26
+ l. Shareholders Meetings
27
+ ll. Place of Meetings*. Meetings of the Shareholders of the Company may be held at such place, either within or outside of {{jurisdiction}}, as may be determined from time to time by the Board of Directors. The Board of Directors may, in its sole discretion, determine that the meeting shall not be held at any place, but may instead be held solely by means of remote communication.
28
+ ll. Annual Meeting*. The Annual Meeting of the Shareholders of the Company, for the purpose of election of Directors and for such other business as may lawfully come before it, shall be held on such date and at such time as may be designated from time to time by the Board of Directors. Nominations of persons for election to the Board of Directors of the Company and the proposal of business to be considered by the Shareholders may be made at an Annual Meeting of Shareholders:
29
+ lll. pursuant to the Company's notice of meeting of Shareholders;
30
+ lll. by or at the direction of the Board of Directors;
31
+ lll. |xref2| by any Shareholder of the Company who was a Shareholder of record at the time when the Board sent notice of the Annual Meeting, and who is not otherwise barred from voting at the meeting.
32
+ ll. Notice of Annual Meetings*. Except as otherwise provided by the Act, notice shall be provided by electronic transmission. Such Notice of each Annual Meeting of Shareholders shall be given not less than ten (10) nor more than sixty (60) days before the date of the meeting to the electronic address provided by each Shareholder entitled to vote at such meeting. Such notice shall specify the place, if any, date and hour, and the means of remote communications, if any, by which Shareholders and proxyholders may be deemed to be present in person and vote at any such meeting in |xref2|.
33
+ ll. Agenda of the Annual Meeting*. At an Annual Meeting of the Shareholders, only such business shall be conducted as shall have been properly brought before the meeting. For nominations or other business to be properly brought before an Annual Meeting by a Shareholder, the Shareholder must submit written notice of the business or nomination to the Board a minimum of ten (10) days prior to the Annual Meeting via electronic communication. Any notice of business or nomination that is not received by the Board a minimum of ten (10) days prior to the Annual Meeting shall not be considered by the Board nor added to the business or nominations tabled for discussion at the Annual Meeting, except as otherwise provided in the Act.
34
+ ll. Special Meetings*. Special meetings of the Shareholders of the Company may be called, for any purpose or purposes, by the Chairperson of the Board of Directors, by the Board of Directors pursuant to a resolution adopted by a majority of the total number of authorized Directors or by the holders of shares entitled to cast not less than forty percent (40%) of the votes at the meeting, and shall be held at such place, on such date, and at such time as the Board shall fix.
35
+ ll. Notice of Special Meetings*. If a Special Meeting is properly called by any person or persons other than the Board of Directors, the request shall be in writing, specifying the general nature of the business proposed to be transacted, and shall be delivered electronically to the Board. Upon receipt of the notice, the Board shall determine if the notice was valid as it was given by those authorized under this Agreement to call a Special Meeting. The Board shall call a meeting within sixty (60) days after receipt of notice, unless the Board has determined that the notice was invalid. The provisions of the Notice of Annual Meetings shall apply to Special Meetings.
36
+ ll. Agenda of Special Meetings*. No business may be transacted at such special meeting otherwise than specified in such notice.
37
+ l. Amendments
38
+ ll. Amendments*. [{{dirs_can_amend_bylaws}} The Board of Directors is expressly empowered to adopt, amend or repeal [{{tit_by_laws}} these Bylaws] [{{tit_op_agree}} this Agreement].] The Shareholders shall [{{dirs_can_amend_bylaws}} also ]have power to adopt, amend or repeal [{{tit_by_laws}} these Bylaws][{{tit_op_agree}} this Agreement][{{shares_in_classes}} ; provided, however, that, in addition to any vote of the holders of any class or series of stock of the Company required by the Act, such action by Shareholders shall require the affirmative vote of the holders of at least a majority of the voting power of all of the then-outstanding shares of the capital stock of the Company entitled to vote generally in the election of Directors, voting together as a single class].
39
+ ```
@@ -0,0 +1,26 @@
1
+ THIS AGREEMENT, ALSO KNOWN AS THE [{{tit_op_agree}} OPERATING AGREEMENT][{{tit_by_laws}} BY-LAWS] OF THE COMPANY is entered into as of the date shown below by and between {{party1_full}} {{party1_short}}, {{party2_full}} {{party2_short}} [{{is_three_party}} , {{party3_full}} {{party3_short}}]. {{party1}} is [{{party1_indivdual}} an individual with an address of {{party1_address}}] [{{party1_group}} a {{party1_type}} with an address of {{party1_address}}, registered under the laws of {{party1_reg}}, operating in and therefore subject to the laws of {{party1_reg}}, and represented by {{party1_rep}}]. {{party2}} is [{{party2_indivdual}} an individual with an address of {{party2_address}}] [{{party2_group}} a {{party2_type}} with an address of {{party2_address}}, registered under the laws of {{party2_reg}}, operating in and therefore subject to the laws of {{party2_reg}}, and represented by {{party2_rep}}]. [{{is_three_party}} {{party3}} is [{{party3_indivdual}} an individual with an address of {{party3_address}}] [{{party3_group}} a {{party3_type}} with an address of {{party3_address}}, registered under the laws of {{party3_reg}}, operating in and therefore subject to the laws of {{party3_reg}}, and represented by {{party3_rep}}].] These individuals are referred to individually as a Member and collectively as the Shareholders. This agreement is entered into with reference to the following facts:
2
+
3
+ The Shareholders desire to form a [{{somaliland}} [{{co_private}} private][{{co_public}} public] company limited by shares][{{tennessee}} Limited Liability Company that is [{{member_managed}} managed by its members][{{director_managed}} managed by its directors][{{manager_managed}} managed by a manager]] ("Company") with a share capital under [{{tennessee}} Tennessee Revised Limited Liability Company Act (2005) 48 T.C.A. 249 *et seq*, as amended] [{{somaliland}} the Company's Act of Somaliland (No. 25, 2004, *as amended*)] [{{other_jurisdiction}} {{regulating_act}}] (the "Act"). The Shareholders enter into this Agreement [{{tit_by_laws}} ("Bylaws")] to provide for the governance of the Company, the conduct of the Company's business, and to specify their relative rights and obligations.
4
+
5
+ NOW, THEREFORE, in consideration of the promises and the mutual covenants contained herein, the parties hereto agree to and do associate themselves solely and exclusively for the purposes and upon the terms and conditions set forth herein.
6
+
7
+ ```
8
+ l. |form| Formation
9
+ ll. Formation*. The undersigned [{{prior_formation}} have formed][{{not_formed}} will form] a [{{co_private}} Private][{{co_public}} Public] Company, Limited by Shares under the laws of {{jurisdiction}} [{{prior_formation}} with a registration number of: {{co_reg}}]. The Company can sue and be sued on its own name, the Company is independent from the Shareholders and all related persons.
10
+ ll. Name*. The name of this Company is {{co_name}} (the "Company"). Only the Shareholders of the Company can change the name of the Company, by vote of more than 70% of all Shareholders currently active at the time a motion to change the name of the Company is brought to the Shareholders in an annual or special meeting called for such a purpose.
11
+ ll. Registered Office*. The registered office of the Company in {{jurisdiction}} shall be as set forth in the Articles of Incorporation of the Company or as otherwise designated by the Board of Directors of the Company.
12
+ ll. Other Offices*. The company may also open and maintain an office or principal place of business at such place as may be fixed by the Board of Directors, and may also have offices at such other places, either within or outside of {{jurisdiction}}, as the Board of Directors may from time to time determine in |form|.
13
+ l. Shareholders Meetings
14
+ ll. Place of Meetings*. Meetings of the Shareholders of the Company may be held at such place, either within or outside of {{jurisdiction}}, as may be determined from time to time by the Board of Directors. The Board of Directors may, in its sole discretion, determine that the meeting shall not be held at any place, but may instead be held solely by means of remote communication.
15
+ ll. Annual Meeting*. The Annual Meeting of the Shareholders of the Company, for the purpose of election of Directors and for such other business as may lawfully come before it, shall be held on such date and at such time as may be designated from time to time by the Board of Directors. Nominations of persons for election to the Board of Directors of the Company and the proposal of business to be considered by the Shareholders may be made at an Annual Meeting of Shareholders:
16
+ lll. pursuant to the Company's notice of meeting of Shareholders;
17
+ lll. by or at the direction of the Board of Directors;
18
+ lll. |xref2| by any Shareholder of the Company who was a Shareholder of record at the time when the Board sent notice of the Annual Meeting, and who is not otherwise barred from voting at the meeting.
19
+ ll. Notice of Annual Meetings*. Except as otherwise provided by the Act, notice shall be provided by electronic transmission. Such Notice of each Annual Meeting of Shareholders shall be given not less than ten (10) nor more than sixty (60) days before the date of the meeting to the electronic address provided by each Shareholder entitled to vote at such meeting. Such notice shall specify the place, if any, date and hour, and the means of remote communications, if any, by which Shareholders and proxyholders may be deemed to be present in person and vote at any such meeting in |xref2|.
20
+ ll. Agenda of the Annual Meeting*. At an Annual Meeting of the Shareholders, only such business shall be conducted as shall have been properly brought before the meeting. For nominations or other business to be properly brought before an Annual Meeting by a Shareholder, the Shareholder must submit written notice of the business or nomination to the Board a minimum of ten (10) days prior to the Annual Meeting via electronic communication. Any notice of business or nomination that is not received by the Board a minimum of ten (10) days prior to the Annual Meeting shall not be considered by the Board nor added to the business or nominations tabled for discussion at the Annual Meeting, except as otherwise provided in the Act.
21
+ ll. Special Meetings*. Special meetings of the Shareholders of the Company may be called, for any purpose or purposes, by the Chairperson of the Board of Directors, by the Board of Directors pursuant to a resolution adopted by a majority of the total number of authorized Directors or by the holders of shares entitled to cast not less than forty percent (40%) of the votes at the meeting, and shall be held at such place, on such date, and at such time as the Board shall fix.
22
+ ll. Notice of Special Meetings*. If a Special Meeting is properly called by any person or persons other than the Board of Directors, the request shall be in writing, specifying the general nature of the business proposed to be transacted, and shall be delivered electronically to the Board. Upon receipt of the notice, the Board shall determine if the notice was valid as it was given by those authorized under this Agreement to call a Special Meeting. The Board shall call a meeting within sixty (60) days after receipt of notice, unless the Board has determined that the notice was invalid. The provisions of the Notice of Annual Meetings shall apply to Special Meetings.
23
+ ll. Agenda of Special Meetings*. No business may be transacted at such special meeting otherwise than specified in such notice.
24
+ l. Amendments
25
+ ll. Amendments*. [{{dirs_can_amend_bylaws}} The Board of Directors is expressly empowered to adopt, amend or repeal [{{tit_by_laws}} these Bylaws] [{{tit_op_agree}} this Agreement].] The Shareholders shall [{{dirs_can_amend_bylaws}} also ]have power to adopt, amend or repeal [{{tit_by_laws}} these Bylaws][{{tit_op_agree}} this Agreement][{{shares_in_classes}} ; provided, however, that, in addition to any vote of the holders of any class or series of stock of the Company required by the Act, such action by Shareholders shall require the affirmative vote of the holders of at least a majority of the voting power of all of the then-outstanding shares of the capital stock of the Company entitled to vote generally in the election of Directors, voting together as a single class].
26
+ ```
@@ -0,0 +1,60 @@
1
+ ---
2
+
3
+ # Optional Clauses
4
+ test09: "true"
5
+ test1: "false"
6
+ test4: "true"
7
+ test_5: "true"
8
+ test_7: "false"
9
+ test_78: "false"
10
+
11
+ # Structured Headers
12
+ level-1: "Article 1."
13
+ level-2: "Section 1."
14
+ level-3: "1."
15
+
16
+ # Properties
17
+ no-indent: "l., ll., lll."
18
+ no-reset: ""
19
+ level-style: ""
20
+
21
+ # Document Meta-Data
22
+ meta-yaml-output:
23
+ title: asdf
24
+ author: asdqwer
25
+ meta-json-output:
26
+ title: asdf
27
+ author: asdqwer
28
+
29
+ ---
30
+
31
+ # TEST 4
32
+
33
+ ```
34
+ l. Provision for Article 1.
35
+ ll. Provision for Section 1.1.
36
+ ll. Provision for 1.1.1.
37
+ lll. [{{test_7}} Provision] for 1.1.2.
38
+ lll. Provision for Section 1.2.
39
+ lll. Provision for 1.2.1.
40
+ l. Provision for 1.2.2.
41
+ ll. Profivis asl;jksfd;lg; lkshflksjdh
42
+ ll. asd;flkajsdf;lkj
43
+ lll. ;alsdkfjasd;flkajsd
44
+ [{{test4}}ll. as;dlfkjasd;flakjsdll.]
45
+ lll. a;lsdfkjasd;lfkj
46
+ lll. a;sdlfkajsd;flk
47
+ l. as;dlfkajsd;flkj
48
+ ll. a;sldfkajsd;
49
+ lll. a;sldfkjasd;flkajs
50
+ lll. a;lsdfk [{{test_5}} ajsd;lfkj]
51
+ lll. a;sdlfkajsd;flkajs
52
+ lll. as;dlfkjasd;lfkjs
53
+ ll. Lorem ipsum [{{test09}} dolor sit amet,
54
+ consectetur adipisicing] elit, sed do eiusmod
55
+ l. tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
56
+ [{{test1}} ll. quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]
57
+ lll. consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
58
+ lll. cillum dolore eu fugiat [{{test_78}} nulla pariatur. Excepteur sint occaecat cupidatat non
59
+ proident, sunt in culpa qui] officia deserunt mollit anim id est laborum.
60
+ ```
@@ -0,0 +1,477 @@
1
+ {
2
+ "id": "042c0725527c77bb4551c186559435e9",
3
+ "nodes": {
4
+ "document": {
5
+ "title": "asdf",
6
+ "author": "asdqwer",
7
+ "abstract": "",
8
+ "views": [
9
+ "content"
10
+ ]
11
+ },
12
+ "provision:82c1a1dd77c43e1b1dae1422825a2081": {
13
+ "id": "provision:82c1a1dd77c43e1b1dae1422825a2081",
14
+ "type": "provision",
15
+ "data": {
16
+ "level": "1",
17
+ "provision_reference": "Article 1.",
18
+ "provision_text": "Provision for Article 1.",
19
+ "citation": "",
20
+ "substitution": [
21
+ "type0",
22
+ "Article ",
23
+ "",
24
+ "5",
25
+ ".",
26
+ null,
27
+ ""
28
+ ]
29
+ }
30
+ },
31
+ "provision:a8897b508e9b9db4ef83c43363a8f641": {
32
+ "id": "provision:a8897b508e9b9db4ef83c43363a8f641",
33
+ "type": "provision",
34
+ "data": {
35
+ "level": "2",
36
+ "provision_reference": "Section 1.",
37
+ "provision_text": "Provision for Section 1.1.",
38
+ "citation": "",
39
+ "substitution": [
40
+ "type0",
41
+ "Section ",
42
+ "",
43
+ "1",
44
+ ".",
45
+ null,
46
+ ""
47
+ ]
48
+ }
49
+ },
50
+ "provision:681a5b88048c60800e7957e2c73a9b42": {
51
+ "id": "provision:681a5b88048c60800e7957e2c73a9b42",
52
+ "type": "provision",
53
+ "data": {
54
+ "level": "2",
55
+ "provision_reference": "Section 2.",
56
+ "provision_text": "Provision for 1.1.1.",
57
+ "citation": "",
58
+ "substitution": [
59
+ "type0",
60
+ "Section ",
61
+ "",
62
+ "1",
63
+ ".",
64
+ null,
65
+ ""
66
+ ]
67
+ }
68
+ },
69
+ "provision:07305cb512a4621184dd592b3c170e0d": {
70
+ "id": "provision:07305cb512a4621184dd592b3c170e0d",
71
+ "type": "provision",
72
+ "data": {
73
+ "level": "3",
74
+ "provision_reference": "1.",
75
+ "provision_text": "for 1.1.2.",
76
+ "citation": "",
77
+ "substitution": [
78
+ "type0",
79
+ "",
80
+ "",
81
+ "2",
82
+ ".",
83
+ null,
84
+ ""
85
+ ]
86
+ }
87
+ },
88
+ "provision:b90b322a274413a59b17a64a0b625228": {
89
+ "id": "provision:b90b322a274413a59b17a64a0b625228",
90
+ "type": "provision",
91
+ "data": {
92
+ "level": "3",
93
+ "provision_reference": "2.",
94
+ "provision_text": "Provision for Section 1.2.",
95
+ "citation": "",
96
+ "substitution": [
97
+ "type0",
98
+ "",
99
+ "",
100
+ "2",
101
+ ".",
102
+ null,
103
+ ""
104
+ ]
105
+ }
106
+ },
107
+ "provision:d67a3a2a61c257a55a9302c3450e05c3": {
108
+ "id": "provision:d67a3a2a61c257a55a9302c3450e05c3",
109
+ "type": "provision",
110
+ "data": {
111
+ "level": "3",
112
+ "provision_reference": "3.",
113
+ "provision_text": "Provision for 1.2.1.",
114
+ "citation": "",
115
+ "substitution": [
116
+ "type0",
117
+ "",
118
+ "",
119
+ "2",
120
+ ".",
121
+ null,
122
+ ""
123
+ ]
124
+ }
125
+ },
126
+ "provision:d43edf77b6fe30b2e2c2d7fce2a2d303": {
127
+ "id": "provision:d43edf77b6fe30b2e2c2d7fce2a2d303",
128
+ "type": "provision",
129
+ "data": {
130
+ "level": "1",
131
+ "provision_reference": "Article 2.",
132
+ "provision_text": "Provision for 1.2.2.",
133
+ "citation": "",
134
+ "substitution": [
135
+ "type0",
136
+ "Article ",
137
+ "",
138
+ "5",
139
+ ".",
140
+ null,
141
+ ""
142
+ ]
143
+ }
144
+ },
145
+ "provision:2c75e8290ff1c46b78746727399ebb45": {
146
+ "id": "provision:2c75e8290ff1c46b78746727399ebb45",
147
+ "type": "provision",
148
+ "data": {
149
+ "level": "2",
150
+ "provision_reference": "Section 1.",
151
+ "provision_text": "Profivis asl;jksfd;lg; lkshflksjdh",
152
+ "citation": "",
153
+ "substitution": [
154
+ "type0",
155
+ "Section ",
156
+ "",
157
+ "1",
158
+ ".",
159
+ null,
160
+ ""
161
+ ]
162
+ }
163
+ },
164
+ "provision:cef46981b3e2dda8c5a8cb44bea7e9d7": {
165
+ "id": "provision:cef46981b3e2dda8c5a8cb44bea7e9d7",
166
+ "type": "provision",
167
+ "data": {
168
+ "level": "2",
169
+ "provision_reference": "Section 2.",
170
+ "provision_text": "asd;flkajsdf;lkj",
171
+ "citation": "",
172
+ "substitution": [
173
+ "type0",
174
+ "Section ",
175
+ "",
176
+ "1",
177
+ ".",
178
+ null,
179
+ ""
180
+ ]
181
+ }
182
+ },
183
+ "provision:d4ed3b303c048b86e1804b7594fdad73": {
184
+ "id": "provision:d4ed3b303c048b86e1804b7594fdad73",
185
+ "type": "provision",
186
+ "data": {
187
+ "level": "3",
188
+ "provision_reference": "1.",
189
+ "provision_text": ";alsdkfjasd;flkajsd",
190
+ "citation": "",
191
+ "substitution": [
192
+ "type0",
193
+ "",
194
+ "",
195
+ "2",
196
+ ".",
197
+ null,
198
+ ""
199
+ ]
200
+ }
201
+ },
202
+ "provision:f4ee8a4133a44e8f8d51808a982a369a": {
203
+ "id": "provision:f4ee8a4133a44e8f8d51808a982a369a",
204
+ "type": "provision",
205
+ "data": {
206
+ "level": "2",
207
+ "provision_reference": "Section 3.",
208
+ "provision_text": "as;dlfkjasd;flakjsdll.",
209
+ "citation": "",
210
+ "substitution": [
211
+ "type0",
212
+ "Section ",
213
+ "",
214
+ "1",
215
+ ".",
216
+ null,
217
+ ""
218
+ ]
219
+ }
220
+ },
221
+ "provision:4241090559d85f00210d4db5a5d4750e": {
222
+ "id": "provision:4241090559d85f00210d4db5a5d4750e",
223
+ "type": "provision",
224
+ "data": {
225
+ "level": "3",
226
+ "provision_reference": "1.",
227
+ "provision_text": "a;lsdfkjasd;lfkj",
228
+ "citation": "",
229
+ "substitution": [
230
+ "type0",
231
+ "",
232
+ "",
233
+ "2",
234
+ ".",
235
+ null,
236
+ ""
237
+ ]
238
+ }
239
+ },
240
+ "provision:694e4fcbe166ee07501b196525c5ab66": {
241
+ "id": "provision:694e4fcbe166ee07501b196525c5ab66",
242
+ "type": "provision",
243
+ "data": {
244
+ "level": "3",
245
+ "provision_reference": "2.",
246
+ "provision_text": "a;sdlfkajsd;flk",
247
+ "citation": "",
248
+ "substitution": [
249
+ "type0",
250
+ "",
251
+ "",
252
+ "2",
253
+ ".",
254
+ null,
255
+ ""
256
+ ]
257
+ }
258
+ },
259
+ "provision:e0c8fbcdaeb6d5d67ff8a9bf3cab045d": {
260
+ "id": "provision:e0c8fbcdaeb6d5d67ff8a9bf3cab045d",
261
+ "type": "provision",
262
+ "data": {
263
+ "level": "1",
264
+ "provision_reference": "Article 3.",
265
+ "provision_text": "as;dlfkajsd;flkj",
266
+ "citation": "",
267
+ "substitution": [
268
+ "type0",
269
+ "Article ",
270
+ "",
271
+ "5",
272
+ ".",
273
+ null,
274
+ ""
275
+ ]
276
+ }
277
+ },
278
+ "provision:c50718f28c48c65d158724be16abd9fd": {
279
+ "id": "provision:c50718f28c48c65d158724be16abd9fd",
280
+ "type": "provision",
281
+ "data": {
282
+ "level": "2",
283
+ "provision_reference": "Section 1.",
284
+ "provision_text": "a;sldfkajsd;",
285
+ "citation": "",
286
+ "substitution": [
287
+ "type0",
288
+ "Section ",
289
+ "",
290
+ "1",
291
+ ".",
292
+ null,
293
+ ""
294
+ ]
295
+ }
296
+ },
297
+ "provision:153bc8cfe4a17ec3a8093fdf8ca2e4a9": {
298
+ "id": "provision:153bc8cfe4a17ec3a8093fdf8ca2e4a9",
299
+ "type": "provision",
300
+ "data": {
301
+ "level": "3",
302
+ "provision_reference": "1.",
303
+ "provision_text": "a;sldfkjasd;flkajs",
304
+ "citation": "",
305
+ "substitution": [
306
+ "type0",
307
+ "",
308
+ "",
309
+ "2",
310
+ ".",
311
+ null,
312
+ ""
313
+ ]
314
+ }
315
+ },
316
+ "provision:7afef653bfda804a46fbc254203d925b": {
317
+ "id": "provision:7afef653bfda804a46fbc254203d925b",
318
+ "type": "provision",
319
+ "data": {
320
+ "level": "3",
321
+ "provision_reference": "2.",
322
+ "provision_text": "a;lsdfk ajsd;lfkj",
323
+ "citation": "",
324
+ "substitution": [
325
+ "type0",
326
+ "",
327
+ "",
328
+ "2",
329
+ ".",
330
+ null,
331
+ ""
332
+ ]
333
+ }
334
+ },
335
+ "provision:10a78484a9de3e3b3fbe1729815e25cd": {
336
+ "id": "provision:10a78484a9de3e3b3fbe1729815e25cd",
337
+ "type": "provision",
338
+ "data": {
339
+ "level": "3",
340
+ "provision_reference": "3.",
341
+ "provision_text": "a;sdlfkajsd;flkajs",
342
+ "citation": "",
343
+ "substitution": [
344
+ "type0",
345
+ "",
346
+ "",
347
+ "2",
348
+ ".",
349
+ null,
350
+ ""
351
+ ]
352
+ }
353
+ },
354
+ "provision:dcccb22e0196548b5be4026ab0b58b5a": {
355
+ "id": "provision:dcccb22e0196548b5be4026ab0b58b5a",
356
+ "type": "provision",
357
+ "data": {
358
+ "level": "3",
359
+ "provision_reference": "4.",
360
+ "provision_text": "as;dlfkjasd;lfkjs",
361
+ "citation": "",
362
+ "substitution": [
363
+ "type0",
364
+ "",
365
+ "",
366
+ "2",
367
+ ".",
368
+ null,
369
+ ""
370
+ ]
371
+ }
372
+ },
373
+ "provision:b8eebae04e6b52cb41a4721f0f9008b7": {
374
+ "id": "provision:b8eebae04e6b52cb41a4721f0f9008b7",
375
+ "type": "provision",
376
+ "data": {
377
+ "level": "2",
378
+ "provision_reference": "Section 2.",
379
+ "provision_text": "Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit, sed do eiusmod",
380
+ "citation": "",
381
+ "substitution": [
382
+ "type0",
383
+ "Section ",
384
+ "",
385
+ "1",
386
+ ".",
387
+ null,
388
+ ""
389
+ ]
390
+ }
391
+ },
392
+ "provision:2b2aea6f7519a3d0eca2578cf0af27c3": {
393
+ "id": "provision:2b2aea6f7519a3d0eca2578cf0af27c3",
394
+ "type": "provision",
395
+ "data": {
396
+ "level": "1",
397
+ "provision_reference": "Article 4.",
398
+ "provision_text": "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,",
399
+ "citation": "",
400
+ "substitution": [
401
+ "type0",
402
+ "Article ",
403
+ "",
404
+ "5",
405
+ ".",
406
+ null,
407
+ ""
408
+ ]
409
+ }
410
+ },
411
+ "provision:3bcf1956990f746d51c3156b3b8a25c9": {
412
+ "id": "provision:3bcf1956990f746d51c3156b3b8a25c9",
413
+ "type": "provision",
414
+ "data": {
415
+ "level": "3",
416
+ "provision_reference": "1.",
417
+ "provision_text": "consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse",
418
+ "citation": "",
419
+ "substitution": [
420
+ "type0",
421
+ "",
422
+ "",
423
+ "2",
424
+ ".",
425
+ null,
426
+ ""
427
+ ]
428
+ }
429
+ },
430
+ "provision:2c65d5c3e4c7a65ba3a8177fcf5735d5": {
431
+ "id": "provision:2c65d5c3e4c7a65ba3a8177fcf5735d5",
432
+ "type": "provision",
433
+ "data": {
434
+ "level": "3",
435
+ "provision_reference": "2.",
436
+ "provision_text": "cillum dolore eu fugiat officia deserunt mollit anim id est laborum.",
437
+ "citation": "",
438
+ "substitution": [
439
+ "type0",
440
+ "",
441
+ "",
442
+ "2",
443
+ ".",
444
+ null,
445
+ ""
446
+ ]
447
+ }
448
+ },
449
+ "content": {
450
+ "nodes": [
451
+ "provision:82c1a1dd77c43e1b1dae1422825a2081",
452
+ "provision:a8897b508e9b9db4ef83c43363a8f641",
453
+ "provision:681a5b88048c60800e7957e2c73a9b42",
454
+ "provision:07305cb512a4621184dd592b3c170e0d",
455
+ "provision:b90b322a274413a59b17a64a0b625228",
456
+ "provision:d67a3a2a61c257a55a9302c3450e05c3",
457
+ "provision:d43edf77b6fe30b2e2c2d7fce2a2d303",
458
+ "provision:2c75e8290ff1c46b78746727399ebb45",
459
+ "provision:cef46981b3e2dda8c5a8cb44bea7e9d7",
460
+ "provision:d4ed3b303c048b86e1804b7594fdad73",
461
+ "provision:f4ee8a4133a44e8f8d51808a982a369a",
462
+ "provision:4241090559d85f00210d4db5a5d4750e",
463
+ "provision:694e4fcbe166ee07501b196525c5ab66",
464
+ "provision:e0c8fbcdaeb6d5d67ff8a9bf3cab045d",
465
+ "provision:c50718f28c48c65d158724be16abd9fd",
466
+ "provision:153bc8cfe4a17ec3a8093fdf8ca2e4a9",
467
+ "provision:7afef653bfda804a46fbc254203d925b",
468
+ "provision:10a78484a9de3e3b3fbe1729815e25cd",
469
+ "provision:dcccb22e0196548b5be4026ab0b58b5a",
470
+ "provision:b8eebae04e6b52cb41a4721f0f9008b7",
471
+ "provision:2b2aea6f7519a3d0eca2578cf0af27c3",
472
+ "provision:3bcf1956990f746d51c3156b3b8a25c9",
473
+ "provision:2c65d5c3e4c7a65ba3a8177fcf5735d5"
474
+ ]
475
+ }
476
+ }
477
+ }