mradermacher commited on
Commit
6f58500
1 Parent(s): 5f92872

auto-patch README.md

Browse files
Files changed (1) hide show
  1. README.md +264 -0
README.md CHANGED
@@ -1,6 +1,270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <!-- ### quantize_version: 2 -->
2
  <!-- ### output_tensor_quantised: 1 -->
3
  <!-- ### convert_type: hf -->
4
  <!-- ### vocab_type: -->
5
  <!-- ### tags: nicoboss -->
6
  weighted/imatrix quants of https://huggingface.co/alpindale/Llama-3.2-1B
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: alpindale/Llama-3.2-1B
3
+ extra_gated_button_content: Submit
4
+ extra_gated_fields:
5
+ Affiliation: text
6
+ ? By clicking Submit below I accept the terms of the license and acknowledge that
7
+ the information I provide will be collected stored processed and shared in accordance
8
+ with the Meta Privacy Policy
9
+ : checkbox
10
+ Country: country
11
+ Date of birth: date_picker
12
+ First Name: text
13
+ Job title:
14
+ options:
15
+ - Student
16
+ - Research Graduate
17
+ - AI researcher
18
+ - AI developer/engineer
19
+ - Reporter
20
+ - Other
21
+ type: select
22
+ Last Name: text
23
+ geo: ip_location
24
+ extra_gated_prompt: "### LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\n\nLlama 3.2 Version
25
+ Release Date: September 25, 2024\n\n“Agreement” means the terms and conditions for
26
+ use, reproduction, distribution and modification of the Llama Materials set forth
27
+ herein.\n\n“Documentation” means the specifications, manuals and documentation accompanying
28
+ Llama 3.2 distributed by Meta at https://llama.meta.com/doc/overview.\n\n“Licensee”
29
+ or “you” means you, or your employer or any other person or entity (if you are entering
30
+ into this Agreement on such person or entity’s behalf), of the age required under
31
+ applicable laws, rules or regulations to provide legal consent and that has legal
32
+ authority to bind your employer or such other person or entity if you are entering
33
+ in this Agreement on their behalf.\n\n“Llama 3.2” means the foundational large language
34
+ models and software and algorithms, including machine-learning model code, trained
35
+ model weights, inference-enabling code, training-enabling code, fine-tuning enabling
36
+ code and other elements of the foregoing distributed by Meta at https://www.llama.com/llama-downloads.\n\n“Llama
37
+ Materials” means, collectively, Meta’s proprietary Llama 3.2 and Documentation (and
38
+ \ any portion thereof) made available under this Agreement.\n\n“Meta” or “we” means
39
+ Meta Platforms Ireland Limited (if you are located in or, if you are an entity,
40
+ your principal place of business is in the EEA or Switzerland) and Meta Platforms,
41
+ Inc. (if you are located outside of the EEA or Switzerland). \n\nBy clicking “I
42
+ Accept” below or by using or distributing any portion or element of the Llama Materials,
43
+ you agree to be bound by this Agreement.\n\n1. License Rights and Redistribution.\na.
44
+ Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable and
45
+ royalty-free limited license under Meta’s intellectual property or other rights
46
+ \ owned by Meta embodied in the Llama Materials to use, reproduce, distribute, copy,
47
+ create derivative works of, and make modifications to the Llama Materials. \nb.
48
+ Redistribution and Use. \ni. If you distribute or make available the Llama Materials
49
+ (or any derivative works thereof), or a product or service (including another AI
50
+ model) that contains any of them, you shall (A) provide a copy of this Agreement
51
+ with any such Llama Materials; and (B) prominently display “Built with Llama” on
52
+ a related website, user interface, blogpost, about page, or product documentation.
53
+ If you use the Llama Materials or any outputs or results of the Llama Materials
54
+ to create, train, fine tune, or otherwise improve an AI model, which is distributed
55
+ or made available, you shall also include “Llama” at the beginning of any such AI
56
+ model name.\nii. If you receive Llama Materials, or any derivative works thereof,
57
+ from a Licensee as part of an integrated end user product, then Section 2 of this
58
+ Agreement will not apply to you. \niii. You must retain in all copies of the Llama
59
+ Materials that you distribute the following attribution notice within a “Notice”
60
+ text file distributed as a part of such copies: “Llama 3.2 is licensed under the
61
+ Llama 3.2 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved.”\niv.
62
+ Your use of the Llama Materials must comply with applicable laws and regulations
63
+ (including trade compliance laws and regulations) and adhere to the Acceptable Use
64
+ Policy for the Llama Materials (available at https://www.llama.com/llama3_2/use-policy),
65
+ which is hereby incorporated by reference into this Agreement.\n \n2. Additional
66
+ Commercial Terms. If, on the Llama 3.2 version release date, the monthly active
67
+ users of the products or services made available by or for Licensee, or Licensee’s
68
+ affiliates, is greater than 700 million monthly active users in the preceding calendar
69
+ month, you must request a license from Meta, which Meta may grant to you in its
70
+ sole discretion, and you are not authorized to exercise any of the rights under
71
+ this Agreement unless or until Meta otherwise expressly grants you such rights.\n3.
72
+ Disclaimer of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND
73
+ ANY OUTPUT AND RESULTS THEREFROM ARE PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES
74
+ OF ANY KIND, AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,
75
+ INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY,
76
+ OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING
77
+ THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY
78
+ RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\n4.
79
+ Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER
80
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY,
81
+ OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, FOR ANY LOST PROFITS OR ANY INDIRECT,
82
+ SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, EVEN IF META
83
+ OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF ANY OF THE FOREGOING.\n5.
84
+ Intellectual Property.\na. No trademark licenses are granted under this Agreement,
85
+ and in connection with the Llama Materials, neither Meta nor Licensee may use any
86
+ name or mark owned by or associated with the other or any of its affiliates, except
87
+ as required for reasonable and customary use in describing and redistributing the
88
+ Llama Materials or as set forth in this Section 5(a). Meta hereby grants you a
89
+ license to use “Llama” (the “Mark”) solely as required to comply with the last
90
+ sentence of Section 1.b.i. You will comply with Meta’s brand guidelines (currently
91
+ accessible at https://about.meta.com/brand/resources/meta/company-brand/). All
92
+ goodwill arising out of your use of the Mark will inure to the benefit of Meta.\nb.
93
+ Subject to Meta’s ownership of Llama Materials and derivatives made by or for Meta,
94
+ with respect to any derivative works and modifications of the Llama Materials that
95
+ are made by you, as between you and Meta, you are and will be the owner of such
96
+ derivative works and modifications.\nc. If you institute litigation or other proceedings
97
+ against Meta or any entity (including a cross-claim or counterclaim in a lawsuit)
98
+ alleging that the Llama Materials or Llama 3.2 outputs or results, or any portion
99
+ of any of the foregoing, constitutes infringement of intellectual property or other
100
+ rights owned or licensable by you, then any licenses granted to you under this Agreement
101
+ shall terminate as of the date such litigation or claim is filed or instituted.
102
+ You will indemnify and hold harmless Meta from and against any claim by any third
103
+ party arising out of or related to your use or distribution of the Llama Materials.\n6.
104
+ Term and Termination. The term of this Agreement will commence upon your acceptance
105
+ of this Agreement or access to the Llama Materials and will continue in full force
106
+ and effect until terminated in accordance with the terms and conditions herein.
107
+ Meta may terminate this Agreement if you are in breach of any term or condition
108
+ of this Agreement. Upon termination of this Agreement, you shall delete and cease
109
+ use of the Llama Materials. Sections 3, 4 and 7 shall survive the termination of
110
+ this Agreement. \n7. Governing Law and Jurisdiction. This Agreement will be governed
111
+ and construed under the laws of the State of California without regard to choice
112
+ of law principles, and the UN Convention on Contracts for the International Sale
113
+ of Goods does not apply to this Agreement. The courts of California shall have exclusive
114
+ jurisdiction of any dispute arising out of this Agreement. \n### Llama 3.2 Acceptable
115
+ Use Policy\nMeta is committed to promoting safe and fair use of its tools and features,
116
+ including Llama 3.2. If you access or use Llama 3.2, you agree to this Acceptable
117
+ Use Policy (“**Policy**”). The most recent copy of this policy can be found at
118
+ [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\n####
119
+ Prohibited Uses\nWe want everyone to use Llama 3.2 safely and responsibly. You agree
120
+ you will not use, or allow others to use, Llama 3.2 to:\n1. Violate the law or others’
121
+ rights, including to:\n 1. Engage in, promote, generate, contribute to, encourage,
122
+ plan, incite, or further illegal or unlawful activity or content, such as:\n 1.
123
+ Violence or terrorism\n 2. Exploitation or harm to children, including the
124
+ solicitation, creation, acquisition, or dissemination of child exploitative content
125
+ or failure to report Child Sexual Abuse Material\n 3. Human trafficking,
126
+ exploitation, and sexual violence\n 4. The illegal distribution of information
127
+ or materials to minors, including obscene materials, or failure to employ legally
128
+ required age-gating in connection with such information or materials.\n 5.
129
+ Sexual solicitation\n 6. Any other criminal activity\n 1. Engage in, promote,
130
+ incite, or facilitate the harassment, abuse, threatening, or bullying of individuals
131
+ or groups of individuals\n 2. Engage in, promote, incite, or facilitate discrimination
132
+ or other unlawful or harmful conduct in the provision of employment, employment
133
+ benefits, credit, housing, other economic benefits, or other essential goods and
134
+ services\n 3. Engage in the unauthorized or unlicensed practice of any profession
135
+ including, but not limited to, financial, legal, medical/health, or related professional
136
+ practices\n 4. Collect, process, disclose, generate, or infer private or sensitive
137
+ information about individuals, including information about individuals’ identity,
138
+ health, or demographic information, unless you have obtained the right to do so
139
+ in accordance with applicable law\n 5. Engage in or facilitate any action or
140
+ generate any content that infringes, misappropriates, or otherwise violates any
141
+ third-party rights, including the outputs or results of any products or services
142
+ using the Llama Materials\n 6. Create, generate, or facilitate the creation of
143
+ malicious code, malware, computer viruses or do anything else that could disable,
144
+ overburden, interfere with or impair the proper working, integrity, operation or
145
+ appearance of a website or computer system\n 7. Engage in any action, or facilitate
146
+ any action, to intentionally circumvent or remove usage restrictions or other safety
147
+ measures, or to enable functionality disabled by Meta \n2. Engage in, promote, incite,
148
+ facilitate, or assist in the planning or development of activities that present
149
+ a risk of death or bodily harm to individuals, including use of Llama 3.2 related
150
+ to the following:\n 8. Military, warfare, nuclear industries or applications,
151
+ espionage, use for materials or activities that are subject to the International
152
+ Traffic Arms Regulations (ITAR) maintained by the United States Department of State
153
+ or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical Weapons
154
+ Convention Implementation Act of 1997\n 9. Guns and illegal weapons (including
155
+ weapon development)\n 10. Illegal drugs and regulated/controlled substances\n
156
+ \ 11. Operation of critical infrastructure, transportation technologies, or heavy
157
+ machinery\n 12. Self-harm or harm to others, including suicide, cutting, and
158
+ eating disorders\n 13. Any content intended to incite or promote violence, abuse,
159
+ or any infliction of bodily harm to an individual\n3. Intentionally deceive or mislead
160
+ others, including use of Llama 3.2 related to the following:\n 14. Generating,
161
+ promoting, or furthering fraud or the creation or promotion of disinformation\n
162
+ \ 15. Generating, promoting, or furthering defamatory content, including the creation
163
+ of defamatory statements, images, or other content\n 16. Generating, promoting,
164
+ or further distributing spam\n 17. Impersonating another individual without consent,
165
+ authorization, or legal right\n 18. Representing that the use of Llama 3.2 or
166
+ outputs are human-generated\n 19. Generating or facilitating false online engagement,
167
+ including fake reviews and other means of fake online engagement \n4. Fail to appropriately
168
+ disclose to end users any known dangers of your AI system 5. Interact with third
169
+ party tools, models, or software designed to generate unlawful content or engage
170
+ in unlawful or harmful conduct and/or represent that the outputs of such tools,
171
+ models, or software are associated with Meta or Llama 3.2\n\nWith respect to any
172
+ multimodal models included in Llama 3.2, the rights granted under Section 1(a) of
173
+ the Llama 3.2 Community License Agreement are not being granted to you if you are
174
+ an individual domiciled in, or a company with a principal place of business in,
175
+ the European Union. This restriction does not apply to end users of a product or
176
+ service that incorporates any such multimodal models.\n\nPlease report any violation
177
+ of this Policy, software “bug,” or other problems that could lead to a violation
178
+ of this Policy through one of the following means:\n\n* Reporting issues with the
179
+ model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues&h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\n*
180
+ Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\n*
181
+ Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\n*
182
+ Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama 3.2:
183
184
+ language:
185
+ - en
186
+ - de
187
+ - fr
188
+ - it
189
+ - pt
190
+ - hi
191
+ - es
192
+ - th
193
+ library_name: transformers
194
+ license: llama3.2
195
+ quantized_by: mradermacher
196
+ tags:
197
+ - facebook
198
+ - meta
199
+ - pytorch
200
+ - llama
201
+ - llama-3
202
+ ---
203
+ ## About
204
+
205
  <!-- ### quantize_version: 2 -->
206
  <!-- ### output_tensor_quantised: 1 -->
207
  <!-- ### convert_type: hf -->
208
  <!-- ### vocab_type: -->
209
  <!-- ### tags: nicoboss -->
210
  weighted/imatrix quants of https://huggingface.co/alpindale/Llama-3.2-1B
211
+
212
+ <!-- provided-files -->
213
+ static quants are available at https://huggingface.co/mradermacher/Llama-3.2-1B-GGUF
214
+ ## Usage
215
+
216
+ If you are unsure how to use GGUF files, refer to one of [TheBloke's
217
+ READMEs](https://huggingface.co/TheBloke/KafkaLM-70B-German-V0.1-GGUF) for
218
+ more details, including on how to concatenate multi-part files.
219
+
220
+ ## Provided Quants
221
+
222
+ (sorted by size, not necessarily quality. IQ-quants are often preferable over similar sized non-IQ quants)
223
+
224
+ | Link | Type | Size/GB | Notes |
225
+ |:-----|:-----|--------:|:------|
226
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ1_S.gguf) | i1-IQ1_S | 0.5 | for the desperate |
227
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ1_M.gguf) | i1-IQ1_M | 0.5 | mostly desperate |
228
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ2_XXS.gguf) | i1-IQ2_XXS | 0.5 | |
229
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ2_XS.gguf) | i1-IQ2_XS | 0.6 | |
230
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ2_S.gguf) | i1-IQ2_S | 0.6 | |
231
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ2_M.gguf) | i1-IQ2_M | 0.6 | |
232
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ3_XXS.gguf) | i1-IQ3_XXS | 0.7 | lower quality |
233
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q2_K.gguf) | i1-Q2_K | 0.7 | IQ3_XXS probably better |
234
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ3_XS.gguf) | i1-IQ3_XS | 0.7 | |
235
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q3_K_S.gguf) | i1-Q3_K_S | 0.7 | IQ3_XS probably better |
236
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ3_S.gguf) | i1-IQ3_S | 0.7 | beats Q3_K* |
237
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ3_M.gguf) | i1-IQ3_M | 0.8 | |
238
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q3_K_M.gguf) | i1-Q3_K_M | 0.8 | IQ3_S probably better |
239
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q3_K_L.gguf) | i1-Q3_K_L | 0.8 | IQ3_M probably better |
240
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-IQ4_XS.gguf) | i1-IQ4_XS | 0.8 | |
241
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_0_4_4.gguf) | i1-Q4_0_4_4 | 0.9 | fast on arm, low quality |
242
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_0_4_8.gguf) | i1-Q4_0_4_8 | 0.9 | fast on arm+i8mm, low quality |
243
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_0_8_8.gguf) | i1-Q4_0_8_8 | 0.9 | fast on arm+sve, low quality |
244
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_0.gguf) | i1-Q4_0 | 0.9 | fast, low quality |
245
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_K_S.gguf) | i1-Q4_K_S | 0.9 | optimal size/speed/quality |
246
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q4_K_M.gguf) | i1-Q4_K_M | 0.9 | fast, recommended |
247
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q5_K_S.gguf) | i1-Q5_K_S | 1.0 | |
248
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q5_K_M.gguf) | i1-Q5_K_M | 1.0 | |
249
+ | [GGUF](https://huggingface.co/mradermacher/Llama-3.2-1B-i1-GGUF/resolve/main/Llama-3.2-1B.i1-Q6_K.gguf) | i1-Q6_K | 1.1 | practically like static Q6_K |
250
+
251
+ Here is a handy graph by ikawrakow comparing some lower-quality quant
252
+ types (lower is better):
253
+
254
+ ![image.png](https://www.nethype.de/huggingface_embed/quantpplgraph.png)
255
+
256
+ And here are Artefact2's thoughts on the matter:
257
+ https://gist.github.com/Artefact2/b5f810600771265fc1e39442288e8ec9
258
+
259
+ ## FAQ / Model Request
260
+
261
+ See https://huggingface.co/mradermacher/model_requests for some answers to
262
+ questions you might have and/or if you want some other model quantized.
263
+
264
+ ## Thanks
265
+
266
+ I thank my company, [nethype GmbH](https://www.nethype.de/), for letting
267
+ me use its servers and providing upgrades to my workstation to enable
268
+ this work in my free time. Additional thanks to [@nicoboss](https://huggingface.co/nicoboss) for giving me access to his private supercomputer, enabling me to provide many more imatrix quants, at much higher quality, than I would otherwise be able to.
269
+
270
+ <!-- end -->