在 Linux 2.6 (i386 架构) 上实现系统调用

Amit Choudhary

2006-10-27

修订历史
版本 1.02006-10-27修订者: ac
正式发布

本 HOWTO 文档描述了关于在 Linux 操作系统中为 i386 架构和 2.6 内核实现系统调用的信息。本文档也提供了关于使用和修改的通用信息,以及对源文件、Makefile 文件和测试用户空间 C 程序的描述。


目录
1. 简介
2. 系统调用
3. 需要修改/创建的文件列表
4. 需要修改的内核文件
5. syscall_table.S
6. unistd.h
7. syscalls.h
8. Makefile
9. 需要创建的新内核文件/目录
10. mycall
11. mycall.c
12. Makefile
13. 用于测试系统调用的新用户空间文件,需要创建
14. testmycall.h (需要创建的新用户空间头文件)
15. testmycall.c (需要创建的新用户空间源文件)
16. _syscallN 宏
17. 测试新的系统调用
18. 问题和建议
19. 版权
20. 许可证

1. 简介

本文档解释了如何在 Linux 2.6 上实现新的系统调用。系统调用被应用程序(用户)程序用于向操作系统请求服务。


2. 系统调用

系统调用被应用程序(用户)程序用于向操作系统请求服务。以下陈述说明了为什么需要系统调用。操作系统可以直接访问系统硬件,但用户程序无法直接访问硬件。这样做是为了让内核能够保护系统安全,免受恶意用户程序的侵害。但是,用户程序经常需要来自硬件的一些信息(例如,来自网络摄像头以显示图片),但它无法直接获取信息。因此,它请求操作系统提供信息。此请求通过使用适当的系统调用来完成。

系统调用在内核模式下执行。每个系统调用都有一个与之关联的数字。此数字传递给内核,内核由此知道发起了哪个系统调用。当用户程序发出系统调用时,它实际上是在调用库例程。库例程通过执行 INT 0x80 汇编指令向 Linux 操作系统发出陷阱。它还使用 EAX 寄存器将系统调用号传递给内核。系统调用的参数也使用其他寄存器(EBX、ECX 等)传递给内核。内核执行系统调用,并使用寄存器将结果返回给用户程序。如果系统调用需要向用户程序提供大量数据,它将使用另一种机制(例如,copy_to_user 调用)。


3. 需要修改/创建的文件列表

假设您的 Linux 源代码根目录是 /usr/src/linux。

需要修改的内核文件如下所列

1. /usr/src/linux/arch/i386/kernel/syscall_table.S

2. /usr/src/linux/include/asm-i386/unistd.h

3. /usr/src/linux/include/linux/syscalls.h

4. /usr/src/linux/Makefile

需要创建的新内核文件/目录如下所列

1. /usr/src/linux/mycall - 目录,将包含我们系统调用的源文件、头文件和 Makefile(您也可以在现有文件中实现您的系统调用)。

2. /usr/src/linux/mycall/mycall.c - 源文件,包含我们的系统调用代码。

3. /usr/src/linux/mycall/Makefile - Makefile

用于测试系统调用的新用户空间文件,需要创建,如下所列

1. testmycall.c – 将调用我们系统调用的源文件。

2. testmycall.h - 头文件。


4. 需要修改的内核文件


5. syscall_table.S

文件完整路径 - /usr/src/linux/arch/i386/kernel/syscall_table.S

此文件包含系统调用名称。

  1. 在此文件末尾添加一行(假设我们的系统调用名称为 mycall)。

  2. 在列表末尾添加 ".long sys_mycall"。


6. unistd.h

文件完整路径 - /usr/src/linux/include/asm-i386/unistd.h

此文件包含系统调用号,当调用系统调用时,该号码通过寄存器 (EAX) 传递给内核。

  1. 在列表末尾添加 "#define __NR_mycall <Last_System_Call_Num + 1>"。

如果此处定义的最后一个系统调用是

"#define __NR_vmsplice316",则添加

"#define __NR_mycall317" 在列表末尾。

  1. 将 "NR_syscalls" 递增 1。因此,如果 NR_syscalls 定义为

"#define NR_syscalls 317",则将其更改为

"#define NR_syscalls 318"


7. syscalls.h

文件完整路径 - /usr/src/linux/include/linux/syscalls.h

此文件包含系统调用的声明。

  1. 在文件末尾添加以下行

"asmlinkage long sys_mycall(int i);"


8. Makefile

文件完整路径 - /usr/src/linux/Makefile

  1. 将 mycall/ 添加到 core-y 中(搜索正则表达式:core-y.*+=)。您将创建此目录。此目录将包含我们系统调用的源文件、头文件和 Makefile。


9. 需要创建的新内核文件/目录


10. mycall

文件完整路径 - /usr/src/linux/mycall

  1. 在 /usr/src/linux 中创建一个新目录,并将其命名为 "mycall"。


11. mycall.c

文件完整路径 - /usr/src/linux/mycall/mycall.c

  1. 在目录 "mycall" 中创建一个名为 "mycall.c" 的源文件。mycall.c 将包含我们系统调用的代码。源文件中的系统调用定义将是 asmlinkage long sys_mycall(...){...} 。它应该包含文件 linux/linkage.h。因此,文件 "mycall.c" 将如下所示

/*---mycall.c 文件开始----*/

#include<linux/linkage.h>

asmlinkage long sys_mycall(int i)

{

return i+10;

}

/*---mycall.c 文件结束------*/

什么是 asmlinkage?

Asmlinkage 用于在内核堆栈上查找参数。


12. Makefile

文件完整路径 - /usr/src/linux/mycall/Makefile

目录 "mycall" 中的 Makefile 将只有一行

#####Makefile 开始#####

obj-y := mycall.o

#####Makefile 结束#######


13. 用于测试系统调用的新用户空间文件,需要创建


14. testmycall.h (需要创建的新用户空间头文件)

testmycall.h

  1. 创建一个名为 testmycall.h 的头文件。任何调用我们系统调用的程序都应包含此头文件。

  2. 向其中添加三行

  1. 第 1 行:这是必需的,因为我们需要 _syscall1 的定义。

#include<linux/unistd.h>

  1. 第 2 行:这是必需的,因为我们需要我们系统调用的编号。

#define __NR_mycall 317

  1. 第 3 行:这是系统调用带 1 个参数所必需的。下面详细解释。

_syscall1(long, mycall, int, i)

因此,我们的用户头文件看起来像

/*---头文件开始------*/

#include<linux/unistd.h>

#define __NR_mycall 317

_syscall1(long, mycall, int, i)

/*---头文件结束--------*/


15. testmycall.c (需要创建的新用户空间源文件)

testmycall.c

  1. 在与 testmycall.h 相同的目录中创建一个名为 testmycall.c 的 C 文件。C 文件将如下所示

/*---C 文件开始------*/

#include<stdio.h>

#include "testmycall.h"

int main(void)

{

printf("%d\n", mycall(15));

}

/*---C 文件结束------*/


16. _syscallN 宏

  1. _syscall0(int,mycall) 表示

  2. 系统调用名称为 mycall。

  3. 它不带参数。

  4. 它返回一个 int。

  1. _syscall1(int,mycall,int,number) 表示

  2. 系统调用名称为 mycall。

  3. 它带一个参数。

  4. 该参数是一个名为 number 的 int。

  5. 它返回一个 int。

当您展开 _syscall1(long,mycall,int,i) 时,您将得到以下代码

long mycall(int i)

{

return syscall(__NR_mycall, i);

}

但是 _syscallN 宏的定义在内核中是不同的。您可以查看 /usr/src/linux/include/asm-i386/unistd.h 以获取定义。


17. 测试新的系统调用

  1. 步骤 1:重新编译并安装新内核,以便我们的系统调用可用于操作系统。

  2. 步骤 2:编译并执行我们上面创建的用户空间 C 文件 (testmycall.c)。

  3. 结果:您应该看到输出为 25。这已在内核 2.6.17.13 上测试过。


18. 问题和建议

  1. 请发送邮件至 Amit Choudhary (amit2030 AT gmail DOT com)。


19. 版权

版权 (c) 2006 Amit Choudhary。

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

不含不变部分,不含封面文本,不含封底

文本。许可证副本包含在题为“GNU

自由文档许可证”的部分中。


20. 许可证

GNU 自由文档许可证

版本 1.2,2002 年 11 月

版权 (C) 2000,2001,2002 自由软件基金会有限公司。

51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

允许任何人复制和分发此许可证文档的完整副本,但不允许更改它。

允许任何人复制和分发此许可证文档的完整副本,但不允许更改它。

0. 序言

本许可证的目的是使手册、教科书或其他功能性和有用的文档在自由的意义上“自由”:确保每个人都拥有有效自由地复制和再分发它,

本许可证的目的是使手册、教科书或其他功能性和有用的文档在自由的意义上“自由”:确保每个人都拥有有效自由地复制和再分发它,

无论是否修改,无论是商业用途还是非商业用途。

无论是否修改,无论是商业用途还是非商业用途。

其次,本许可证为作者和出版商保留了一种方式,以获得对其作品的认可,同时不被视为对他人所做的修改负责。

其次,本许可证为作者和出版商保留了一种方式,以获得对其作品的认可,同时不被视为对他人所做的修改负责。

本许可证是一种“反版权”,这意味着文档的衍生作品本身必须以相同的意义自由。它

本许可证是一种“反版权”,这意味着文档的衍生作品本身必须以相同的意义自由。它

补充了 GNU 通用公共许可证,这是一个为自由软件设计的反版权

补充了 GNU 通用公共许可证,这是一个为自由软件设计的反版权

许可证。

我们设计本许可证是为了将其用于自由

软件的手册,因为自由软件需要自由文档:自由

程序应附带提供与软件相同自由的手册。但是本许可证不限于软件手册;

程序应附带提供与软件相同自由的手册。但是本许可证不限于软件手册;

它可以用于任何文本作品,无论主题或

是否以印刷书籍形式出版。我们主要为目的在于指导或参考的作品推荐本许可证。

是否以印刷书籍形式出版。我们主要为目的在于指导或参考的作品推荐本许可证。

1. 适用性和定义

本许可证适用于任何手册或其他作品,以任何媒介形式,其中

包含版权持有者放置的声明,说明它可以是

根据本许可证的条款分发。此类声明授予

全球范围内的、免版税的许可证,无限期地使用该

作品,但须符合此处规定的条件。“文档”,在下文中,

指任何此类手册或作品。任何公众成员都是

被许可人,并被称为“您”。如果您

以需要许可的方式复制、修改或分发作品

根据版权法。

文档的“修改版本”是指包含

文档或其一部分的任何作品,无论是逐字复制,还是

修改和/或翻译成另一种语言。

“二级部分”是文档的命名附录或前言部分,

该部分专门处理

文档的出版商或作者与文档的整体主题

(或相关事项)的关系,并且不包含任何可能直接属于

该整体主题范围内的内容。(因此,如果文档部分是

数学教科书,二级部分可能不解释任何

数学。)该关系可能是历史

与主题或相关事项的联系,或法律、

商业、哲学、伦理或政治立场,关于

他们。

“不变部分”是某些二级部分,其标题

被指定为不变部分,在声明中

说明文档是根据本许可证发布的。如果一个

部分不符合上述二级部分的定义,则不允许

被指定为不变部分。文档可能包含零个

不变部分。如果文档未识别任何不变

部分,则没有不变部分。

“封面文本”是某些简短的文本段落,这些段落被列出,

作为封面文本或封底文本,在声明中说明

文档是根据本许可证发布的。封面文本可能

最多 5 个词,封底文本最多 25 个词。

文档的“透明”副本是指机器可读副本,

以格式规范可供

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

公众使用的格式表示,该格式适用于直接使用通用文本编辑器(或用于像素组成的图像)或通用绘图程序(或用于绘图)进行修订,并且适用于文本格式化程序的输入或自动翻译为各种适用于文本格式化程序输入的格式。以其他透明文件格式制作的副本,其标记或缺少标记已安排为阻止或阻止读者后续修改,则不是透明的。如果图像格式用于大量文本,则该图像格式不是透明的。不是“透明”的副本称为“不透明”。

透明副本的合适格式示例包括纯

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

不带标记的 ASCII、Texinfo 输入格式、LaTeX 输入格式、SGML 或 XML,使用公开可用的 DTD 和符合标准的简单 HTML、PostScript 或 PDF,专为人工修改而设计。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式

包括专有格式,这些格式只能通过专有字处理软件读取和编辑,SGML 或 XML,其 DTD 和/或处理工具通常不可用,以及一些字处理软件为输出目的而生成的机器生成的 HTML、PostScript 或 PDF。

“标题页”是指,对于印刷书籍,标题页本身,加上

加上所需的后续页面,以便清晰地容纳

本许可证要求出现在标题页中的材料。对于作品,在

没有标题页的格式中,“标题页”是指

最突出地显示作品标题附近的文本,

在正文开始之前。

“标题为 XYZ”的部分是指文档的命名子单元,其

标题正是 XYZ,或在括号中包含 XYZ,紧随

翻译成另一种语言的 XYZ 的文本之后。(此处 XYZ 代表

下面提到的特定部分名称,例如“致谢”、

“献词”、“背书”或“历史”。)当您修改文档时,“保留标题”

当您修改文档时,文档仍然是

根据此定义,标题为“XYZ”的部分。

文档可能在声明本许可证适用于文档的声明旁边包含担保免责声明。这些担保

文档可能在声明本许可证适用于文档的声明旁边包含担保免责声明。这些担保

免责声明被视为通过引用包含在本

许可证中,但仅限于免责声明:任何其他

这些担保免责声明可能产生的含义均无效,并且

对本许可证的含义没有影响。

2. 逐字复制

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

您可以以任何媒介复制和分发文档,无论是商业用途还是非商业用途,前提是本许可证、版权声明以及说明本许可证适用于文档的许可证声明在所有副本中都得到复制,并且您没有在本许可证的条件之外添加任何其他条件。您不得使用技术措施来阻止或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够多的副本,您还必须遵守第 3 节中的条件。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果您发布印刷副本(或通常带有印刷封面的媒体副本)文档,数量超过 100,并且文档的许可证声明要求封面文本,您必须将副本封装在封面上,这些封面清晰且清晰地承载所有这些封面文本:封面文本在封面上,封底文本在封底上。两个封面还必须清晰且清晰地标识您为这些副本的出版商。封面必须以同等突出和可见的方式呈现标题的完整标题和所有词语。您可以在封面上添加其他材料。

如果任一封面的所需文本过于庞大而无法清晰地容纳,您应将列出的第一个文本(尽可能多地容纳

如果任一封面的所需文本过于庞大而无法清晰地容纳,您应将列出的第一个文本(尽可能多地容纳

合理地)放在实际封面上,并将其余部分继续放在相邻的

页上。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您发布或分发数量超过 100 个的不透明文档副本,您必须要么在每个不透明副本中包含一个机器可读的透明副本,要么在每个不透明副本中或随附声明一个计算机网络位置,公众可以使用公共标准网络协议从该位置访问下载文档的完整透明副本,且不包含添加的材料。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

如果您使用后一种选项,您必须采取合理谨慎的步骤,当您开始批量分发不透明副本时,以确保此透明副本在声明的位置保持可访问状态,直到至少在您最后一次分发该版本的(直接或通过您的代理商或零售商)不透明副本给公众之后一年为止。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

您可以添加最多五个词的段落作为封面文本,以及最多 25 个词的段落作为封底文本,添加到修改版本中的封面文本列表末尾。每个实体(或通过实体安排)只能添加一段封面文本和一段封底文本。如果文档已包含同一封面的封面文本,先前由您添加或通过您代表其行事的同一实体安排添加,您不得添加另一个;但您可以在明确获得先前添加旧封面文本的出版商的许可后替换旧封面文本。

文档的作者和出版商未通过本许可证

许可使用其姓名进行宣传或声明或暗示对任何修改版本的认可。

许可使用其姓名进行宣传或声明或暗示对任何修改版本的认可。

5. 合并文档

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在合并中包含所有原始文档的所有不变部分,且未经修改,并在其许可证声明中将它们全部列为合并作品的不变部分,并且您保留所有担保免责声明。

合并后的作品只需要包含本许可证的一个副本,并且

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

可以将多个相同的不变部分替换为单个副本。如果有多个同名但内容不同的不变部分,请通过在每个此类部分的标题末尾的括号中添加已知原始作者或出版商的姓名,或者添加唯一编号来使标题唯一。

遵循该特定版本或

由自由软件基金会发布的任何后续版本(非草案)

自由软件基金会。如果本文档未指定版本

此许可证的版本号,您可以选择自由软件基金会发布的任何版本(非

草案),由自由软件基金会发布。

附录:如何在您的文档中使用本许可证

要在您编写的文档中使用本许可证,请包含一份

许可证的副本在文档中,并在标题页之后添加以下版权和

许可声明

版权所有 (c) 年份 您的姓名。

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

根据 GNU 自由文档许可证 1.2 版的条款,或自由软件基金会发布的任何后续版本,授予复制、分发和/或修改本文档的许可;

不包含不变部分、封面文本和封底文本。

许可证的副本包含在标题为“GNU”的部分中

自由文档许可证”的部分中。

如果您有不变部分、封面文本和封底文本,

将“with...Texts.”行替换为以下内容

不变部分为[列出其标题],封面文本为[列出],封底文本为[列出]。

封面文本为[列出],封底文本为[列出]。

如果您有不带封面文本的不变部分,或其他一些

三种情况的组合,请合并这两种替代方案以适应

情况。

如果您的文档包含重要的程序代码示例,我们

建议在您选择的自由软件许可下并行发布这些示例,

例如 GNU 通用公共许可证等自由软件许可证,

以允许在自由软件中使用它们。