# Smart Assembly Management System (1.6)

## Software

# 简介

在本部分，您可以找到有关产品的基本信息以及主题中使用的格式约定。

# 一般数据保护条例（GDPR）

本产品提供了处理个人身份信息的可能性，例如系统用户名、角色和 IP 地址。这种处理能力的目的可能是通过可追溯性和适当的访问管理来加强质量控制。

如果您决定处理个人数据，您需要了解并遵守相关的个人数据保护规则，包括 EU GDPR 以及任何其他适用的指令和法规。对于您对本产品的任何使用，阿特拉斯·科普柯不承担任何责任。

# 责任

在工作环境下，许多情况可能影响拧紧流程，为此须对结果进行验证。在此，我们要求用户遵守相关标准和/或法规，在出现可能影响拧紧结果的情况后，检查安装的扭矩和旋转方向。此类情况的示例包括但不限于：

- 工具系统初始安装

- 更改部件批次、螺栓、螺钉批次、工具、软件、配置或环境

- 更改通风或电气连接

- 更改管路人体工程学特性、流程、质量程序或操作法

- 更换操作员

- 任何影响拧紧流程结果的其他变更

检查应：

- 确保未因发生的影响情况改变接头状况。

- 在设备初始安装、维护或修理后实施。

- 至少在每次换班后检查一次或以合适的频率进行检查。

# 修订历史

版本 | 日期 | 技术撰稿人 | 说明
--- | --- | --- | ---
2.0 | 2021 年 6 月 11 日 | Dmitry Philippov | 第一版。
2.1 | 2021 年 9 月 22 日 | Dmitry Philippov | 用于与 Smart AMS 1.6 版一起使用。

如果本手册的译文之间有冲突，请务必参阅官方英文版。

本手册如有更改，恕不另行通知。有关更多信息，请登陆 Atlas Copco www.atlascopco.com

# 一般信息

站点配置在 Smart AMS Config 中创建和编辑，可通过 web 浏览器访问。您还可以使用旧版 Smart AMS 中的 .xlsx 配置文件。Smart AMS Config 包含以下部分：配置、扫描规则、历史记录、角色管理、用户管理和用户首选项。

Smart AMS Manager 提供了一个 Web 用户界面。应用程序可以托管在本地或远程计算机上。它包括以下部分：仪表板、服务管理器、应用程序上下文、管理和事件日志。

当您从 Smart AMS Config 中推送新配置时，将重新配置 Smart AMS，并更新站点配置。

当连接到拧紧工具时，Smart AMS 保持锁定，直到工件在相应的站点进站。当工件进站时，Smart AMS 启用工具。当拧紧完成时，Smart AMS 再次锁定工具。也有可能使用套筒选择器和自由拧紧顺序模式。

当工件在站点进站时，与该站点相关的拧紧工作流都将从头开始。无论工件是自动还是手动进站。在顺序模式下，当螺纹接头逐个拧紧时，站点处的工具总是按配方列表中指定的顺序激活。也可以使用并行模式和自由顺序模式。

如果 PLC 或 MES 在配置中被激活，当工件从站点出站时，Smart AMS 向 PLC 和 MES 发送带有工件状态的出站消息。

扫码枪可以连接到控制器。无论扫码枪连接到哪个工具，所有扫描都被平等对待。IXB 和 Stwrench 可以集成扫码枪，在技术上以相同的方式处理它们。

您可以指定扫描规则来从多个扫描中提取工件 ID 和 PR 代码。

像 PF6000 和 PF4000 这样的固定控制器可以配备多层警示灯和操作面板。

工件进站、工件完成 OK、工件完成 NOK、拧紧状态（OK 或 NOK）等站点事件可以通过多层警示灯或连接到相应控制器的类似外围设备来指示。

Smart AMS 可将结果数据（OK、NOK、NYD）传输到 ToolsNet 8。

当操作员按下操作员面板上的“跳过螺栓”按钮或连接到控制器的多层警示灯时，当前螺栓将被跳过。

# 系统概述

系统概述部分概述了 Atlas Copco 软件产品 Smart AMS (Smart Assembly Management System) 提供的功能。您可以在这里找到有关产品功能和用法的基本信息。

此部分内容

- 主要功能
- 接口
- 最低要求

# 主要功能

## 拧紧过程控制

最小工件配置允许您在工件装配过程中控制拧紧过程。

在每个站点可以使用多个工具来执行多个拧紧操作，可对每个工具进行配置以满足特定要求。

## 工业自动化

- 在站点进站工件后，Smart AMS 确定需要执行哪些拧紧步骤。

- 拧紧步骤由程序配置确定；它们的选择可依据从 MES 检索的 PR 代码来定。

- 可通过一个特殊的多层警示灯或操作员面板上的灯来指示拧紧工作流程正在进行中。

- 在自动模式下，Smart AMS 自动选择控制器中的相应拧紧程序，然后等待操作员执行拧紧。

- 如果操作员执行了一个 OK 拧紧，Smart AMS 将自动进入下一个拧紧步骤（如有）。

- 如果操作员执行了一个 NOK 拧紧，Smart AMS 可以根据系统自定义程序指定的次数提示重试。如果所有重试都失败了，Smart AMS 将根据以下策略之一执行操作：
  战略 1：中止作业并让工件出站。
  战略 2：让操作者通过使用相应的按钮跳过螺栓。
  战略 3：让操作员在站点重新执行整个工作流程。
  战略 4：自动前进到下一个螺栓。

当没有拧紧作业要执行或当工件出站时，工作流程完成。

指示灯向操作员显示整体工件状态是 OK 还是 NOK。可以为此配置一个多层警示灯。

## 集中配置存储

Smart AMS Config 应用程序包括站点、附件、功能选项和过程配方的配置。

Web 用户界面允许您使用 web 浏览器应用配置。

## 访问控制

您可以为登录到 Smart AMS Manager 和 Smart AMS Config 指定不同的凭据。

## 紧急模式

Smart AMS 支持紧急模式，可在出现错误时由操作员激活：错误的配方配置（例如，拧紧程序不存在）、接收 MES 构建数据出现问题等。错误状态可由系统错误指示灯指示。

如果发生错误，操作员可以使用按键开关将站点切换到紧急模式。预留了一个专用灯，用于指示站点处于紧急模式。

在紧急模式下，站点处的所有工具都将被解锁，预定义的拧紧程序或手动选择的拧紧程序将被使用，前提是配置了操作员面板或套筒选择器。当所有控制器切换回自动模式时，站点将返回自动模式。

## 分配并激活单一站点拧紧任务

配置根据工件属性指定要执行的拧紧任务。Smart AMS 自动选择拧紧任务，解锁拧紧工具，并设置相应的拧紧程序。

## 手动拧紧任务控制

Smart AMS 允许操作员或工厂维护团队跳过整个工件或其中的特定螺栓。

## MES API

您可以使用内置的 MES API 在 Smart AMS 和制造执行系统 (MES) 之间交换数据，包括检索构建数据、发出进站请求和报告结果数据。支持拧紧曲线的传输。

## 监控 API

它提供有关正在运行的 Smart AMS 实例的状态信息。您可以使用此 API 来监视报告和仪表板的实时数据。

## 站点联锁

您可以指定所选装配线内或跨多条装配线的站点之间的联锁关系。

## PLC 与扫码枪之间的同步

工件可通过使用扫码枪或 PLC 进站。Smart AMS 可以配置为在手动模式下操作时将扫描的条形码发送到 PLC。

## 各种工件进站选项

工件可通过使用扫码枪、PLC 或 MES 进站。

## 连接检查

Smart AMS 监控所有设备的连接。当连接更改状态时，相应的条目将写入事件日志。

## 工件进站时避免重复

如果工件 ID 与紧随其后进站的工件 ID 相同，您可以选择以防止新的工件进站。

## 避免已完成的工件进站

如果新工件已经成功处理，则可以选择阻止其进站。

## 与 SQS3 集成

Smart AMS 能够与 SQS3 进行通信，以利于装配线的各个站点之间的数据传输和相互联锁。

## 与 ToolsNet 8 集成

Smart AMS 可将结果数据（OK、NOK、NYD）传输到 ToolsNet 8。

## 与 ILT 集成

Smart AMS 与 Industrial Location Tethering 解决方案兼容，以确保工具只在您希望的地方工作。

# 接口

## MES 接口

Smart AMS 提供基于 WebSocket 连接的接口，用于工件进站、从 MES 检索工件数据（构建数据）以及向 MES 发送结果数据。接口可按需定制。

## 控制器和工具支持

Smart AMS 与以下 Atlas Copco 控制器和工具兼容：Power Focus 4000、Power Focus 6000、MicroTorque MTF6000、PowerMACS 4000、STwrench、ICB、ITB 和 PF6 Flex System。

## PLC 接口

Smart AMS 通过 TCP IP 通信提供到线路 PLC 的 PLC 接口，利用 AMS PLC 工件跟踪协议跟踪工件进站和出站。该接口可按需定制。

## 工件扫描支持

作为 PLC 或 MES 工件进站的替代方案，该系统允许操作员使用条形码进站工件。在这种情况下，必须连接兼容的扫码枪。您可以使用连接到拧紧控制器的扫码枪、集成到工具中的扫码枪或使用 LAN 连接连接到 Smart AMS Server 的扫码枪。

## Modbus/TCP

Smart AMS 与 Modbus TCP 转换器兼容，允许您连接多层警示灯、按钮、喇叭和其他外围设备。只有支持 Read Coils（功能代码 1）和 Write Single Coil（功能代码 5）功能的 Modbus 设备才能与 Smart AMS 一起使用。

# 最低要求

## 软件要求

64 位 Windows。服务器组件在 Windows Server 2012 R2（64 位）上测试。

支持的浏览器：Microsoft Edge 79.0.309 或更高版本、Google Chrome 2020 或更高版本、Firefox 和 Safari 最新版本。

## 硬件要求

硬件要求因连接的主轴数量而异。

1 ~ 50 根主轴：4 核 Intel Xeon E5 v2 CPU，10 GB RAM，2 个 SAS 硬盘。

51 ~ 100 根主轴：6 核 Intel Xeon E5 v3 CPU，15 GB RAM，3 个 SAS 硬盘。

101 ~ 200 根主轴：8 核 Intel Xeon E5 v4 CPU，20 GB RAM，2 个固态硬盘。

201 ~ 300 根主轴：8 核 Intel Xeon E5 v4 CPU，25 GB RAM，2 个固态硬盘。

300 根主轴以上：请联系产品支持团队。

这些规格是在每个工件的生产周期时间不少于 1 分钟的假设下给出的。如果您计划在周期较短的环境中使用 Smart AMS，请联系 Smart AMS 的产品支持团队。

# 安装和升级

在本部分，您可以找到有助于产品初始安装或从一个版本升级到另一个版本的信息。

# 软件安装

# 安装 Error Proofing License Manager

1. 右键点击 Error Proofing License Manager Installer.exe，然后点击以管理员身份运行。

   - 如果从“用户帐户控制”获得对话框提示，问是否允许该程序更改您的PC，请单击“是”。

   - 如果 Windows Defender SmartScreen 阻止安装程序运行，请单击“更多信息”，然后单击“仍然运行”。

2. 在下一个对话框中，选择我接受协议选项，然后单击下一步。

3. 确认安装路径。默认路径：C:\LLM。

4. 系统将提示您为 Error Proofing License Manager 指定两个端口：一个用于数据通信，另一个用于 Web 用户界面。如果没有理由指定自定义值，请保留默认值。

   许可证管理器端口字段：指定 TCP 端口 Error Proofing License Manager 将用于通信。默认值：7070。

   Web 界面端口字段：指定 Web 用户界面的 TCP 端口，该端口允许您使用 Web 浏览器配置 Error Proofing License Manager。默认值：8082。

5. 点击下一步，然后点击安装。

安装完成后，您将在您的桌面上发现许可管理器 快捷方式。基本配置信息汇总在 C:\Users\<user name>\AppData\Local\ 下的 Error_Proofing_LicenseManager_Installation_Summary.txt 文件中，该文件也可放在桌面上。

计算机上安装了以下服务：Apache Tomcat、FlexNet License Server - acopco 和 FlexNet-Service Watchdog。FlexNet-Service Watchdog 确保许可证服务器和许可证数据库的正常运行。

ToolsTalk Server V.2 和 Error Proofing License Manager 不能在同一台计算机上共存。如果您正在使用 ToolsTalk，请为 ToolsTalk Server 使用不同的计算机。

# 安装 Smart AMS

## 重要提示

为了保持 Smart AMS 平稳运行，Smart AMS Server 计算机上的病毒扫描程序（如 Windows Defender）应该完全关闭，或至少配置某些排除项。

1. 对下列路径下的文件禁用定时和实时扫描：

   C:\ProgramData\AMP
   C:\SAMS

2. 为下列进程打开的文件配置排除项：

   erl.exe
   AMPServiceProcess.exe

## 安装过程

1. 启动 setup-sams-1.6.exe。

   - 如果从“用户帐户控制”获得对话框提示，问是否允许该程序更改您的PC，请单击“是”。

   - 如果 Windows Defender SmartScreen 阻止安装程序运行，请单击“更多信息”，然后单击“仍然运行”。

2. 选择安装过程中要使用的语言。

3. 在许可协议对话框中，选择“我接受协议”选项，然后点击下一步。

4. 确认安装路径。默认路径：C:\SAMS。

5. 选择安装模式：完整安装或自定义安装。如果选择完整安装，则将安装所有工件组件。选择性安装允许您选择以下任何组件：Erlang OTP、RabbitMQ Server、Smart AMS。通常，您应该安装所有这三个组件。

6. 指定开始菜单文件夹以将程序的快捷方式添加到其中。默认：SAMS。

7. 指定是为所有用户还是仅为当前用户创建桌面快捷方式。

8. 如果选择了安装 SAMS，请指定它将使用的 HTTP 端口。建议您保留默认值。您还需要指定用户名和密码。请把它们写下来，放在安全的地方。然后，您需要输入这些登录凭据，以登录 Smart AMS Manager。

   如果您选择安装 RabbitMQ Server，系统将提示您指定虚拟主机、用户名和密码。如果没有理由指定自定义值，请保留默认值。请把它们写下来，放在安全的地方。
   如果需要，请选中启用管理插件复选框。RabbitMQ 管理插件提供一个用于管理和监视 RabbitMQ 节点和集群的基于 HTTP 的 API，以及一个基于浏览器的 UI 和一个命令行工具 RabbitMQAdmin。为了节省系统资源，建议不要在生产计算机上安装此组件。

   如果您看到 EPMd.exe 或 erl.exe 消息的 Windows Defender 防火墙已阻止某些功能，请点击允许访问。

9. 指定主机名或 IP 地址，以及 SAMS 将用于连接到 Error Proofing License Manager 的 TCP 端口。默认端口：7070.

10. 当您到达完成 SAMS 安装向导窗口时，选中启动 Windows 服务（在后台）复选框。

# 软件升级

# 升级 Smart AMS

您可以从 Smart AMS V.1.2、Smart AMS V.1.3、Smart AMS V.1.4 或 Smart AMS V.1.5 升级到 Smart AMS V.1.6。如果已经安装了比 v.1.2 更旧的 Smart AMS 版本，请在安装 Smart AMS v.1.6 之前卸载它。

如果您的机器上安装了 Smart AMS V.1.2 自定义版本，请在安装标准版本之前卸载它。

升级期间在机器上检测到的任何旧版 Erlang OTP 或 RabbitMQ Server 都将被保留。

升级完成后，您可以将以前的 Smart AMS 版本的 .xlsx 配置文件导入 Smart AMS Config V.1.6。Smart AMS V.1.6 中引入的配置参数在旧版本中不可用，将被设置为它们的默认值。

# 软件移除

# 卸载 Smart AMS

要卸载 Smart AMS：

在开始>设置>应用和功能对话框（Windows 10 系统）下找到 “SAMS”，然后按常规操作卸载它。或者，使用 Windows 开始菜单上的卸载 Smart AMS 快捷方式。

在卸载过程中，您可以通过选中相应的复选框来选择卸载 Erlang OTP 和 RabbitMQ Server。

如要卸载 Error Proofing License Manager：

- 在开始>设置>应用和功能对话框（Windows 10 系统）下找到 "Error Proofing License Manager”，然后按常规操作卸载它。

或者

- 导航到 C:\LLM\LLM，这是 Error Proofing License Manager 的默认路径，然后从该文件夹运行 uninstall_as_service.cmd。

# 配置

在本部分，您可以找到有关如何创建、修改和验证产品设置的详细信息。

# 许可

Smart AMS 的试用期为 60 天。若要在试用期过后继续使用 Smart AMS 或连接超过 25 个主轴，您将需要许可证。

在试用期间，Smart AMS 最多只支持 25 个主轴连接。

购买 SQS3 时，客户帐户将在 Atlas Copco 客户许可证门户网站 https://atlascopco.flexnetoperations.com/control/atco/login 上创建。

Error Proofing License Manager 与 SQS3 兼容，可帮助您使用单个仪表板管理许可证。许可证存储在计算机的客户端，FlexNet License Server 服务在后台运行。计算机必须可以从运行 Smart AMS 的计算机访问。

此部分内容

- 注册您的 Error Proofing License Manager
- 映射功能
- 使用功能响应文件
- 使用非电子许可证令牌
- 使用 Error Proofing License Manager
- 激活许可证
- 更改许可服务器 URL

# 注册您的 Error Proofing License Manager

当您购买 Smart AMS 时，您将通过 Atlas Copco 客户中心注册，并获得登录凭据。然后，您需要注册 Error Proofing License Manager。

- 登录到 https://atlascopco.flexnetoperations.com/control/atco/login

- 在 Atlas Copco 客户许可证门户网站，点击注册许可证管理器或 USB 设备链接。

- 输入数据，然后点击创建。

用于注册 Error Proofing License Manager 的数据

ID 字段：在安装了 Error Proofing License Manager 的计算机上，确定与 FlexNet License Server 有关的 MAC 地址。在这里输入该 MAC 地址。这是进行注册所需的必填字段。

确保此字段中不包含连字符！

如要找出 MAC 地址：

打开命令提示符窗口，按 + R 键盘快捷方式，然后在运行对话框输入 cmd 命令。

在命令提示符处，输入命令：getmac /V

您将在系统上看到网络适配器的 MAC 地址列表。使用与 FlexNet License Server 相关的服务，该服务在安装了 Error Proofing License Manager 的计算机上的后台运行。

ID 类型列表：选择以太网。

设备名称字段：例如：Acme 计算机。

现场名称字段：例如：Acme 工厂。

类型列表：选择 FLX_SERVER。

# 映射功能

购买后，您可以将可用功能映射到 Error Proofing License Manager。

确保运行 Error Proofing License Manager 的计算机已连接网络。

- 登录到 https://atlascopco.flexnetoperations.com/control/atco/login

- 点击搜索许可证管理器或 USB 设备链接，然后通过输入 ID、设备名称或现场名称查找记录。

  您将看到一个条目列表。

- 点击列表中的相应 ID。您将切换到查看许可证管理器或 USB 设备页面。

- 在查看许可证管理器或 USB 设备页面，点击映射功能链接。

  您将看到一个功能列表。您可以使用可用条件然后点击搜索按钮来过滤列表。

- 在要添加的数量列中，指定要添加到 Error Proofing License Manager 的功能实例数，然后点击映射功能。

一段时间后，这些功能将出现在 Error Proofing License Manager。刷新间隔在 Error Proofing License Manager 中的属性页面上配置。

影响映射的参数

服务器主机 ID：选择注册 Error Proofing License Manager 时使用的 MAC 地址。

与后台间隔同步：与后台同步会话之间的时间量。例如：10 米（10 分钟）。较少的数量可以在服务器上施加负载。

功能轮询间隔：功能请求轮询之间的时间量。例如：10 米（10 分钟）。较少的数量可以在服务器上施加负载。

# 使用功能响应文件

如果您的制造网络没有接入互联网，则可以使用功能响应文件来安装许可证。

- 在 Atlas Copco 客户许可证门户网站 https://atlascopco.flexnetoperations.com/control/atco/login 上登录您的帐户。

- 点击搜索许可证管理器或 USB 设备链接，然后通过输入 ID、设备名称或现场名称查找记录。

  您将看到一个条目列表。

- 点击列表中的相应 ID。

- 点击下载能力响应链接，然后将 .bin 文件保存到计算机。

使用存储设备，您可以将功能响应文件传输到另一台计算机。然后，您需要将文件上传到 Error Proofing License Manager。

- 使用桌面上或 Windows 开始菜单上的 License Manager 快捷方式 前往 Web 浏览器中的 Error Proofing License Manager 地址。
  示例地址：localhost:8082/flsm。安装 Error Proofing License Manager 时选择端口号。默认端口号为 8082。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

- 在 Error Proofing License Manager 中，点击离线服务器更新。

- 在离线服务器更新页面，点击浏览...，然后选择响应文件，然后点击上传。

# 使用非电子许可证令牌

如果您无法使用电子方式添加功能，则可以使用非电子许可证令牌添加它们。这种令牌通常以纸张的形式发行，其上写有许可证代码。

- 登录到 https://atlascopco.flexnetoperations.com/control/atco/login

- 在 Atlas Copco 客户许可证门户网站，单击注册额外的许可证令牌链接。

- 输入令牌代码，然后单击注册。

相应的功能将变得可用。

# 使用 Error Proofing License Manager

- 使用桌面上或 Windows 开始菜单上的 License Manager 快捷方式 前往 Web 浏览器中的 Error Proofing License Manager 地址。
  示例地址：localhost:8082/flsm。安装 Error Proofing License Manager 时选择端口号。默认端口号为 8082。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

您可以检查设备和功能的可用性。

- 在 Error Proofing License Manager 中，点击设备链接。

  您将看到使用许可证的设备列表。

- 点击设备 ID 以获取有关所选实例的信息。

您可以查看功能的计数和可用性。

- 在 Error Proofing License Manager 中，点击功能使用链接。

  您将看到一个功能列表。

- 点击所需的功能标题以获取有关实例计数和可用性的信息。

您可以指定主机名和端口以访问 Error Proofing License Manager。

除非完全了解更改的范围，否则请勿更改参数。

- 在 Error Proofing License Manager 中，点击设置链接。

  您将看到一个字段列表，包括主机名和端口。

# 激活许可证

您可以随时切换到使用您的许可证，无论试用期是否已到期。

当您在 Error Proofing License Manager 中有足够数量的可用功能时，请转到 Smart AMS Config 并推送配置。此步骤是 Smart AMS 识别许可证所必需的。

# 更改许可服务器 URL

您可以指定新的主机名或 IP 地址，以及 Smart AMS 将用于连接到 Error Proofing License Manager 的 TCP 端口。

1. 使用 Windows 开始菜单上的更改许可服务器 URL快捷方式 运行 Change License Server URL 脚本。

   若要以管理员身份运行 Change License Server URL 脚本，请右键点击更改许可服务器 URL 快捷方式，然后点击以管理员身份运行。

2. 输入新的主机名或 IP 地址。

3. 输入端口号。

# Smart AMS Manager

Smart AMS Manager 提供了一种检查服务当前状态的好方法。应用程序的 GUI 可以通过 Web 用户界面访问。

此部分内容

- 登录 Smart AMS Manager
- 退出 Smart AMS Manager
- 使用仪表板
- 使用服务管理器
- 查看 App 上下文
- 查看和筛选事件日志
- 更改密码或添加新用户

# 登录 Smart AMS Manager

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Manager 快捷方式 前往 Web 浏览器中的 Smart AMS Manager 地址。
  示例地址：http://localhost:6394。安装 Smart AMS 时选择端口号。默认端口号为 6394。确保将本地主机替换为运行 Smart AMS Manager 的计算机的实际 IP 地址。

网页浏览器中将出现一个对话框，提示您选择显示语言并输入您的用户名和密码。

- 从下拉列表中选择所需的语言，并输入您的登录凭据。

您在用户名和密码字段中输入的数据必须与安装 Smart AMS 时提供的数据相匹配。您可以从负责安装 Smart AMS 的人员处获取此信息。

登录后，您的用户名将显示在页面的右上角。然后您可以开始使用 Smart AMS Manager。

# 退出 Smart AMS Manager

您可以随时退出。

- 要退出，请点击页面右上角的用户名，然后点击退出。

# 使用仪表板

您必须首先导航到 Smart AMS Manager。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Manager 快捷方式 前往 Web 浏览器中的 Smart AMS Manager 地址。
  示例地址：http://localhost:6394。安装 Smart AMS 时选择端口号。默认端口号为 6394。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

- 要切换到仪表板部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择仪表板。

您可以选择在仪表板上显示哪些子部分。

- 点击 ，然后选中或取消选中要显示或隐藏的每个子部分名称旁的复选框：服务管理器、App 上下文、许可。

仪表板可能包含以下子部分。

服务管理器：显示正在运行的服务。
App 上下文：显示进程信息以及消息队列 (MQ) 和 HTTP 数据。
许可：显示 Smart AMS 和 Error Proofing License Manager 之间是否存在网络连接，以及许可服务器的主机名以及使用的功能和可用功能的数量。试用期指示灯在离到期日期还剩一周以上时呈绿色。如果剩下不到一周，它将变成黄色。一旦试用期到期，它将变成红色。
如果尚未对 Smart AMS 应用任何配置，则许可指示灯为灰色。

绿点 表示项目可用或正在运行。否则显示红点 。

# 使用服务管理器

您必须首先导航到 Smart AMS Manager。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Manager 快捷方式 前往 Web 浏览器中的 Smart AMS Manager 地址。
  示例地址：http://localhost:6394。安装 Smart AMS 时选择端口号。默认端口号为 6394。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

- 要切换到服务管理器，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择服务管理器。

在服务管理器部分，您可以查看和管理以下子部分中的设置：服务、服务配置和全局服务配置。

服务：显示服务。点击服务标题查看所选服务的信息和控制子部分。在控制子部分，使用开始和停止按钮启动或停止服务。

通常，您不必手动启动或停止服务。停止服务可能会影响 Smart AMS 的功能。

绿点 表示服务正在运行。如果服务停止，则显示一个红点 。黄点 表示正在重新配置服务。

# 查看 App 上下文

您必须首先导航到 Smart AMS Manager。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Manager 快捷方式 前往 Web 浏览器中的 Smart AMS Manager 地址。
  示例地址：http://localhost:6394。安装 Smart AMS 时选择端口号。默认端口号为 6394。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

- 要切换到 App 上下文部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择 App 上下文。

在本部分中，您可以找到配置文件的路径以及配置变量值。

# 查看和筛选事件日志

您必须首先导航到 Smart AMS Manager。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Manager 快捷方式 前往 Web 浏览器中的 Smart AMS Manager 地址。
  示例地址：http://localhost:6394。安装 Smart AMS 时选择端口号。默认端口号为 6394。确保将本地主机替换为安装了 Error Proofing License Manager 的计算机的实际 IP 地址。

- 要切换到事件日志部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择事件日志。

- 如要获取最新数据，请点击刷新。

日志包括关于事件的以下信息：时间、起源、级别、事件类型、警报（开启或关闭）、消息和详细信息。

## 服务事件历史记录

在服务事件历史记录子部分中，您可以找到事件的条目，包括 Smart AMS 与服务器之间的断开、工具与控制器之间的断开（与站点有关）、服务器与 PLC 之间的断开、生产过程中发生的错误、工件进站和出站操作、工件状态的改变。

可以按时间戳、源类型、事件类型、消息文本、日志级别和警报筛选记录。

1. 点击列标头。

2. 指定筛选条件。
   列标题将以粗斜体显示。

   您可以在筛选器中使用星号（*）来匹配任何数量的字符（如适用）。

3. 点击刷新。

要删除筛选器，请点击列标头，然后删除筛选器框中的任何文本。或者，点击重置以恢复为默认视图。

若要配置高级筛选器：

1. 点击高级筛选器字样。

2. 在级别列表中，选择您选择的日志级别：全部、信息、警告、错误或致命。

3. 在警报列表中，选择开启、关闭或无警报指示。您可以将这些结合起来。

若要查看事件详细信息：

1. 如果可用，请点击详细信息栏中的 。事件详细信息以 JSON 格式显示。

2. 若要关闭详细信息弹出窗口，请再次点击 。

## 管理器事件历史记录

在管理器事件历史记录子部分中，您可以找到与 Smart AMS Manager 有关的事件条目。

# 更改密码或添加新用户

您可以为 Smart AMS Manager 更改密码。您还可以添加新用户。

1. 使用 Windows 开始菜单上的更改 Smart AMS Manager 密码快捷方式 启动 Change Smart AMS Manager Password 控制台应用程序。

2. 输入您的用户名或要添加的用户的用户名。

3. 输入您的新密码或新用户的密码。

# Smart AMS Config

Smart AMS 提供了一种通过 Web 用户界面配置线路和站点的好途径，称为 Smart AMS Config。

为了使用 Smart AMS V.1.6 中的所有功能，请使用 Smart AMS Config。如果您使用的 Smart AMS 版本早于 1.6，则可以将现有的 .xlsx 配置文件导入 Smart AMS Config 中。

此部分内容

- 登录到 Smart AMS Config
- 退出 Smart AMS Config
- 为 Smart AMS 指定常规设置
- 使用配置
- 添加和管理生产线
- 添加和管理站点
- 添加和管理扫描规则
- 管理用户角色
- 在 Smart AMS Config 中管理用户帐户
- 在 Smart AMS Config 中指定用户首选项

# 登录到 Smart AMS Config

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

网页浏览器中将出现一个对话框，提示您输入您的用户名和密码。

首次使用 Smart AMS Config 时，系统会提示您指定用户名和密码。然后，您需要输入这些登录凭据，以超级用户身份登录 Smart AMS Config。

- 输入要登录的凭据。您可以从负责 Smart AMS 配置的人员处获取此信息。

您在用户名和密码字段中输入的数据必须与现有用户帐户的相匹配。

登录后，您的用户名将显示在页面的右上角。然后可以开始使用 Smart AMS Config。

# 退出 Smart AMS Config

您可以随时退出。

- 要退出，请点击页面右上角的用户名，然后点击退出。

如果超过 12 小时不活动，Smart AMS Config 自动退出。

# 为 Smart AMS 指定常规设置

若要自定义 Smart AMS 的全局配置设置，必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击 。

- 使用 和 可以展开或折叠该部分的项目。

## 基准

客户名称字段：如有，请指定客户的名称。它不包括在结果数据中。

工厂名称字段：指定工厂的名称。

工件进站覆盖拨动开关：如果开启，则当新工件进站时，当前工件将出站，同时新工件将进站。关闭它可以防止另一个工件正在处理的同时让新工件进站。

忽略重复工件进站拨动开关：如果工件 ID 与紧随其后进站的工件 ID 相同，开启它可以防止新的工件进站。如果关闭，则不执行工件 ID 比对。工件将进站，拧紧工作流将从头开始。

MNO 策略列表：
非活动工作流：如果工作步骤中的所有拧紧重试尝试都失败了，则该工具将被锁定，直到手动跳过当前工作步骤。
工件中止：如果工作步骤中的所有拧紧重试尝试都失败了，则工件将自动进站。
工作流重启：如果工作步骤中的所有拧紧重试尝试都失败了，则工作流将从头开始。此选项是最不推荐的，因为之前的拧紧结果将被丢弃，不会发送到 MES。
继续：如果工作步骤中的所有拧紧重试尝试都失败了，则 Smart AMS 将自动进行到下一个工作步骤。

应急结果模式列表：
静态：在紧急模式中，该工具始终处于启用状态。工件 ID 不能输入。所有结果将带有一个静态识别符 - “人工”。
仅通过工件进站：只有在工件进站后才启用该工具。工件进站时使用的工件 ID 将用于结果。
静态和通过工件进站覆盖：在紧急模式中，该工具始终处于启用状态。如果没有工件进站，则所有结果将带有一个静态识别符 - “MANUAL”。工件进站后，工件进站时使用的工件 ID 将用于结果。
被动：工件识别不受 Smart AMS 控制。例如，如果扫码枪附加到控制器上，则从扫码枪收到的工件 ID 将被附加到拧紧结果。从控制器接收的任何工件 ID 将不会被 Smart AMS 更改。如果既未指定扫码枪也未指定其他输入源，则工件 ID 将为空。

您可以使用连接到 PF6000 控制器的扫码枪，在自动模式和控制器的手动模式下扫描，即使它没有连接到 Smart AMS。在这种情况下，紧急结果模式设置必须设置为被动，并且 PF6000 站点的工件进站设置必须设置为条形码。
在 PF6000 的设置中，扫描通过功能需要停用。应配置控制器上的手动模式，以便它在键开关设置为紧急模式时处于活动状态。

紧急进站模式列表：
通过站点进站：在紧急模式中，工件可采用与自动模式相同的进站方式进站。如果在站点使用扫描规则，扫码枪将不被考虑用于此模式下的紧急模式进站。
通过站点进站和扫码枪：工件可采用与自动模式相同的进站方式进站，也可以通过扫码枪进站。如果工件是通过扫码枪进站的，并为该站点配置了 PLC，则 Smart AMS 会将扫描的代码发送到 PLC。必要时，顺序将在 PLC 上核实，然后重新排列。当处于紧急模式时，不会对扫描的内容应用扫描规则。
仅通过扫码枪：工件只能通过使用扫码枪进站。如果为该站点配置了 PLC，则 Smart AMS 会将扫描的代码发送到 PLC。必要时，顺序将在 PLC 上核实，然后重新排列。当处于紧急模式时，不会对扫描的内容应用扫描规则。

站点联锁模式列表：
关闭：没有站点互锁。即使工件是从上一个站点以 NOK 状态出站的，也可以进站并被处理。
线内联锁：在装配生产线中，只有当工件以 OK 状态从上一个站点出站时才能进站。如果一个站点的拧紧结果为 NOK，那么在该站点拧紧的所有螺栓都应该拧松，然后工件可以在同一站点进站以重新拧紧。
跨生产线联锁：只有当工件以 OK 状态从上一个站点出站时才可以进站，即使上一个站点属于不同的装配生产线。如果一个站点的拧紧结果为 NOK，那么在该站点拧紧的所有螺栓都应该拧松，然后工件可以在同一站点进站以重新拧紧。

拒绝 OK 工件进站拨动开关：
如果开启，将无法让已在同一站点处理 OK 的工件进站。当尝试进站时，连接到站点的多层警示灯上的绿色段将启动。工件将无法进站。然而，这样的工件仍然可以通过在检测到工件已经 OK 之后发送的 IO 信号在该站点进站。如果工件没有检测到已经 OK，则 IO 信号将被忽略。
如果关闭，已在同一站点处理 OK 的工件将可以进站，无论进站方式如何。

## 高级

工件断开超时字段：指定在与控制器的连接丢失的情况下等待直到工件出站的时间段（以秒为单位）。如果此字段留空，则当 Smart AMS 失去与控制器的连接时，工件将立即出站。然后，Smart AMS 将等待新的工件进站，以恢复站点的工作流。

工件状态存储限制字段：指定要存储在 Smart AMS 缓冲区中的工件状态信息条目的最大数量。默认值：10000。

ILT 服务器端口字段：指定用于连接的 TCP 端口。默认端口：10458。

使用监视 API 拨动开关：如果您想使用监视 API，请开启它。否则请关闭它。

等待工具停止拨动开关：开启它，让系统等待站点的所有工具停止旋转，然后中止工作流并让工件出站。运行工具产生的所有拧紧结果都将报告给 MES。典型用例：按下“跳过工件”按钮或让另一个工件进站。
如果关闭，工件将总是在检测到相应的信号时立即出站。系统将丢弃工件出站后处理的所有拧紧结果。

工件空闲超时字段：指定由于不活动而等待直到工件出站的时间段（以秒为单位）。达到空闲超时后，工件将以 NOK 状态出站。若要停用此功能，请将字段留空。该设置应用于所有在站点设置中关闭覆盖全局设置功能的站点。

## MES

MES 构建数据

启用拨动开关：如果要从 MES 适配器接收构建数据，请将其开启。否则请关闭它。

适配器名称字段：输入您要从中接收构建数据的 MES 适配器的名称。

服务器端口字段：指定将用于接收构建数据的 TCP 端口。默认端口：8089。

MES 进站

使用这些设置来配置 MES 进站功能。

启用拨动开关：如果要通过使用 MES 适配器来让工件进站，请将其开启。否则请关闭它。

适配器名称字段：输入 MES 进站适配器的名称。

服务器端口字段：指定 TCP 端口，它将被用于传入来自 MES 进站适配器的连接。默认端口：8091。

MES 结果

启用拨动开关：如果要使用向 MES 提供结果数据的 MES 适配器，请将其开启。否则请关闭它。

适配器名称字段：输入要向其发送结果数据的 MES 适配器的名称。

服务器端口字段：指定将用于发送结果数据的 TCP 端口。默认端口：8090。

结果存储限制字段：指定要存储在 Smart AMS 缓冲区中的最大结果数。默认值：10000。

TooIsNet 8 集成

启用拨动开关：如果想要连接 Smart AMS 到 ToolsNet 8 服务器下载结果数据（OK、NOK、NYD），请开启它。否则请关闭它。

ToolsNet 8 IP 字段：指定用于连接的 IP 地址。

ToolsNet 8 port 字段：指定用于连接的 TCP 端口。默认端口：7110。

ILT

对于当前活动配置的所有区域中的所有 ILT 设备，您可以一次将最小和最大距离设置为特定值。如果没有指定相应的距离，可以将任何一个距离字段留空。

密码字段：输入密码，对于配置中的所有 ILT 设备来说，密码应该是相同的。

最小距离字段：指定工具与其基础站点之间的最小距离。距离的测量单位在 ILT 中指定。

最大距离字段：指定工具与其基础站点之间的最大距离。距离的测量单位在 ILT 中指定。

- 若要设置距离，请点击设置距离按钮。

- 若要添加 ILT 设备，请点击添加 ILT 设备。

IP 字段：指定设备的 IP 地址。

端口字段：指定用于连接的 TCP 端口。默认端口：80。

脱机或无法访问的 ILT 设备将不会收到设置更新。

Modbus 设备

IP 字段：指定用于连接的 IP 地址。只有支持 Read Coils（功能代码 1）和 Write Single Coil（功能代码 5）功能的 Modbus 设备才能与 Smart AMS 一起使用。

端口字段：指定用于连接的 TCP 端口。默认端口：502。

- 若要添加 Modbus 设备，请点击添加 Modbus 设备。

# 使用配置

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

## 创建新的配置。

每次创建空白配置时都会创建当前配置的快照。

- 点击 。

- 输入当前配置快照的说明，然后点击新建。

## 撤消或恢复操作

在配置部分，您可以撤消或恢复一个或多个操作，直至切换到另一个部分。

- 若要撤消操作，请点击 。

- 若要恢复之前撤消的操作，请点击 。

- 若要刷新数据，请点击

## 将当前配置推送到服务器

当您完成自定义配置后，可以将其推送到服务器。若某个站点当前正在处理的工件需要更新，则当该工件从该站点退出时，更新将被应用。也就是说，工件的处理不会中止。

每次将当前配置推送到服务器时都会创建它的快照。

- 点击 。

- 输入当前配置快照的说明，然后点击推送。

## 导入配置

每次导入配置时都会创建当前配置的快照。

- 在配置部分，点击 。

- 点击选择文件，然后选择带有配置的 .dat 文件。

- 输入当前配置快照的说明，然后点击导入。

## 导入 Excel 配置

您可以将现有的 .xlsx 配置文件导入到 Smart AMS Config 中。

导入 .xlsx 配置文件时，Smart AMS Config 中的当前配置将被覆盖。您的更改可能会丢失！

- 点击 ，然后点击导入 Excel 配置。

- 点击选择文件，然后选择您的 .xlsx 配置文件。

- 单击导入。

## 保存当前配置的快照

您可以将当前配置保存为以后可以使用的快照。

- 点击 并输入快照的说明。

- 单击保存。

快照随后将出现在 Smart AMS Config 的历史记录部分。

## 回滚配置中的更改

可以将配置回滚到上一个快照。

该操作只还原配置的上一个版本。它不会向服务器推送任何东西。

回滚配置时，Smart AMS Config 中的当前配置将被覆盖。您的更改可能会丢失！

- 要切换到历史记录部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择历史记录。

  视图中的列是：时间戳、说明、用户名、应用、恢复和导出。

- 在恢复列中，点击 。

时间戳：快照创建时间。

描述：创建快照时输入的说明性文本。

用户名：显示谁创建了快照。

应用：显示是否应用了快照。

恢复：点击 回滚配置。

导出：点击 可将选定的配置快照导出到 .dat 文件中。

## 导出配置

在历史记录部分，可以将配置快照导出到 .dat 文件。

- 要切换到历史记录部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择历史记录。

- 在导出列中，点击 。

# 添加和管理生产线

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 若要添加生产线，请点击添加生产线。

- 若要重新排列生产线，请使用拖放操作。

- 若要复制、粘贴或删除生产线，请使用该生产线的右键上下文菜单。

## 常规

生产线编号字段：指定装配生产线的顺序位置。示例：1、2、3。

生产线名称字段：输入装配生产线的名称。

扫描规则列表：选择装配生产线的扫描规则。扫描规则将应用于生产线中的所有 Smart AMS 站点。
使用示例：当工件进站尝试正在进行时，多层警示灯上的传统蓝色灯闪烁。当尝试完成 OK 或 NOK 时，它停止闪烁。如果进站尝试失败，多层警示灯上的常规红灯将指示错误状态。一旦进行新的进站尝试或站点切换到紧急模式，错误状态就会重置。
如果未选择扫描规则，则装配生产线中各站点的所有扫描都将被视为工件 ID。如果未指定输入源，则工件 ID 将为空。

使用站点联锁检查拨动开关：如果开启，若工件是从上一个站点以 OK 状态出站的，则其只能在装配生产线中的某个站点进站。否则，即使工件是从上一个站点以 NOK 状态出站的，也可以进站并被处理。
请注意，SQS3 返工站点通常忽略依赖性检查，即使它们所在的装配生产线激活了依赖性检查。

## 线路 PLC

启用拨动开关：如果开启，则 PLC 被激活。如果关闭，Smart AMS 将忽略它。

IP 字段：指定 PLC 的 IP 地址。相同的 IP 地址和端口组合可以在多条装配生产线上使用。

端口字段：指定用于连接的 TCP 端口。

协议版本清单：指定 PLC 应遵循的协议。

# 添加和管理站点

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 若要添加站点，请点击 生产线名称右侧，然后选择 Smart AMS 站点、SQS 站点或手动站点。如果站点没有与 Smart AMS 的连接，选择手动站点；Smart AMS 将忽略它。

- 若要重新排列生产线中的站点，请使用拖放操作。

- 若要复制、粘贴或删除站点，请使用该站点的右键上下文菜单。

此部分内容

- 指定 Smart AMS 站点的设置
- 在 Smart AMS 站点增加和管理控制器
- 添加配方
- 指定 SQS3 站点的设置
- 指定手动站点的设置

# 指定 Smart AMS 站点的设置

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击要配置的 Smart AMS 站点的图标，然后点击常规。

非活动切换开关：若此拨动开关开启，则站点处于非活动状态。非活动站点的图标会变暗。非活动站点不可用于执行工作；Smart AMS 通常忽略它们。如果关闭，则该站点激活。

站点名称字段：指定站点的名称。

站点编号字段：指定装配生产线中站点的顺序位置。示例：1、2、3。

说明（英文）字段：用英语描述该站点。

说明（本地）字段：用本地语言描述该站点。

工件进站列表：指定如何在站点让工件进站。
PLC：工件只能通过 PLC 进站。
条形码：工件只能通过扫码枪进站。
PLC 和条形码：工件只能通过 PLC 或扫码枪进站。
MES：工件只能通过 MES 进站。
MES 和条形码：工件只能通过 MES 或扫码枪进站。

执行模式列表：在有多个工具的情况下，它决定工具操作的顺序：并行或顺次。
在并行执行模式下，如果站点处有多个工具，操作员可以同时使用这些工具 - 站点所有配方中指定的所有工具将同时处于活动状态。为此，选择并行。
在顺次执行模式下，工具只能按照配方列出的顺序使用。为此，选择顺序。

返工站点列表：选择专用于工件返工的站点。它可以是一个 SQS3 返工站点。否则，选择不设置。

LAN 扫码枪

启用拨动开关：如果开启，则 LAN 扫码枪被使用。否则，不使用 LAN 扫码枪。

IP 字段：指定用于连接的 IP 地址。如果已将 LAN 扫码枪连接到 Smart AMS 服务器，请使用此设置。否则，将此字段留空。

端口字段：指定连接的端口。如果已将 LAN 扫码枪连接到 Smart AMS 服务器，请使用此设置。否则，将此字段留空。

工件空闲超时

覆盖全局设置拨动开关：若要在站点覆盖工件空闲超时的全局设置，请将其开启。否则请关闭它。

工件空闲超时字段：指定由于不活动而等待直到工件出站的时间段（以秒为单位）。达到空闲超时后，工件将以 NOK 状态出站。若要停用此功能，请将字段留空。

# 在 Smart AMS 站点增加和管理控制器

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击要添加控制器的 Smart AMS 站点的图标，然后点击控制器。

- 若要添加控制器，请点击添加控制器。

您可以添加多个控制器。

- 若要添加另一个控制器，请再次点击添加控制器。

- 若要复制、粘贴或删除控制器，请使用该控制器的右键上下文菜单。

非活动切换开关：若此拨动开关开启，则控制器处于非活动状态。不活动的控制器不可用于执行工作；Smart AMS 忽略了它们。如果关闭，则控制器被激活。

类型列表：指定控制器的类型：PF4000、PM4000、PF6000、STwrench、IXB、Flex（用于 PF6 Flex System）或 MTF6000。

名称字段：指定控制器的名称以便于识别。

IP 字段：指定控制器的 IP 地址。

端口字段：指定用于连接的 TCP 端口。它必须与控制器中指定的相同。示例：端口 4545 默认用于开放协议工具。

紧急程序字段：指定 Smart AMS 在紧急模式下工作时控制器中要设置的拧紧程序的数量。如果控制器在紧急模式下不受 Smart AMS 控制，则将该字段留空。可以通过控制器进行选择 - 例如，通过套筒选择器。即使已指定拧紧程序，通过套筒选择器或其他方法进行选择也有效。控制器从该拧紧程序开始，后续可以更改拧紧程序。

使用曲线拨动开关：若要获取扭矩和角度随时间变化的拧紧曲线，请开启拨动开关。如果不需要曲线，可以关闭它。

自由顺序模式拨动开关：若此拨动开关开启，则操作员可根据当前的配方按照其认为合理的顺序执行拧紧。如果拧紧顺序不重要，您可能想使用此选项。螺栓的拧紧程序和拧紧顺序由操作员选择的套筒决定。套筒选择器上的每个套筒都必须被分配一个控制器上指定的特定拧紧程序。如果关闭，则只能以预定的顺序执行拧紧。

使用扫描通过拨动开关：此设置仅在控制器类型为 PF6000 或 IXB 时有效。若此拨动开关开启，则 Smart AMS 将订阅通过扫描事件而不是 VIN 事件。此设置必须与控制器上的对应项（传递模式）匹配。也就是说，必须将扫码枪配置为将扫描的字符串传递到外部系统。

ILT 设备使用

启用拨动开关：如果开启，则 ILT 设备处于活动状态。否则将被忽略。

ILT 设备列表：选择 ILT 设备。否则，选择不设置。

标签 ID 字段：指定定位标记的标识。您可以在标记的贴纸上找到它。

Modbus 设备使用

启用拨动开关：如果开启，则 Modbus 设备处于活动状态。否则将被忽略。

Modbus 设备列表：选择 Modbus 设备。否则，选择不设置。

输入偏移量字段：指定传入信号的地址偏移量。

输出偏移量字段：指定传出信号的地址偏移量。

# 添加配方

您必须首先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击要添加配方的 Smart AMS 站点的图标，然后点击配方。

- 点击添加配方。若要添加另一个配方，请再次点击添加配方。

螺栓组名称字段：键入螺栓组名称 - 文本字符串，它是所有站点和配方中螺栓组的唯一识别符。这是螺栓外部信息的一部分。

螺栓组描述字段：输入螺栓组的描述。

PR 组合字段：将配方限制为特定的 PR 代码组合。为了接受所有工件，请将此字段留空。

控制器列表：选择要使用的控制器。

程序编号字段：指定拧紧程序编号。

拧紧计数字段：指定要使用指定拧紧程序拧紧的螺栓数量。

主轴计数字段：指定工具使用的转轴数。错误的数字将影响螺栓的输出数据，因为螺栓组名称将不能正确映射到结果。例如，如果拧紧计数设置为 3，而主轴计数设置为 2，这意味着配置中有 6 个螺栓。

MNO 计数字段：指定连续 NOK 重试的最多次数。当执行 OK 拧紧时，计数器复位为 0。当拧紧尝试为 NOK 时，它开始计数。对于不受限制的重试次数，请将字段留空。

区域 ID 字段：指定与该站点相关的 ILT 区域的标识。站点的 ILT 驱动工具只有在区域内才会启用。如果此字段留空，则将启用配方中指定的工具，而不管其位置如何。

# 指定 SQS3 站点的设置

您必须首先导航到 Smart AMS Config。

SQS3 站点不受 Smart AMS 控制。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击 SQS3 站点的图标。

非活动切换开关：若此拨动开关开启，则站点处于非活动状态。非活动站点的图标会变暗。Smart AMS 不能使用非活动的站点；它们将被忽略。如果关闭，则该站点激活。

站点名称字段：指定站点的名称。

站点编号字段：指定装配生产线中站点的顺序位置。示例：1、2、3。

说明（英文）字段：用英语描述该站点。

说明（本地）字段：用本地语言描述该站点。

SQS 站点 IP 字段：指定用于连接的 IP 地址。

是返工站点拨动开关：如果开启，则该站点被视为 SQS3 返工站点。否则，该站点被视为常规 SQS3 站点。

使用生产线 PLC 进站拨动开关：如果工件要通过生产线 PLC 进站，请开启该拨动开关。如果不使用生产线 PLC，则将其关闭。

返工站点列表：选择专用于工件返工的站点。它可以是一个 SQS3 返工站点。否则，选择不设置。

# 指定手动站点的设置

您必须首先导航到 Smart AMS Config。

手动站点不受 Smart AMS 控制。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击手动站点的图标。

非活动切换开关：若此拨动开关开启，则站点处于非活动状态。非活动站点的图标会变暗。Smart AMS 不能使用非活动的站点；它们将被忽略。如果关闭，则该站点激活。

站点名称字段：指定站点的名称。

站点编号字段：指定装配生产线中站点的顺序位置。示例：1、2、3。

说明（英文）字段：用英语描述该站点。

说明（本地）字段：用本地语言描述该站点。

# 添加和管理扫描规则

条形码扫描规则定义了当站点处于自动模式时，操作员将需要扫描的条形码的数量和顺序。它们还定义了如何从扫描内容中提取数据，如工件 ID 和 PR 代码。

每个扫描规则必须包含用于提取工件 ID 的条形码。

如果按照指定的顺序扫描预期数量的条形码，并且输入字符串符合扫描规则中为条形码指定的约束，则在指定扫描规则的装配生产线中的站点的工件进站将是成功的。

若要添加和管理扫描规则，必须先导航到 Smart AMS Config。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到扫描规则部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择扫描规则。

- 点击添加扫描规则，然后指定规则的名称。

在扫描规则部分，您可以撤消或恢复一个或多个操作，直至切换到另一个部分。

- 若要撤消操作，请点击 。

- 若要恢复之前撤消的操作，请点击 。

- 若要刷新数据，请点击

每个扫描规则可以包括多个条形码，这些条形码可以按照您的要求进行自定义。

- 若要添加条形码，请点击 。

- 若要重新排列扫描规则和条形码，请使用拖放操作。在扫描规则部分，扫描规则的顺序不影响工作流。条形码在扫描规则中的顺序决定了条形码的预期顺序。

- 若要复制、粘贴或删除扫描规则，请使用右键上下文菜单。

- 使用 和 可以展开或折叠该部分的项目。

## 常规

名称字段：为条形码指定名称。

长度字段：指定条形码的长度（以字符为单位）。

接受超出长度的条形码拨动开关：如果打开，Smart AMS 将接受长度大于指定值的条形码。关闭它以丢弃超大条形码。

合法字符列表：选择所有、数字和字母、仅限数字、仅限字母、仅限大写字母或仅限小写字母。

提取拨动开关：如果开启，Smart AMS 将从条形码中提取工件 ID。如果您不需要工件 ID，请关闭它。

开始位置字段：输入一个数字以指定条形码中工件 ID 的开头。

结束位置字段：输入一个数字以指定条形码中工件 ID 的结尾。若要读取到条形码的结尾，请将字段留空。

## PR 代码

每个条形码可以包括多个 PR 代码。

- 若要使 PR 代码可用于提取，请点击添加 PR 代码并指定其设置。

前缀字段：指定将自动前置到提取值的前缀。

开始位置字段：输入一个数字以指定条形码中 PR 代码的开头。

结束位置字段：输入一个数字以指定条形码中 PR 代码的结尾。若要读取到条形码的结尾，请将字段留空。

## PR 代码序列

提取拨动开关：如果开启，Smart AMS 将从条形码中提取多个 PR 代码。若要禁用此功能，请将其关闭。

PR 代码长度字段：输入 PR 代码的长度（以字符为单位）。

每个 PR 代码的前缀字段：指定将自动前置到每个提取的 PR 代码。

提取的 PR 代码的列表与从其他来源（例如 MES，如果以该方式配置的话）接收的 PR 代码合并。在这种情况下，PR 代码的组合列表将用于确定工件的工作流。

# 管理用户角色

在角色管理部分，您可以添加、编辑或删除用户角色。如果将多个角色分配给一个用户，则这些角色共同为该用户指定权限。

要管理用户和角色，您必须以超级用户身份登录。您可以使用首次登录 Smart AMS Config 时指定的用户名和密码，因为在 Smart AMS Config 中创建的第一个用户将被自动分配 Superuser 角色。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到角色管理部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择角色管理。

## 添加角色

- 点击 。

- 为角色指定一个名称。

- 点击权限字段，然后点击要与角色关联的权限：编辑配置、推送配置、重置配置、导入 Excel 配置、导入/导出快照、恢复快照或保存快照。若要分配多个权限，请重复选择步骤。

## 编辑角色

- 在编辑角色列中，点击 。

- 添加所需的权限。

- 若要删除不需要的权限，请点击 。

## 删除角色

- 在删除角色列中，点击 。

# 在 Smart AMS Config 中管理用户帐户

在用户管理部分，可以添加用户帐户并为其指定凭据。

要管理用户和角色，您必须以超级用户身份登录。您可以使用首次登录 Smart AMS Config 时指定的用户名和密码，因为在 Smart AMS Config 中创建的第一个用户将被自动分配 Superuser 角色。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到用户管理部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择用户管理。

## 添加新用户帐户

- 点击 。

- 输入您的用户名或要添加的用户的用户名。

- 输入您的密码或新用户的密码。

## 更改用户密码

- 在更改密码列中，点击 。

- 输入新密码。

## 为用户分配角色

- 在角色列中，点击 。

- 点击用户角色字段，然后点击某个角色以将其分配给用户。若要分配多个角色，请重复选择步骤。

Superuser 角色包括可以分配给用户的所有用户权限，以及管理用户和角色的能力。此角色始终可用，不能编辑或删除。

是管理员列中的绿点 表示超级用户。否则显示红点 。

## 删除用户账户

- 在删除用户列中，点击 。

  超级用户不能直接删除。若要删除超级用户，应先取消分配 Superuser 角色。

# 在 Smart AMS Config 中指定用户首选项

在用户首选项部分，您可以为当前登录的用户指定首选项。这些首选项将按每个用户保存。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到用户首选项部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择用户首选项。

显示语言列表：选择界面语言。您可以选择以下语言之一：英文、德文或中文。

主题列表：默认情况下，Smart AMS Config 的主题设置为亮。您可以将它改为暗。

时间戳格式列表：提供有下列选项：MM/DD/YYYY hh:mm:ss AM/PM (12H), YYYY-MM-DD hh:mm:ss (24H), DD.MM.YYVY hh:mm:ss (24H), DD/MM/YYYY hh:mm:ss (24H), YYYY/MM/DD hh:mm:ss (24H)

时区列表：选择您的时区。

密码：要更改当前登录用户的密码，请点击更改。

# Microsoft Excel 格式的配置文件

在 Smart AMS 1.5 之前的旧版本中，所有配置设置（包括全局配置、站点列表、SAMS 配方列表和常量）都存储在 .xlsx 配置文件中。

Smart AMS Config 从 1.5 版开始添加。您可以将现有的 .xlsx 配置文件导入到 Smart AMS Config 中，然后微调配置。

也可以在 Smart AMS V.1.6 中继续使用 .xlsx 配置文件。

不应编辑配置文件中的常量工作表。

.xlsx 配置文件一旦导入到 Smart AMS Config 中，就不能导出回来。

此部分内容

- 获取 Microsoft Excel 格式的配置模板
- .xlsx 配置文件中的全局配置
- .xlsx 配置文件中的站点设置
- xlsx 配置文件中的配方列表

# 获取 Microsoft Excel 格式的配置模板

为了使用 Smart AMS V.1.6 中的所有功能，建议您使用 Smart AMS Config 来创建配置。但是，您始终可以获得 Microsoft Excel 格式的配置模板。

- 使用桌面上或 Windows 开始菜单上的打开 Smart AMS Config UI 快捷方式 前往 Web 浏览器中的 Smart AMS Config 地址。
  示例地址：http://localhost:6395。确保将本地主机替换为运行 Smart AMS Config 的计算机的实际 IP 地址。

- 要切换到配置部分，请点击页面左侧的导航面板中的 。在屏幕较小的移动设备上，点击页面右上角的用户名，然后选择配置。

- 点击 ，然后点击下载配置模板。

# .xlsx 配置文件中的全局配置

在 .xlsx 配置文件中，Global Configurations 工作表包含 Smart AMS 的全局配置设置。

## 客户信息

Customer Name：指定客户的名称。

Plant Name：指定工厂的名称。

Number of Stations：指定站点的数量。

## 通用配置

Product Sign-in Override 下拉列表：选择 FALSE 可以防止另一个工件正在处理的同时允许新工件进站。如果选择 TRUE，则当新工件进站时，当前工件将被允许出站，同时新工件将被允许进站。

Ignore same Product Sign-In 下拉列表：如果工件 ID 与紧随其后进站的工件 ID 相同，选择 TRUE 可以防止新的工件进站。如果选择 FALSE，则不执行工件 ID 比对。工件将进站，拧紧工作流将从头开始。

MNO Strategy 下拉列表：
InactiveWorkflow：如果工作步骤中的所有拧紧重试尝试都失败了，则该工具将被锁定，直到手动跳过当前工作步骤。
ProductAbort：如果工作步骤中的所有拧紧重试尝试都失败了，则工件将自动出站。
WorkflowRestart：如果工作步骤中的所有拧紧重试尝试都失败了，则工作流将从头开始。此选项是最不推荐的，因为之前的拧紧结果将被丢弃，不会发送到 MES。
Proceed：如果工作步骤中的所有拧紧重试尝试都失败了，则 Smart AMS 将自动进行到下一个工作步骤。

Emergency Result Mode 下拉列表：
Static：在紧急模式中，该工具始终处于启用状态。工件 ID 不能输入。所有结果将带有一个静态识别符 - “人工”。
OnlyByProductSignIn：只有在工件进站后才启用该工具。工件进站时使用的工件 ID 将用于结果。
StaticAndOverwriteByProductSignIn：在紧急模式中，该工具始终处于启用状态。如果没有工件进站，则所有结果将带有一个静态识别符 - "MANUAL”。工件进站后，工件进站时使用的工件 ID 将用于结果。
Passive：工件识别不受 Smart AMS 控制。例如，如果扫码枪附加到控制器上，则从扫码枪收到的工件 ID 将被附加到拧紧结果。从控制器接收的任何工件 ID 将不会被 Smart AMS 更改。如果既未指定扫码枪也未指定其他输入源，则工件 ID 将为空。

您可以使用连接到 PF6000 控制器的扫码枪，在自动模式和控制器的手动模式下扫描，即使它没有连接到 Smart AMS。在这种情况下，Emergency Result Mode 设置必须设为 Passive，PF6000 站点的 Product Sign-In 设置必须设为 Barcode。
在 PF6000 的设置中，扫描通过功能需要停用。应配置控制器上的手动模式，以便它在键开关设置为紧急模式时处于活动状态。

Emergency Sign In Mode 下拉列表：
ByStationSignIn：在紧急模式中，工件可采用与自动模式相同的进站方式进站。如果在站点使用扫描规则，扫码枪将不被考虑用于此模式下的紧急模式进站。
ByStationSignInAndBarcodeScanner：工件可采用与自动模式相同的进站方式进站，也可以通过扫码枪进站。如果工件是通过扫码枪进站的，并为该站点配置了 PLC，则 Smart AMS 会将扫描的代码发送到 PLC。必要时，顺序将在 PLC 上核实，然后重新排列。当处于紧急模式时，不会对扫描的内容应用扫描规则。
OnlyByBarcodeScanner：工件只能通过使用扫码枪进站。如果为该站点配置了 PLC，则 Smart AMS 会将扫描的代码发送到 PLC。必要时，顺序将在 PLC 上核实，然后重新排列。当处于紧急模式时，不会对扫描的内容应用扫描规则。

Product Status Storage Limit：指定要存储在 Smart AMS 缓冲区中的工件状态信息条目的最大数量。默认值：10000。

Station Dependency 下拉列表：
Off：没有站点互锁。即使工件是从上一个站点以 NOK 状态出站的，也可以进站并被处理。
InLineDependency：在装配生产线中，只有当工件以 OK 状态从上一个站点出站时才能进站。如果一个站点的拧紧结果为 NOK，那么在该站点拧紧的所有螺栓都应该拧松，然后工件可以在同一站点进站以重新拧紧。
AcrossLineDependency：只有当工件以 OK 状态从上一个站点出站时才可以进站，即使上一个站点属于不同的装配生产线。如果一个站点的拧紧结果为 NOK，那么在该站点拧紧的所有螺栓都应该拧松，然后工件可以在同一站点进站以重新拧紧。

SQS3 返工站点通常忽略联锁检查，即使它们所在的装配生产线激活了联锁检查。

Reject OK Product Sign-In 下拉列表：
TRUE：已在同一站点处理 OK 的工件不能进站。当尝试进站时，连接到站点的多层警示灯上的绿色段将启动。工件将无法进站。然而，这样的工件仍然可以通过在检测到工件已经 OK 之后发送的 IO 信号在该站点进站。如果工件没有检测到已经 OK，则 IO 信号将被忽略。
FALSE：已在同一站点处理 OK 的工件可以进站，无论进站方式如何。

Product Disconnect Timeout：指定在与控制器的连接丢失的情况下等待直到工件出站的时间段（以秒为单位）。如果此字段留空，则当 Smart AMS 失去与控制器的连接时，工件将立即出站。然后，Smart AMS 将等待新的工件进站，以恢复站点的工作流。

ILT Server Port：指定用于连接的 TCP 端口。默认端口：10458。

Monitoring API：如果您想使用监视 API，请选择 TRUE。否则，选择 FALSE 禁用此功能并节省系统资源。

Wait for Tool Stop：选择 TRUE 让系统等待站点的所有工具停止旋转，然后中止工作流并让工件出站。运行工具产生的所有拧紧结果都将报告给 MES。典型用例：按下“跳过工件”按钮或让另一个工件进站。如果设为 FALSE，工件将总是在检测到相应的信号时立即出站。系统将丢弃工件出站后处理的所有拧紧结果。

## ToolsNet 8 集成

Report to ToolsNet 8 下拉列表：如果想要连接 Smart AMS 到 ToolsNet 8 服务器下载结果数据（OK、NOK、NYD），请选择 TRUE。否则，请选择 FALSE。

ToolsNet 8 IP：指定用于连接的 IP 地址。

ToolsNet 8 Port：指定用于连接的 TCP 端口。默认端口：7110。

## MES 构建数据配置

Use MES Build Data protocol 下拉列表：如果要从 MES 适配器接收构建数据，请选择 TRUE。否则，选择 FALSE。

Server Port：指定将用于接收构建数据的 TCP 端口。默认端口：8089。

Adapter Name：输入您要从中接收构建数据的 MES 适配器的名称。

## MES 结果配置

Use MES Result Adapter 下拉列表：如果要将结果数据发送到指定的 MES 适配器，请选择 TRUE。否则，选择 FALSE。

Server Port：指定将用于发送结果数据的 TCP 端口。默认端口：8090。

Result Storage Limit：指定要存储在 Smart AMS 缓冲区中的最大结果数。默认值：10000。

## MES 结果适配器名称

该列表显示了向 MES 提供结果数据的 MES 适配器。

Adapter No. 列：指定适配器的顺序位置。示例：1、2、3。

Adapter Name 列：输入要向其发送结果数据的 MES 适配器的名称。

## MES 进站配置

使用这些设置来配置 MES 进站功能。

Use MES Sign In protocol 下拉列表：如果您的系统配置为使用 MES Adapter 让工件进站，请选择 TRUE。否则，选择 FALSE 禁用此功能并节省系统资源。

Server Port：指定 TCP 端口，它将被用于传入来自 MES 进站适配器的连接。默认端口：8091。

Adapter Name 列：输入 MES 进站适配器的名称。

## LineConfig

该列表显示了带有 PLC 的装配生产线。

Line No. 列：指定装配生产线的顺序位置。示例：1、2、3。

Line Name 列：输入装配生产线的名称。

PLC IP：指定 PLC 的 IP 地址。相同的 IP 地址和端口组合可以在多条装配生产线上使用。

PLC Port：指定用于连接的 TCP 端口。

Activated 下拉列表：选择 TRUE 使 PLC 处于活动状态。否则，选择 FALSE 使其处于非活动状态。如果 PLC 处于非活动状态，Smart AMS 将忽略它。

Protocol 下拉列表：指定 PLC 应遵循的协议。

Dependency Check 下拉列表：要在选定的装配生产线中启用联锁检查，请选择 TRUE。在这种情况下，若工件是从上一个站点以 OK 状态出站的，则其只能在装配生产线中的某个站点进站。如果您选择 FALSE，即使工件是从上一个站点以 NOK 状态出站的，也可以进站并被处理。
请注意，SQS3 返工站点通常忽略依赖性检查，即使它们所在的装配生产线激活了依赖性检查。

# .xlsx 配置文件中的站点设置

在 .xlsx 配置文件中，转到 Station List 工作表。它包含一个站点列表及其设置。在列中输入数据。

Station Name：指定站点的名称。

Line No.：指定站点所属的装配生产线。

Station No.：指定装配生产线中站点的顺序位置。示例：1、2、3。

Station Id：Line No. 和 Station No. 都写在同一个单元格，用下划线分隔 "_"。它必须与 PLC 电报中使用的站点 ID 相匹配。

一个项目不能包含两个或多个具有相同 ID 的站点。

Node Type：指定提供连接的节点类型。可能的值：Manual、PF4000、PM4000、PF6000、StWrench、IXB、SQS、SQSRework。当 STwrench 本身直接连接到 Smart AMS 时，使用 StWrench。当站点不由 Smart AMS 控制时，选择 Manual，然后 Smart AMS 将忽略它。

IXB 包括 ICB 和 ITB 工具类型。

Node IP：指定控制器或 SQS3 的 IP 地址。

Node Port：指定用于连接的 TCP 端口。它必须与控制器中指定的相同。示例：端口 4545 默认用于开放协议工具。

Controller Name：指定控制器的名称以便于识别。

Controller Counter By Station：指定站点控制器的数量。站点第一个控制器计数为 1。更多控制器按顺序计数：2、3，等等。当站点没有控制器时，键入 0。例如：使用 SQS3 站点。

Station Description(En)：用英语描述该站点。

Station Description(Local)：用本地语言描述该站点。

Emergency Pset / Mode：指定 Smart AMS 在紧急模式下工作时控制器中要设置的拧紧程序的数量。如果控制器在紧急模式下不受 Smart AMS 控制，则将该单元格留空。可以通过控制器进行选择 - 例如，通过套筒选择器。即使已指定拧紧程序，通过套筒选择器或其他方法进行选择也有效。控制器从该拧紧程序开始，后续可以更改拧紧程序。

Rework Node：相应返工站点的 Line No. 和 Station No. 都写在同一个单元格，用下划线分隔 "_"。它必须与 PLC 电报中使用的站点 ID 相匹配。

Product Sign-In 下拉列表：指定工件如何在站点进站。
PLC：工件只能通过 PLC 进站。
Barcode：工件只能通过扫码枪进站。
PLCAndBarcode：工件只能通过 PLC 或扫码枪进站。
MES：工件只能通过 MES 进站。
MESAndBarcode：工件只能通过 MES 或扫码枪进站。

Activated 下拉列表：选择 TRUE 使站点处于活动状态。否则，选择 FALSE 使其处于非活动状态。非活动站点不可用于执行工作；Smart AMS 通常忽略它们。

Execution Mode 下拉列表：在有多个工具的情况下，它决定工具操作的顺序：并行或顺次。
在并行执行模式下，如果站点处有多个工具，操作员可以同时使用这些工具 - 站点所有配方中指定的所有工具将同时处于活动状态。为此，选择 Parallel。
在顺次执行模式下，工具只能按照配方列出的顺序使用。为此，选择 Sequential。
如果站点不受 Smart AMS 控制，请选择 Uncontrolled。示例：SQS 和 SQSRework 类型的站点。请注意，对于 Smart AMS 站点，使用此选项与使用 Sequential 相同。

Free Order Mode：若选择 TRUE，则操作员可根据当前配方按照其认为合理的顺序执行拧紧。如果拧紧顺序不重要，您可能想使用此选项。螺栓的拧紧程序和拧紧顺序由操作员选择的套筒决定。套筒选择器上的每个套筒都必须被分配一个控制器上指定的特定拧紧程序。当设置为 FALSE 时，则只能以预定的顺序执行拧紧。

ILT Device IP：指定 ILT 设备的 IP 地址。

ILT Tag ID：指定定位标记的标识。您可以在标记的贴纸上找到它。

Traces：若要获取扭矩和角度随时间变化的拧紧曲线，请选择 TRUE。如果不需要曲线，选择 FALSE 可禁用此功能并节省系统资源。

Modbus Device IP：指定用于连接的 IP 地址。只有支持 Read Coils（功能代码 1）和 Write Single Coil（功能代码 5）功能的 Modbus 设备才能与 Smart AMS 一起使用。

Modbus Input Offset：指定传入信号的地址偏移量。

Modbus Output Offset：指定传出信号的地址偏移量。

LAN Scanner IP：指定用于连接的 IP 地址。如果已将 LAN 扫码枪连接到 Smart AMS 服务器，请使用此设置。否则，将此字段留空。

LAN Scanner Port：指定连接的端口。如果已将 LAN 扫码枪连接到 Smart AMS 服务器，请使用此设置。否则，将此字段留空。

使用扫描通过：此设置仅在控制器类型为 PF6000 或 IXB 时有效。当设为 TRUE 时，Smart AMS 将订阅通过扫描事件而不是 VIN 事件。此设置必须与控制器上的对应项（传递模式）匹配。也就是说，必须将扫码枪配置为将扫描的字符串传递到外部系统。

# xlsx 配置文件中的配方列表

.xlsx 配置文件中的 SAMS Recipe List 工作表包含拧紧操作的一组规范。

Station Id：Line No. 和 Station No. 都写在同一个单元格，用下划线分隔 "_"。它必须与 PLC 电报中使用的站点 ID 相匹配。此处指定的站点 ID 必须是 .xlsx 配置文件中的 Station List 工作表上使用的站点 ID。

Controller Name：指定要使用的控制器。它必须是 .xlsx 配置文件中的 Station List 工作表上使用的站点 ID。

PR Codes：将配方限制为特定的 PR 代码组合。为了接受所有工件，请将此字段留空。

PSet(PF) / Mode(PM)：指定拧紧程序编号。

Bolt Count：指定要使用 PSet(PF) / Mode(PM) 列中指定的拧紧程序拧紧的螺栓数量。

Spindle Count：指定工具使用的转轴数。错误的数量会影响螺栓的输出数据。在多轴拧紧的情况下，主轴计数是螺栓名称的一部分；否则，螺栓名称将不能正确地映射到结果。例如，如果 Bolt Count 设置为 3，而 Spindle Count 设置为 2，这意味着配置中有 6 个螺栓。

Bolt Name：键入螺栓名称 - 一个任意文本字符串，它是所有站点和配方中螺栓的唯一识别符。这是螺栓外部信息的一部分。

Bolt Description：输入螺栓的描述。

MNO Count：指定连续 NOK 重试的最多次数。当执行 OK 拧紧时，计数器复位为 0。当拧紧尝试为 NOK 时，它开始计数。对于不受限制的重试次数，请将单元格留空。

Area ID：指定与该站点相关的 ILT 区域的标识。站点的 ILT 驱动工具只有在区域内才会启用。如果此字段留空，则将启用配方中指定的工具，而不管其位置如何。

# 故障排除和保养

本节提供了对问题进行故障排除的帮助，并包含有助于您维护和维修产品的信息。

# 故障排除和保养概述

本部分介绍了可能由软件错误配置和硬件故障引起的常见问题的解决方案。在您联系服务代表之前，我们强烈建议阅读本部分描述的相关问题。

为了安全和正确使用，务必阅读相应的工具手册中的安全信息。

您可能还需要查阅与您的任务相关的更具体的部分：

- 有关配置特点的说明，请参见配置部分。

- 系统要求在介绍部分 > 系统概述子部分进行了详细说明。

- 如果您需要重新安装产品，请按照安装和升级部分的说明操作。

# 许可功能不足

当许可证中定义的功能数量与配置中使用的功能数量不匹配时，就会发生此错误。

原因 | 解决方案
--- | ---
主轴计数不匹配。 | 请注意，在配置中有一个站点意味着在该站点至少有一个主轴，即使没有指定主轴计数。确保您指定了正确的主轴数量。

# 使用静态 IP 地址

必须为 Smart AMS 中使用的所有工具使用静态 IP 地址。您可以通过手动方式将 IP 地址配置为静态地址，或通过 DHCP 保留的方式来配置。使用 MAC 地址来为特定设备保留 IP 地址。

# IP 地址和端口冲突

所有用于连接的 IP 地址和端口必须可用来接收和发送数据。两台或更多设备使用同一个 IP 地址和端口将在设备之间造成冲突，系统将无法与彼此通信。

执行下列操作来检查系统网络 IP 协议：

1. 尝试用 `ping` 命令测试相关 IP 地址的网络连通性，必要时检查 HMI 的 DNS 设置。

2. 运行 `netstat` 命令。该命令将显示若干网络接口的进出网络连接。

如果发现重复的 IP 地址，请联系现场系统管理员协助。

如果没有发现重复的 IP 地址，请联系现场系统管理员查看是否有防火墙阻止您访问 IP 地址和端口。

# Wi-Fi 射频干扰

无线设备（比如微波发射器、无线摄像头或邻近的 Wi-Fi 设备）可能干扰您用来将设备连到 HMI 的 Wi-Fi 连接。如果您的 Wi-Fi 设备太多，干扰也会出现。

通过检查下列条件确保您拥有稳定的 Wi-Fi 连接：

- 检查发射器/路由器的安装位置。

- 重新定位所涉设备周围的其他无线设备。

- 通过增加天线来增强信号和/或安装 Wi-Fi 扩展器来扩大范围。

- 添加第二台 Wi-Fi 路由器。

# 条码无法识别

因为下表中提到的几个原因，扫码枪可能无法识别条码。

原因 | 解决方案
--- | ---
扫码枪所设置的条码识别格式与实际条码类型不匹配。 | 即使扫码枪能够识别多种格式的条码，受编程限制，它可能每次只能识别一种格式。请参见扫码枪随附的文档详细了解如何指定匹配您的条码格式的条码格式。
条码参数已更改，这使得扫码枪的配置无效。 | 调整您的扫码枪以识别新的条码。
由于硬件故障，扫码枪被取代。 | 配置新的扫码枪以识别想要的条码格式。请参见扫码枪随附的文档。
由于不当关机，扫码枪的配置损坏。 | 以手动方式或从备份文件（如有）恢复扫码枪的配置。
您正在扫描的条码所在的表面发亮且反光 — 比如，塑料或金属。 | 拆下塑料盖。
条码无法读取。 | 目检条码。试着用另一把扫码枪识别它，看它是否可以读取。

# 条码被识别为错误

原因 | 解决方案
--- | ---
操作员扫描了错误零件的条码。 | 确保为操作员提供正确的零件且这些零件有正确的条码。
条码包含无效的字符。 | 条码必须只包含 ASCII 字符。确保您扫描的条码中没有不能使用的字符。
条码终止符未设置。 | 在扫码枪的设置中指定条形码终止符。例如，#13#10 表示 <CR><LF>（回车符、换行符）。
条码格式不正确。 | 确保条码符合具体系统的规则。比如，所有 EAN-13 条码必须包含 13 位数。

# 工具在自动模式下启动失败

原因 | 解决方案
--- | ---
站点和 Smart AMS 之间存在连接问题。 | 识别并解决任何可能的网络连接问题。
Smart AMS 处于紧急模式。 | 检查多层警示灯（如有）中的紧急模式指示灯的状态。解决根本原因，然后在自动模式下启动站点。
Smart AMS 处于错误状态。错误指示灯亮起。 | 检查日志文件中没有成功的步骤，然后采取纠正措施。日志文件的路径：%ProgramData%\AMP\。例如：C:\ProgramData\AMP\。
工件的 PR 代码与 Smart AMS Config 中指定的表达式不匹配。 | 重新配置系统以接受条形码或用正确的工件替换错误的工件。
有一个拧紧程序源选择错误。 | 检查控制器的配置，尤其是拧紧程序选择源的配置。
工具的固件不兼容。 | 检查您的工具是否有合适的固件版本。如果匹配错误，推荐的固件将闪烁。
防火墙正在阻塞流量。操作系统中可能内置了防火墙并默认为启用。 | 检查防火墙设置以确保工具的 IP 地址和端口可用于通信。
工具 IP 地址或端口与其他工具冲突。 | 确保该工具的 IP 地址和端口设置是唯一的。

# 工具在紧急模式下启动失败

即使设置了拧紧程序，工具也不会启动。

原因 | 解决方案
--- | ---
控制器和 Smart AMS 之间存在连接问题。 | 确保控制器和 Smart AMS 之间的网络连接。如果检测到网络断开，请重新启动控制器。 如果与 Smart AMS 的连接正常，请检查日志文件中是否有未成功的步骤，然后采取纠正措施。日志文件的路径：%ProgramData%\AMP\。例如：C:\ProgramData\AMP\。

# 螺栓的结果数据错误

原因 | 解决方案
--- | ---
指定的主轴数量不正确。 | 验证 Smart AMS Config 中的主轴计数参数中是否指定了正确的主轴数量。 在多轴拧紧的情况中，例如，如果拧紧计数设置为 3，而主轴计数设置为 2，这意味着配置中有 6 个螺栓。

# Smart AMS 无法与控制器建立连接

原因 | 解决方案
--- | ---
网络未安装或未正确配置。 | 检查您的网络配置。
连接无法建立，因为 IP 地址或端口错误。 | 检查 Smart AMS Config 中指定的 IP 地址和端口编号是否与控制器中的 IP 地址和端口编号匹配。
Smart AMS Manager 已停止响应。 | 重新启动计算机上 Windows 服务中列出的 SAMS 服务。

# 导航到 "localhost:6394” 失败

原因 | 解决方案
--- | ---
Smart AMS Manager 已停止响应。 | 重新启动计算机上 Windows 服务中列出的 SAMS 服务。
不支持 web 浏览器。 | 使用 Google Chrome。
安装 Smart AMS 期间指定了不同的端口编号。 | 使用安装 Smart AMS 时指定的端口编号代替端口 6394。

# 参考

在本节中，您可以找到其他有用的信息。

# 日志文件

在 Smart AMS 中，每个模块都有其自己的日志文件来帮助您排障或搜索所需的信息。

日志文件的默认路径为 C:\ProgramData\AMP\。例如：C:\ProgramData\AMP\AMPManager\log\amp-manager.service.log，这是 Smart AMS Manager 日志文件。

当分析日志文件时，建议您先查看最后修改文件时的日期和时间。

# 合并 PR 代码

PR 代码是特定零件的模型代码。我们现在以机动车零件为例加以说明。

PR 代码和 PR 组合的例子
变速箱 | PR 组合 | 发动机 | PR 组合 | 汽车制造商 | PR 组合
--- | --- | --- | --- | --- | ---
MQ250-6F | E2J | 1.6L/85kW | MM8 / D4K | 知名厂商 A | K8K
MQ350-6F | E3N | 2L/103kW PD | D3X / D7N | 知名厂商 B | K8C
DQ250-6F | E4S | 2L/110kW | D2T / D2Z | 知名厂商 C | K8P / 7N0 / 7JK
MQ200-6F | E5M | 2L/147kW | D2L |  |
DQ200-7F | E6G | 3.2L/184kW | D6D |  |
MQ500 | E7U | 1.4L/88kW | D23 |  |
|  | 1.4L/92kW | D33 |  |

当组合 PR 代码时，请使用下列布尔运算符。

布尔运算符
标识 | 涵义
--- | ---
/ | OR（或）
+ | AND（与）
! | NOT（非）

使用圆括号将两个或多个 PR 代码组合在一起。在一个表达式中将一系列 PR 代码组合在一起，可以表明这些 PR 代码在该表达式内组成一个项。

如果 PR 代码包含空格或其他非字母数字字符，请将 PR 代码用双引号括起来。请注意，双引号必须用反斜杠字符转义，如下面的例子所示：(Sunroof + \"Five Doors\") / (\"White Color\" + !\"Lane Assistant\")。

PR 组合中使用括号的示例
PR 组合 | 涵义
--- | ---
(K8P / 7N0 / 7JK) + (E7U + (D23 / D33)) | 知名厂商 C 制造 AND（MQ500 变速箱 AND（88kW OR 92kW 发动机））
K8C + (E5M / E6G) | 知名厂商 B 制造 AND (MQ200-6F OR DQ200-7F 变速箱)

# TCP/IP 通信端口

系统组件被预配置为使用默认端口。其中的端口可能需要重新配置以消除冲突，具体取决于您的具体硬件和软件配置。

在开放协议工具中，工具本身充当服务器。

组件 | 默认配置路径 | 默认端口
--- | --- | ---
FlexNet > Error Proofing License Manager web 界面 | C:\LLM\LLM\apache-tomcat-9.0.36\conf\server.xml | 8082
FlexNet > 许可服务器监听端口 | Error Proofing License Manager > 设置 | 7070
ILT 服务器端口 | Smart AMS Config > 常规 > 高级 | 10458
Keycloak 应用程序服务器 | 内部配置。 | 8306
Keycloak 管理器 | 内部配置。 | 6396
MES 构建数据端口 | Smart AMS Config > 常规 > MES | 8089
MES 结果数据端口 | Smart AMS Config > 常规 > MES | 8090
MES 进站端口 | Smart AMS Config > 常规 > MES | 8091
开放协议工具 | Smart AMS Config > 选择站点 > 控制器 | 4545
PLC | Smart AMS Config > 选择站点 > 控制器 | 8001
RabbitMQ 监听端口 | 在 RabbitMQ 中指定。 | 5672
Smart AMS Manager | 在安装 Smart AMS 时指定。 | 6394
Smart AMS Config | 硬编码。 | 6395

# 控制器的 IO 设置

## Smart AMS 输出（从 Smart AMS 到控制器）

相应的 Smart AMS IO | PF4000 变量 | PM4000 变量（PLC 中的设置） | PF6000 变量 | Modbus 设备
--- | --- | --- | --- | ---
紧急模式 | 外部监控 1 | %IX 13000.0 | 通用 IO 1 | 第一输入位
工件 OK | 外部监控 2 | %IX 13000.1 | 通用 IO 2 | 第二输入位
工件 NOK | 外部监控 3 | %IX 13000.2 | 通用 IO 3 | 第三输入位
工件运行 | 外部监控 4 | %IX 13000.3 | 通用 IO 4 | 第四输入位
系统错误 | 外部监控 5 | %IX 13000.4 | 通用 IO 5 | 第五输入位

## Smart AMS 输入（从控制器到 Smart AMS）

相应的 Smart AMS IO | PF4000 变量 | PM4000 变量（PLC 中的设置） | PF6000 变量 | Modbus 设备
--- | --- | --- | --- | ---
紧急模式 | 外部监控 1 | %QX 13000.0 | 外部监控 1 | 第一输出位
跳过工件 | 外部监控 2 | %QX 13000.1 | 外部监控 2 | 第二输出位
跳过步骤 | 外部监控 3 | %QX 13000.2 | 外部监控 3 | 第三输出位
覆盖 OK 状态 | 外部监控 4 | %QX 13000.3 | 外部监控 4 | 第四输出位

# 术语与缩写

字母 | 术语 | 说明
--- | --- | ---
A | AMP | 装配管理平台
| AMS | 装配管理系统
I | ICB | 集成控制器，紧凑传感范围，电池
| ILT | Industrial Location Tethering
| ITB | 集成控制器，传感范围，电池
| IXB | ICB 和 ITB 的统称
M | MES | 制造执行系统
| MNO | Not OK 重试的最大次数
N | NOK | 异常
| NYD | 未完成
P | PLC | 可编程逻辑控制器
| PR 代码 | 工件属性代码
| PSet | 拧紧程序
S | SAMS | Smart AMS，智能装配管理系统
| SQS | 可扩展质量解决方案

# 第三方许可证

本部分涉及 Smart AMS 随附的某些第三方组件的许可信息。

此部分内容

- List of third-party software
- 学术自由许可证 V.2.1
- Apache 软件许可证，版本 2.0
- 零子句 BSD (0BSD)
- BSD 2-clause“简化”许可证
- BSD 3-clause“修改”许可证
- BSD 4-clause“原始”许可证
- Creative Commons CC0 1.0 Universal
- Creative Commons Attribution-ShareAlike 2.0
- Creative Commons Attribution-ShareAlike 3.0 Unported 许可
- 知识共享版权归属 4.0 国际公共许可证
- GNU General Public License, GPL V2
- GNU General Public License, v.2, with Classpath Exception
- ISC 许可证
- Inno 安装许可证
- MIT 许可证（MIT）
- Mozilla 公共许可证
- Mozilla Public License, v.2.0 (MPL-2.0)
- ODC 归属许可证 (ODC-By)
- Unlicense
- zlib 许可证

# List of third-party software

The following third-party software items are included in Smart AMS.

Third-party software
Software | Version | License
--- | --- | ---
.NET | 5.0 | MIT
.NET Core | 2.0 | MIT
.NET Core | 2.2 | MIT
@babel/code-frame | 7.10.4 | MIT
@babel/code-frame | 7.14.5 | MIT
@babel/compat-data | 7.12.7 | MIT
@babel/compat-data | 7.14.7 | MIT
@babel/core | 7.12.3 | MIT
@babel/core | 7.14.8 | MIT
@babel/generator | 7.12.5 | MIT
@babel/generator | 7.14.8 | MIT
@babel/helper-annotate-as-pure | 7.10.4 | MIT
@babel/helper-builder-binary-assignment-operator-visitor | 7.10.4 | MIT
@babel/helper-builder-react-jsx | 7.10.4 | MIT
@babel/helper-builder-react-jsx-experimental | 7.12.4 | MIT
@babel/helper-compilation-targets | 7.12.5 | MIT
@babel/helper-compilation-targets | 7.14.5 | MIT
@babel/helper-create-class-features-plugin | 7.12.1 | MIT
@babel/helper-create-regexp-features-plugin | 7.12.7 | MIT
@babel/helper-define-map | 7.10.5 | MIT
@babel/helper-explode-assignable-expression | 7.12.1 | MIT
@babel/helper-function-name | 7.10.4 | MIT
@babel/helper-function-name | 7.14.5 | MIT
@babel/helper-get-function-arity | 7.10.4 | MIT
@babel/helper-get-function-arity | 7.14.5 | MIT
@babel/helper-hoist-variables | 7.10.4 | MIT
@babel/helper-hoist-variables | 7.14.5 | MIT
@babel/helper-member-expression-to-functions | 7.12.7 | MIT
@babel/helper-member-expression-to-functions | 7.14.7 | MIT
@babel/helper-module-imports | 7.12.5 | MIT
@babel/helper-module-imports | 7.14.5 | MIT
@babel/helper-module-transforms | 7.12.1 | MIT
@babel/helper-module-transforms | 7.14.8 | MIT
@babel/helper-optimise-call-expression | 7.12.7 | MIT
@babel/helper-optimise-call-expression | 7.14.5 | MIT
@babel/helper-plugin-utils | 7.10.4 | MIT
@babel/helper-remap-async-to-generator | 7.12.1 | MIT
@babel/helper-replace-supers | 7.12.5 | MIT
@babel/helper-replace-supers | 7.14.5 | MIT
@babel/helpers | 7.12.5 | MIT
@babel/helpers | 7.14.8 | MIT
@babel/helper-simple-access | 7.12.1 | MIT
@babel/helper-simple-access | 7.14.8 | MIT
@babel/helper-skip-transparent-expression-wrappers | 7.12.1 | MIT
@babel/helper-split-export-declaration | 7.11.0 | MIT
@babel/helper-split-export-declaration | 7.14.5 | MIT
@babel/helper-validator-identifier | 7.10.4 | MIT
@babel/helper-validator-identifier | 7.14.8 | MIT
@babel/helper-validator-option | 7.12.1 | MIT
@babel/helper-validator-option | 7.14.5 | MIT
@babel/helper-wrap-function | 7.12.3 | MIT
@babel/highlight | 7.10.4 | MIT
@babel/highlight | 7.14.5 | MIT
@babel/parser | 7.12.7 | MIT
@babel/parser | 7.14.8 | MIT
@babel/plugin-proposal-async-generator-functions | 7.12.1 | MIT
@babel/plugin-proposal-class-properties | 7.12.1 | MIT
@babel/plugin-proposal-decorators | 7.12.1 | MIT
@babel/plugin-proposal-dynamic-import | 7.12.1 | MIT
@babel/plugin-proposal-export-namespace-from | 7.12.1 | MIT
@babel/plugin-proposal-json-strings | 7.12.1 | MIT
@babel/plugin-proposal-logical-assignment-operators | 7.12.1 | MIT
@babel/plugin-proposal-nullish-coalescing-operator | 7.12.1 | MIT
@babel/plugin-proposal-numeric-separator | 7.12.1 | MIT
@babel/plugin-proposal-numeric-separator | 7.12.7 | MIT
@babel/plugin-proposal-object-rest-spread | 7.12.1 | MIT
@babel/plugin-proposal-optional-catch-binding | 7.12.1 | MIT
@babel/plugin-proposal-optional-chaining | 7.12.1 | MIT
@babel/plugin-proposal-optional-chaining | 7.12.7 | MIT
@babel/plugin-proposal-private-methods | 7.12.1 | MIT
@babel/plugin-proposal-unicode-property-regex | 7.12.1 | MIT
@babel/plugin-syntax-async-generators | 7.8.4 | MIT
@babel/plugin-syntax-bigint | 7.8.3 | MIT
@babel/plugin-syntax-class-properties | 7.12.1 | MIT
@babel/plugin-syntax-decorators | 7.12.1 | MIT
@babel/plugin-syntax-dynamic-import | 7.8.3 | MIT
@babel/plugin-syntax-export-namespace-from | 7.8.3 | MIT
@babel/plugin-syntax-flow | 7.12.1 | MIT
@babel/plugin-syntax-import-meta | 7.10.4 | MIT
@babel/plugin-syntax-json-strings | 7.8.3 | MIT
@babel/plugin-syntax-jsx | 7.12.1 | MIT
@babel/plugin-syntax-logical-assignment-operators | 7.10.4 | MIT
@babel/plugin-syntax-nullish-coalescing-operator | 7.8.3 | MIT
@babel/plugin-syntax-numeric-separator | 7.10.4 | MIT
@babel/plugin-syntax-object-rest-spread | 7.8.3 | MIT
@babel/plugin-syntax-optional-catch-binding | 7.8.3 | MIT
@babel/plugin-syntax-optional-chaining | 7.8.3 | MIT
@babel/plugin-syntax-top-level-await | 7.12.1 | MIT
@babel/plugin-syntax-typescript | 7.12.1 | MIT
@babel/plugin-transform-arrow-functions | 7.12.1 | MIT
@babel/plugin-transform-async-to-generator | 7.12.1 | MIT
@babel/plugin-transform-block-scoped-functions | 7.12.1 | MIT
@babel/plugin-transform-block-scoping | 7.12.1 | MIT
@babel/plugin-transform-classes | 7.12.1 | MIT
@babel/plugin-transform-computed-properties | 7.12.1 | MIT
@babel/plugin-transform-destructuring | 7.12.1 | MIT
@babel/plugin-transform-dotall-regex | 7.12.1 | MIT
@babel/plugin-transform-duplicate-keys | 7.12.1 | MIT
@babel/plugin-transform-exponentiation-operator | 7.12.1 | MIT
@babel/plugin-transform-flow-strip-types | 7.12.1 | MIT
@babel/plugin-transform-for-of | 7.12.1 | MIT
@babel/plugin-transform-function-name | 7.12.1 | MIT
@babel/plugin-transform-literals | 7.12.1 | MIT
@babel/plugin-transform-member-expression-literals | 7.12.1 | MIT
@babel/plugin-transform-modules-amd | 7.12.1 | MIT
@babel/plugin-transform-modules-commonjs | 7.12.1 | MIT
@babel/plugin-transform-modules-systemjs | 7.12.1 | MIT
@babel/plugin-transform-modules-umd | 7.12.1 | MIT
@babel/plugin-transform-named-capturing-groups-regex | 7.12.1 | MIT
@babel/plugin-transform-new-target | 7.12.1 | MIT
@babel/plugin-transform-object-super | 7.12.1 | MIT
@babel/plugin-transform-parameters | 7.12.1 | MIT
@babel/plugin-transform-property-literals | 7.12.1 | MIT
@babel/plugin-transform-react-constant-elements | 7.12.1 | MIT
@babel/plugin-transform-react-display-name | 7.12.1 | MIT
@babel/plugin-transform-react-jsx | 7.12.7 | MIT
@babel/plugin-transform-react-jsx-development | 7.12.7 | MIT
@babel/plugin-transform-react-jsx-self | 7.12.1 | MIT
@babel/plugin-transform-react-jsx-source | 7.12.1 | MIT
@babel/plugin-transform-react-pure-annotations | 7.12.1 | MIT
@babel/plugin-transform-regenerator | 7.12.1 | MIT
@babel/plugin-transform-reserved-words | 7.12.1 | MIT
@babel/plugin-transform-runtime | 7.12.1 | MIT
@babel/plugin-transform-shorthand-properties | 7.12.1 | MIT
@babel/plugin-transform-spread | 7.12.1 | MIT
@babel/plugin-transform-sticky-regex | 7.12.7 | MIT
@babel/plugin-transform-template-literals | 7.12.1 | MIT
@babel/plugin-transform-typeof-symbol | 7.12.1 | MIT
@babel/plugin-transform-typescript | 7.12.1 | MIT
@babel/plugin-transform-unicode-escapes | 7.12.1 | MIT
@babel/plugin-transform-unicode-regex | 7.12.1 | MIT
@babel/preset-env | 7.12.1 | MIT
@babel/preset-env | 7.12.7 | MIT
@babel/preset-modules | 0.1.4 | MIT
@babel/preset-react | 7.12.1 | MIT
@babel/preset-react | 7.12.7 | MIT
@babel/preset-typescript | 7.12.1 | MIT
@babel/runtime | 7.12.1 | MIT
@babel/runtime | 7.12.5 | MIT
@babel/runtime | 7.14.8 | MIT
@babel/runtime | 7.8.7 | MIT
@babel/runtime-corejs3 | 7.12.5 | MIT
@babel/template | 7.12.7 | MIT
@babel/template | 7.14.5 | MIT
@babel/traverse | 7.12.9 | MIT
@babel/traverse | 7.14.8 | MIT
@babel/types | 7.12.7 | MIT
@babel/types | 7.14.8 | MIT
@bcoe/v8-coverage | 0.2.3 | MIT
@cnakazawa/watch | 1.0.4 | Apache-2.0
@csstools/convert-colors | 1.4.0 | CC0-1.0
@csstools/normalize.css | 10.1.0 | CC0-1.0
@dnd-kit/accessibility | 2.0.0 | MIT
@dnd-kit/core | 2.1.2 | MIT
@dnd-kit/sortable | 2.0.1 | MIT
@dnd-kit/utilities | 1.0.3 | MIT
@emotion/cache | 11.4.0 | MIT
@emotion/hash | 0.8.0 | MIT
@emotion/memoize | 0.7.5 | MIT
@emotion/react | 11.4.1 | MIT
@emotion/serialize | 1.0.2 | MIT
@emotion/sheet | 1.0.2 | MIT
@emotion/unitless | 0.7.5 | MIT
@emotion/utils | 1.0.0 | MIT
@emotion/weak-memoize | 0.2.5 | MIT
@eslint/eslintrc | 0.2.2 | MIT
@hapi/address | 2.1.4 | BSD 3-clause
@hapi/bourne | 1.3.2 | BSD 3-clause
@hapi/hoek | 8.5.1 | BSD 3-clause
@hapi/joi | 15.1.1 | BSD 3-clause
@hapi/topo | 3.1.6 | BSD 3-clause
@hypnosphi/create-react-context | 0.3.1 | MIT
@istanbuljs/load-nyc-config | 1.1.0 | ISC
@istanbuljs/schema | 0.1.2 | MIT
@jest/console | 26.6.2 | MIT
@jest/core | 26.6.3 | MIT
@jest/environment | 26.6.2 | MIT
@jest/fake-timers | 26.6.2 | MIT
@jest/globals | 26.6.2 | MIT
@jest/reporters | 26.6.2 | MIT
@jest/source-map | 26.6.2 | MIT
@jest/test-result | 26.6.2 | MIT
@jest/test-sequencer | 26.6.3 | MIT
@jest/transform | 26.6.2 | MIT
@jest/types | 26.6.2 | MIT
@nodelib/fs.scandir | 2.1.3 | MIT
@nodelib/fs.stat | 2.0.3 | MIT
@nodelib/fs.walk | 1.2.4 | MIT
@npmcli/move-file | 1.0.1 | MIT
@pmmmwh/react-refresh-webpack-plugin | 0.4.2 | MIT
@rollup/plugin-node-resolve | 7.1.3 | MIT
@rollup/plugin-replace | 2.3.4 | MIT
@rollup/pluginutils | 3.1.0 | MIT
@sinonjs/commons | 1.8.1 | BSD 3-clause
@sinonjs/fake-timers | 6.0.1 | BSD 3-clause
@surma/rollup-plugin-off-main-thread | 1.4.2 | Apache-2.0
@svgr/babel-plugin-add-jsx-attribute | 5.4.0 | MIT
@svgr/babel-plugin-remove-jsx-attribute | 5.4.0 | MIT
@svgr/babel-plugin-remove-jsx-empty-expression | 5.0.1 | MIT
@svgr/babel-plugin-replace-jsx-attribute-value | 5.0.1 | MIT
@svgr/babel-plugin-svg-dynamic-title | 5.4.0 | MIT
@svgr/babel-plugin-svg-em-dimensions | 5.4.0 | MIT
@svgr/babel-plugin-transform-react-native-svg | 5.4.0 | MIT
@svgr/babel-plugin-transform-svg-component | 5.5.0 | MIT
@svgr/babel-preset | 5.5.0 | MIT
@svgr/core | 5.5.0 | MIT
@svgr/hast-util-to-babel-ast | 5.5.0 | MIT
@svgr/plugin-jsx | 5.5.0 | MIT
@svgr/plugin-svgo | 5.5.0 | MIT
@svgr/webpack | 5.4.0 | MIT
@testing-library/dom | 7.28.1 | MIT
@testing-library/jest-dom | 5.11.6 | MIT
@testing-library/react | 11.2.2 | MIT
@testing-library/user-event | 12.5.0 | MIT
@types/anymatch | 1.3.1 | MIT
@types/aria-query | 4.2.0 | MIT
@types/babel__core | 7.1.12 | MIT
@types/babel__generator | 7.6.2 | MIT
@types/babel__template | 7.4.0 | MIT
@types/babel__traverse | 7.0.16 | MIT
@types/eslint | 7.2.6 | MIT
@types/estree | 0.0.39 | MIT
@types/estree | 0.0.45 | MIT
@types/glob | 7.1.3 | MIT
@types/graceful-fs | 4.1.4 | MIT
@types/html-minifier-terser | 5.1.1 | MIT
@types/istanbul-lib-coverage | 2.0.3 | MIT
@types/istanbul-lib-report | 3.0.0 | MIT
@types/istanbul-reports | 3.0.0 | MIT
@types/jest | 26.0.17 | MIT
@types/json5 | 0.0.29 | MIT
@types/json-schema | 7.0.6 | MIT
@types/minimatch | 3.0.3 | MIT
@types/node | 13.7.7 | MIT
@types/node | 14.14.10 | MIT
@types/normalize-package-data | 2.4.0 | MIT
@types/parse-json | 4.0.0 | MIT
@types/prettier | 2.1.5 | MIT
@types/prop-types | 15.7.3 | MIT
@types/q | 1.5.4 | MIT
@types/react | 16.9.55 | MIT
@types/resolve | 0.0.8 | MIT
@types/source-list-map | 0.1.2 | MIT
@types/stack-utils | 2.0.0 | MIT
@types/tapable | 1.0.6 | MIT
@types/testing-library__jest-dom | 5.9.5 | MIT
@types/uglify-js | 3.11.1 | MIT
@types/webpack | 4.41.25 | MIT
@types/webpack-sources | 2.1.0 | MIT
@types/yargs | 15.0.11 | MIT
@types/yargs-parser | 15.0.0 | MIT
@typescript-eslint/eslint-plugin | 4.9.1 | MIT
@typescript-eslint/experimental-utils | 3.10.1 | MIT
@typescript-eslint/experimental-utils | 4.9.1 | MIT
@typescript-eslint/parser | 4.9.1 | BSD 2-clause
@typescript-eslint/scope-manager | 4.9.1 | MIT
@typescript-eslint/types | 3.10.1 | MIT
@typescript-eslint/types | 4.9.1 | MIT
@typescript-eslint/typescript-estree | 3.10.1 | BSD 2-clause
@typescript-eslint/typescript-estree | 4.9.1 | BSD 2-clause
@typescript-eslint/visitor-keys | 3.10.1 | MIT
@typescript-eslint/visitor-keys | 4.9.1 | MIT
@webassemblyjs/ast | 1.9.0 | MIT
@webassemblyjs/floating-point-hex-parser | 1.9.0 | MIT
@webassemblyjs/helper-api-error | 1.9.0 | MIT
@webassemblyjs/helper-buffer | 1.9.0 | MIT
@webassemblyjs/helper-code-frame | 1.9.0 | MIT
@webassemblyjs/helper-fsm | 1.9.0 | ISC
@webassemblyjs/helper-module-context | 1.9.0 | MIT
@webassemblyjs/helper-wasm-bytecode | 1.9.0 | MIT
@webassemblyjs/helper-wasm-section | 1.9.0 | MIT
@webassemblyjs/ieee754 | 1.9.0 | MIT
@webassemblyjs/leb128 | 1.9.0 | MIT
@webassemblyjs/utf8 | 1.9.0 | MIT
@webassemblyjs/wasm-edit | 1.9.0 | MIT
@webassemblyjs/wasm-gen | 1.9.0 | MIT
@webassemblyjs/wasm-opt | 1.9.0 | MIT
@webassemblyjs/wasm-parser | 1.9.0 | MIT
@webassemblyjs/wast-parser | 1.9.0 | MIT
@webassemblyjs/wast-printer | 1.9.0 | MIT
@xtuc/ieee754 | 1.2.0 | BSD 3-clause
@xtuc/long | 4.2.2 | Apache-2.0
abab | 2.0.5 | BSD 3-clause
abbrev | 1.1.1 | ISC
accepts | 1.3.7 | MIT
account-module | 0.1.0 | MIT
acorn | 6.4.2 | MIT
acorn | 7.4.1 | MIT
acorn-globals | 6.0.0 | MIT
acorn-jsx | 5.3.1 | MIT
acorn-walk | 7.2.0 | MIT
address | 1.1.2 | MIT
adjust-sourcemap-loader | 3.0.0 | MIT
after | 0.8.2 | MIT
aggregate-error | 3.1.0 | MIT
ajv | 6.12.0 | MIT
ajv | 6.12.6 | MIT
ajv-errors | 1.0.1 | MIT
ajv-keywords | 3.5.2 | MIT
alphanum-sort | 1.0.2 | MIT
amdefine | 1.0.1 | BSD 3-clause or MIT
amqplib | 0.5.5 | MIT
ansi-colors | 3.2.4 | MIT
ansi-colors | 4.1.1 | MIT
ansi-escapes | 4.3.1 | MIT
ansi-html | 0.0.7 | Apache-2.0
ansi-regex | 2.1.1 | MIT
ansi-regex | 3.0.0 | MIT
ansi-regex | 4.1.0 | MIT
ansi-regex | 5.0.0 | MIT
ansi-styles | 2.2.1 | MIT
ansi-styles | 3.2.1 | MIT
ansi-styles | 4.3.0 | MIT
anymatch | 2.0.0 | ISC
anymatch | 3.1.1 | ISC
any-promise | 1.3.0 | MIT
aproba | 1.2.0 | ISC
are-we-there-yet | 1.1.5 | ISC
argparse | 1.0.10 | MIT
aria-query | 4.2.2 | Apache-2.0
arity-n | 1.0.4 | MIT
array.prototype.flat | 1.2.4 | MIT
array.prototype.flatmap | 1.2.4 | MIT
arraybuffer.slice | 0.0.7 | MIT
array-find-index | 1.0.2 | MIT
array-flatten | 1.1.1 | MIT
array-flatten | 2.1.2 | MIT
array-includes | 3.1.2 | MIT
array-union | 1.0.2 | MIT
array-union | 2.1.0 | MIT
array-uniq | 1.0.3 | MIT
array-unique | 0.3.2 | MIT
arr-diff | 4.0.0 | MIT
arr-flatten | 1.1.0 | MIT
arrify | 2.0.1 | MIT
arr-union | 3.1.0 | MIT
asap | 2.0.6 | MIT
asn1 | 0.2.4 | MIT
asn1.js | 5.4.1 | MIT
ASP.NET Core | 5.0 | Apache-2.0
assert | 1.5.0 | MIT
assert-plus | 1.0.0 | MIT
assign-symbols | 1.0.0 | MIT
astral-regex | 1.0.0 | MIT
ast-types-flow | 0.0.7 | ISC
async | 2.6.3 | MIT
async-each | 1.0.3 | MIT
async-foreach | 0.1.3 | MIT
asynckit | 0.4.0 | MIT
async-limiter | 1.0.1 | MIT
at-least-node | 1.0.0 | ISC
atob | 2.1.2 | MIT or Apache-2.0
autoprefixer | 9.8.6 | MIT
aws4 | 1.11.0 | MIT
aws4 | 1.9.1 | MIT
aws-sign2 | 0.7.0 | Apache-2.0
axe-core | 4.1.1 | MPL-2.0
axios | 0.19.2 | MIT
axios | 0.21.1 | MIT
axios-observable | 1.2.1 | MIT
axobject-query | 2.2.0 | Apache-2.0
babel-eslint | 10.1.0 | MIT
babel-extract-comments | 1.0.0 | MIT
babel-jest | 26.6.3 | MIT
babel-loader | 8.1.0 | MIT
babel-plugin-dynamic-import-node | 2.3.3 | MIT
babel-plugin-istanbul | 6.0.0 | BSD 3-clause
babel-plugin-jest-hoist | 26.6.2 | MIT
babel-plugin-macros | 2.8.0 | MIT
babel-plugin-named-asset-import | 0.3.7 | MIT
babel-plugin-syntax-object-rest-spread | 6.13.0 | MIT
babel-plugin-transform-object-rest-spread | 6.26.0 | MIT
babel-plugin-transform-react-remove-prop-types | 0.4.24 | MIT
babel-preset-current-node-syntax | 1.0.0 | MIT
babel-preset-jest | 26.6.2 | MIT
babel-preset-react-app | 10.0.0 | MIT
babel-runtime | 6.26.0 | MIT
babylon | 6.18.0 | MIT
backo2 | 1.0.2 | MIT
balanced-match | 1.0.0 | MIT
base | 0.11.2 | MIT
base64-arraybuffer | 0.1.4 | MIT
base64-arraybuffer | 0.1.5 | MIT
base64id | 2.0.0 | MIT
base64-js | 1.5.1 | MIT
batch | 0.6.1 | MIT
bcrypt-pbkdf | 1.0.2 | BSD 3-clause
better-assert | 1.0.2 | MIT
bfj | 7.0.2 | MIT
big.js | 5.2.2 | MIT
binary-extensions | 1.13.1 | MIT
binary-extensions | 2.1.0 | MIT
bitsyntax | 0.1.0 | MIT
blob | 0.0.5 | MIT
block-stream | 0.0.9 | ISC
bluebird | 3.7.2 | MIT
bn.js | 4.11.9 | MIT
bn.js | 5.1.3 | MIT
body-parser | 1.19.0 | MIT
bonjour | 3.5.0 | MIT
boolbase | 1.0.0 | ISC
bootstrap | 4.5.3 | MIT
brace-expansion | 1.1.11 | MIT
braces | 2.3.2 | MIT
braces | 3.0.2 | MIT
brorand | 1.1.0 | MIT
browserify-aes | 1.2.0 | MIT
browserify-cipher | 1.0.1 | MIT
browserify-des | 1.0.2 | MIT
browserify-rsa | 4.1.0 | MIT
browserify-sign | 4.2.1 | ISC
browserify-zlib | 0.2.0 | MIT
browser-process-hrtime | 1.0.0 | BSD 2-clause
browserslist | 4.14.2 | MIT
browserslist | 4.16.6 | MIT
browserslist | 4.16.7 | MIT
bser | 2.1.1 | Apache-2.0
buffer | 4.9.2 | MIT
buffer-equal-constant-time | 1.0.1 | BSD 3-clause
buffer-from | 1.1.1 | MIT
buffer-indexof | 1.1.1 | MIT
buffer-more-ints | 1.0.0 | MIT
buffer-xor | 1.0.3 | MIT
builtin-modules | 3.1.0 | MIT
builtin-status-codes | 3.0.0 | MIT
bytes | 3.0.0 | MIT
bytes | 3.1.0 | MIT
cacache | 12.0.4 | ISC
cacache | 15.0.5 | ISC
cache-base | 1.0.1 | MIT
call-bind | 1.0.0 | MIT
call-bind | 1.0.2 | MIT
caller-callsite | 2.0.0 | MIT
caller-path | 2.0.0 | MIT
callsite | 1.0.0 | MIT
callsites | 2.0.0 | MIT
callsites | 3.1.0 | MIT
camelcase | 2.1.1 | MIT
camelcase | 5.3.1 | MIT
camelcase | 6.2.0 | MIT
camel-case | 4.1.2 | MIT
camelcase-keys | 2.1.0 | MIT
caniuse-api | 3.0.0 | MIT
caniuse-lite | 1.0.30001246 | CC-BY-4.0
caniuse-lite | 1.0.30001248 | CC-BY-4.0
capture-exit | 2.0.0 | ISC
caseless | 0.12.0 | Apache-2.0
case-sensitive-paths-webpack-plugin | 2.3.0 | MIT
chalk | 1.1.3 | MIT
chalk | 2.4.2 | MIT
chalk | 3.0.0 | MIT
chalk | 4.1.0 | MIT
char-regex | 1.0.2 | MIT
check-types | 11.1.2 | MIT
chokidar | 2.1.8 | MIT
chokidar | 3.4.3 | MIT
chownr | 1.1.4 | ISC
chownr | 2.0.0 | ISC
chrome-trace-event | 1.0.2 | MIT
ci-info | 2.0.0 | MIT
cipher-base | 1.0.4 | MIT
cjs-module-lexer | 0.6.0 | MIT
classnames | 2.2.6 | MIT
classnames | 2.3.1 | MIT
class-utils | 0.3.6 | MIT
clean-css | 4.2.3 | MIT
clean-stack | 2.2.0 | MIT
cliui | 5.0.0 | ISC
cliui | 6.0.0 | ISC
clone-deep | 4.0.1 | MIT
cls-bluebird | 2.1.0 | BSD 2-clause
co | 4.6.0 | MIT
coa | 2.0.2 | MIT
code-point-at | 1.1.0 | MIT
collection-visit | 1.0.0 | MIT
collect-v8-coverage | 1.0.1 | MIT
color | 3.1.3 | MIT
color-convert | 1.9.3 | MIT
color-convert | 2.0.1 | MIT
colorette | 1.2.2 | MIT
color-name | 1.1.3 | MIT
color-name | 1.1.4 | MIT
color-string | 1.5.4 | MIT
combined-stream | 1.0.8 | MIT
commander | 2.20.3 | MIT
commander | 4.1.1 | MIT
commondir | 1.0.1 | MIT
common-tags | 1.8.0 | MIT
component-bind | 1.0.0 | MIT
component-emitter | 1.2.1 | MIT
component-emitter | 1.3.0 | MIT
component-inherit | 0.0.3 | MIT
compose-function | 3.0.3 | MIT
compressible | 2.0.18 | MIT
compression | 1.7.4 | MIT
concat-map | 0.0.1 | MIT
concat-stream | 1.6.2 | MIT
confusing-browser-globals | 1.0.10 | MIT
connected-react-router | 6.8.0 | MIT
connect-history-api-fallback | 1.6.0 | MIT
console-browserify | 1.2.0 | MIT
console-control-strings | 1.1.0 | ISC
constants-browserify | 1.0.0 | MIT
contains-path | 0.1.0 | MIT
content-disposition | 0.5.3 | MIT
content-type | 1.0.4 | MIT
convert-source-map | 0.3.5 | MIT
convert-source-map | 1.7.0 | MIT
convert-source-map | 1.8.0 | MIT
cookie | 0.3.1 | MIT
cookie | 0.4.0 | MIT
cookie-signature | 1.0.6 | MIT
copy-concurrently | 1.0.5 | ISC
copy-descriptor | 0.1.1 | MIT
core-js | 2.6.12 | MIT
core-js | 3.8.1 | MIT
core-js-compat | 3.8.1 | MIT
core-js-pure | 3.8.1 | MIT
core-util-is | 1.0.2 | MIT
cors | 2.8.5 | MIT
cosmiconfig | 5.2.1 | MIT
cosmiconfig | 6.0.0 | MIT
cosmiconfig | 7.0.0 | MIT
create-ecdh | 4.0.4 | MIT
create-hash | 1.2.0 | MIT
create-hmac | 1.1.7 | MIT
create-react-context | 0.3.0 | MIT
cross-spawn | 3.0.1 | MIT
cross-spawn | 6.0.5 | MIT
cross-spawn | 7.0.3 | MIT
crypto-browserify | 3.12.0 | MIT
crypto-random-string | 1.0.0 | MIT
css | 2.2.4 | MIT
css | 3.0.0 | MIT
css.escape | 1.5.1 | MIT
css-blank-pseudo | 0.1.4 | CC0-1.0
css-color-names | 0.0.4 | MIT
cssdb | 4.4.0 | CC0-1.0
css-declaration-sorter | 4.0.1 | MIT
cssesc | 2.0.0 | MIT
cssesc | 3.0.0 | MIT
css-has-pseudo | 0.10.0 | CC0-1.0
css-loader | 4.3.0 | MIT
cssnano | 4.1.10 | MIT
cssnano-preset-default | 4.0.7 | MIT
cssnano-util-get-arguments | 4.0.0 | MIT
cssnano-util-get-match | 4.0.0 | MIT
cssnano-util-raw-cache | 4.0.1 | MIT
cssnano-util-same-parent | 4.0.1 | MIT
csso | 4.2.0 | MIT
cssom | 0.3.8 | MIT
cssom | 0.4.4 | MIT
css-prefers-color-scheme | 3.1.1 | CC0-1.0
css-select | 1.2.0 | BSD 2-clause
css-select | 2.1.0 | BSD 2-clause
css-select-base-adapter | 0.1.1 | MIT
cssstyle | 2.3.0 | MIT
css-tree | 1.0.0-alpha.37 | MIT
css-tree | 1.1.2 | MIT
csstype | 3.0.4 | MIT
csstype | 3.0.8 | MIT
css-what | 2.1.3 | BSD 2-clause
css-what | 3.4.2 | BSD 2-clause
currently-unhandled | 0.4.1 | MIT
cyclist | 1.0.1 | MIT
d | 1.0.1 | ISC
damerau-levenshtein | 1.0.6 | BSD 2-clause
dashdash | 1.14.1 | MIT
data-urls | 2.0.0 | MIT
date-arithmetic | 3.1.0 | MIT
date-fns | 2.16.1 | MIT
date-format | 2.1.0 | MIT
date-format | 3.0.0 | MIT
debug | 2.6.9 | MIT
debug | 3.1.0 | MIT
debug | 3.2.6 | MIT
debug | 3.2.7 | MIT
debug | 4.1.1 | MIT
debug | 4.3.1 | MIT
debug | 4.3.2 | MIT
decamelize | 1.2.0 | MIT
decimal.js | 10.2.1 | MIT
decode-uri-component | 0.2.0 | MIT
dedent | 0.7.0 | MIT
deep-equal | 1.1.1 | MIT
deep-extend | 0.6.0 | MIT
deep-is | 0.1.3 | MIT
deepmerge | 4.2.2 | MIT
default-gateway | 4.2.0 | BSD 2-clause
define-properties | 1.1.3 | MIT
define-property | 0.2.5 | MIT
define-property | 1.0.0 | MIT
define-property | 2.0.2 | MIT
del | 4.1.1 | MIT
delayed-stream | 1.0.0 | MIT
delegates | 1.0.0 | MIT
depd | 1.1.2 | MIT
des.js | 1.0.1 | MIT
destroy | 1.0.4 | MIT
detect-libc | 1.0.3 | Apache-2.0
detect-newline | 3.1.0 | MIT
detect-node | 2.0.4 | ISC
detect-port-alt | 1.1.6 | MIT
diffie-hellman | 5.0.3 | MIT
diff-sequences | 26.6.2 | MIT
direct-styled | 1.0.1 | MIT
dir-glob | 3.0.1 | MIT
dns-equal | 1.0.0 | MIT
dns-packet | 1.3.4 | MIT
dns-txt | 2.0.2 | MIT
doctrine | 1.5.0 | Apache-2.0
doctrine | 2.1.0 | Apache-2.0
doctrine | 3.0.0 | Apache-2.0
dom-accessibility-api | 0.5.4 | MIT
domain-browser | 1.2.0 | MIT
dom-converter | 0.2.0 | MIT
domelementtype | 1.3.1 | BSD 2-clause
domelementtype | 2.1.0 | BSD 2-clause
domexception | 2.0.1 | MIT
domhandler | 2.4.2 | BSD 2-clause
dom-helpers | 3.4.0 | MIT
dom-helpers | 5.2.1 | MIT
dom-serializer | 0.2.2 | MIT
domutils | 1.5.1 | BSD 2-clause
domutils | 1.7.0 | BSD 2-clause
dot-case | 3.0.4 | MIT
dotenv | 8.2.0 | BSD 2-clause
dotenv-expand | 5.1.0 | BSD 2-clause
DotNetCore.NPOI | 1.2.1 | Apache-2.0
dot-prop | 5.3.0 | MIT
dottie | 2.0.2 | MIT
duplexer | 0.1.2 | MIT
duplexify | 3.7.1 | MIT
ecc-jsbn | 0.1.2 | MIT
ecdsa-sig-formatter | 1.0.11 | Apache-2.0
ee-first | 1.1.1 | MIT
ejs | 2.7.4 | Apache-2.0
electron-to-chromium | 1.3.785 | ISC
electron-to-chromium | 1.3.795 | ISC
elliptic | 6.5.4 | MIT
emittery | 0.7.2 | MIT
emoji-regex | 7.0.3 | MIT
emoji-regex | 8.0.0 | MIT
emoji-regex | 9.2.0 | MIT
emojis-list | 2.1.0 | MIT
emojis-list | 3.0.0 | MIT
encodeurl | 1.0.2 | MIT
end-of-stream | 1.4.4 | MIT
engine.io | 3.4.0 | MIT
engine.io-client | 3.4.0 | MIT
engine.io-client | 3.4.4 | MIT
engine.io-parser | 2.2.0 | MIT
engine.io-parser | 2.2.1 | MIT
enhanced-resolve | 4.3.0 | MIT
enquirer | 2.3.6 | MIT
entities | 1.1.2 | BSD 2-clause
entities | 2.1.0 | BSD 2-clause
errno | 0.1.7 | MIT
error-ex | 1.3.2 | MIT
error-stack-parser | 2.0.6 | MIT
es5-ext | 0.10.53 | ISC
es6-iterator | 2.0.3 | MIT
es6-symbol | 3.1.3 | ISC
es-abstract | 1.17.4 | MIT
es-abstract | 1.17.7 | MIT
es-abstract | 1.18.0 | MIT
es-abstract | 1.18.0-next.1 | MIT
escalade | 3.1.1 | MIT
escape-html | 1.0.3 | MIT
escape-string-regexp | 1.0.5 | MIT
escape-string-regexp | 2.0.0 | MIT
escodegen | 1.14.1 | BSD 2-clause
escodegen | 1.14.3 | BSD 2-clause
eslint | 7.15.0 | MIT
eslint-config-react-app | 6.0.0 | MIT
eslint-import-resolver-node | 0.3.4 | MIT
eslint-module-utils | 2.6.0 | MIT
eslint-plugin-flowtype | 5.2.0 | BSD 3-clause
eslint-plugin-import | 2.22.1 | MIT
eslint-plugin-jest | 24.1.3 | MIT
eslint-plugin-jsx-a11y | 6.4.1 | MIT
eslint-plugin-react | 7.21.5 | MIT
eslint-plugin-react-hooks | 4.2.0 | MIT
eslint-plugin-testing-library | 3.10.1 | MIT
eslint-scope | 4.0.3 | BSD 2-clause
eslint-scope | 5.1.1 | BSD 2-clause
eslint-utils | 2.1.0 | MIT
eslint-visitor-keys | 1.3.0 | Apache-2.0
eslint-visitor-keys | 2.0.0 | Apache-2.0
eslint-webpack-plugin | 2.4.1 | MIT
espree | 7.3.1 | BSD 2-clause
esprima | 1.2.2 | BSD 2-clause
esprima | 4.0.1 | BSD 2-clause
esquery | 1.3.1 | BSD 3-clause
esrecurse | 4.3.0 | BSD 2-clause
es-to-primitive | 1.2.1 | MIT
estraverse | 4.3.0 | BSD 2-clause
estraverse | 5.2.0 | BSD 2-clause
estree-walker | 0.6.1 | MIT
estree-walker | 1.0.1 | MIT
esutils | 2.0.3 | BSD 2-clause
etag | 1.8.1 | MIT
eventemitter3 | 3.1.2 | MIT
eventemitter3 | 4.0.7 | MIT
events | 3.2.0 | MIT
eventsource | 1.0.7 | MIT
evp_bytestokey | 1.0.3 | MIT
execa | 1.0.0 | MIT
execa | 4.1.0 | MIT
exec-sh | 0.3.4 | MIT
exit | 0.1.2 | MIT
expand-brackets | 2.1.4 | MIT
expect | 26.6.2 | MIT
express | 4.17.1 | MIT
ext | 1.4.0 | ISC
extend | 3.0.2 | MIT
extend-shallow | 2.0.1 | MIT
extend-shallow | 3.0.2 | MIT
extglob | 2.0.4 | MIT
extsprintf | 1.3.0 | MIT
fast-deep-equal | 3.1.1 | MIT
fast-deep-equal | 3.1.3 | MIT
fast-glob | 3.2.4 | MIT
fast-json-stable-stringify | 2.1.0 | MIT
fast-levenshtein | 2.0.6 | MIT
fastq | 1.9.0 | ISC
faye-websocket | 0.10.0 | MIT
faye-websocket | 0.11.3 | Apache-2.0
fb-watchman | 2.0.1 | Apache-2.0
figgy-pudding | 3.5.2 | ISC
file-entry-cache | 6.0.0 | MIT
file-loader | 6.1.1 | MIT
filesize | 6.1.0 | BSD 3-clause
fill-range | 4.0.0 | MIT
fill-range | 7.0.1 | MIT
finalhandler | 1.1.2 | MIT
find-cache-dir | 2.1.0 | MIT
find-cache-dir | 3.3.1 | MIT
find-up | 1.1.2 | MIT
find-up | 2.1.0 | MIT
find-up | 3.0.0 | MIT
find-up | 4.1.0 | MIT
flat-cache | 3.0.4 | MIT
flatted | 2.0.1 | ISC
flatted | 3.1.0 | ISC
flatten | 1.0.3 | MIT
Fleck | 1.1.0 | MIT
Flurl.Http | 3.2.0 | MIT
flush-write-stream | 1.1.1 | MIT
follow-redirects | 1.13.0 | MIT
follow-redirects | 1.5.10 | MIT
forever-agent | 0.6.1 | Apache-2.0
for-in | 1.0.2 | MIT
fork-ts-checker-webpack-plugin | 4.1.6 | MIT
form-data | 2.3.3 | MIT
forwarded | 0.1.2 | MIT
fragment-cache | 0.2.1 | MIT
fresh | 0.5.2 | MIT
from2 | 2.3.0 | MIT
fs.realpath | 1.0.0 | ISC
fs-extra | 7.0.1 | MIT
fs-extra | 8.1.0 | MIT
fs-extra | 9.0.1 | MIT
fs-minipass | 1.2.7 | ISC
fs-minipass | 2.1.0 | ISC
fstream | 1.0.12 | ISC
fs-write-stream-atomic | 1.0.10 | ISC
functional-red-black-tree | 1.0.1 | MIT
function-bind | 1.1.1 | MIT
gauge | 2.7.4 | ISC
gaze | 1.1.3 | MIT
gensync | 1.0.0-beta.2 | MIT
get-caller-file | 2.0.5 | ISC
get-intrinsic | 1.0.1 | MIT
get-intrinsic | 1.1.1 | MIT
get-own-enumerable-property-symbols | 3.0.2 | ISC
get-package-type | 0.1.0 | MIT
getpass | 0.1.7 | MIT
get-stdin | 4.0.1 | MIT
get-stream | 4.1.0 | MIT
get-stream | 5.2.0 | MIT
get-value | 2.0.6 | MIT
glob | 7.1.6 | ISC
global-modules | 2.0.0 | MIT
global-prefix | 3.0.0 | MIT
globals | 11.12.0 | MIT
globals | 12.4.0 | MIT
globby | 11.0.1 | MIT
globby | 6.1.0 | MIT
glob-parent | 3.1.0 | ISC
glob-parent | 5.1.2 | ISC
globule | 1.3.2 | MIT
graceful-fs | 4.2.3 | ISC
graceful-fs | 4.2.4 | ISC
growly | 1.3.0 | MIT
gud | 1.0.0 | MIT
gzip-size | 5.1.1 | MIT
handle-thing | 2.0.1 | MIT
harmony-reflect | 1.6.1 | Apache-2.0 or MPL-1.1
har-schema | 2.0.0 | ISC
har-validator | 5.1.3 | MIT
har-validator | 5.1.5 | MIT
has | 1.0.3 | MIT
has-ansi | 2.0.0 | MIT
has-bigints | 1.0.1 | MIT
has-binary2 | 1.0.3 | MIT
has-cors | 1.1.0 | MIT
has-flag | 3.0.0 | MIT
has-flag | 4.0.0 | MIT
hash.js | 1.1.7 | MIT
hash-base | 3.1.0 | MIT
has-symbols | 1.0.1 | MIT
has-symbols | 1.0.2 | MIT
has-unicode | 2.0.1 | ISC
has-value | 0.3.1 | MIT
has-value | 1.0.0 | MIT
has-values | 0.1.4 | MIT
has-values | 1.0.0 | MIT
he | 1.2.0 | MIT
hex-color-regex | 1.1.0 | MIT
history | 4.10.1 | MIT
hmac-drbg | 1.0.1 | MIT
hoist-non-react-statics | 3.3.2 | BSD 3-clause
hoopy | 0.1.4 | MIT
hosted-git-info | 2.8.8 | ISC
hosted-git-info | 2.8.9 | ISC
hpack.js | 2.1.6 | MIT
hsla-regex | 1.0.0 | MIT
hsl-regex | 1.0.0 | MIT
html-comment-regex | 1.1.2 | MIT
html-encoding-sniffer | 2.0.1 | MIT
html-entities | 1.3.1 | MIT
html-escaper | 2.0.2 | MIT
html-minifier-terser | 5.1.1 | MIT
htmlparser2 | 3.10.1 | MIT
html-parse-stringify2 | 2.0.1 | MIT
html-webpack-plugin | 4.5.0 | MIT
http-deceiver | 1.2.7 | MIT
http-errors | 1.4.0 | MIT
http-errors | 1.6.3 | MIT
http-errors | 1.7.2 | MIT
http-proxy | 1.18.1 | MIT
http-proxy-middleware | 0.19.1 | MIT
https-browserify | 1.0.0 | MIT
http-signature | 1.2.0 | MIT
human-signals | 1.1.1 | Apache-2.0
i18next | 19.8.3 | MIT
i18next | 19.8.4 | MIT
i18next-browser-languagedetector | 4.3.1 | MIT
i18next-browser-languagedetector | 6.0.1 | MIT
iconv-lite | 0.4.24 | MIT
icss-utils | 4.1.1 | ISC
identity-obj-proxy | 3.0.0 | MIT
ieee754 | 1.2.1 | BSD 3-clause
iferr | 0.1.5 | MIT
ignore | 4.0.6 | MIT
ignore | 5.1.8 | MIT
ignore-walk | 3.0.3 | ISC
immer | 8.0.1 | MIT
import-cwd | 2.1.0 | MIT
import-fresh | 2.0.0 | MIT
import-fresh | 3.2.2 | MIT
import-from | 2.1.0 | MIT
import-local | 2.0.0 | MIT
import-local | 3.0.2 | MIT
imurmurhash | 0.1.4 | MIT
indent-string | 2.1.0 | MIT
indent-string | 4.0.0 | MIT
indexes-of | 1.0.1 | MIT
indexof | 0.0.1 | MIT
infer-owner | 1.0.4 | ISC
inflection | 1.12.0 | MIT
inflight | 1.0.6 | ISC
inherits | 2.0.1 | ISC
inherits | 2.0.3 | ISC
inherits | 2.0.4 | ISC
ini | 1.3.5 | ISC
ini | 1.3.8 | ISC
Inno Setup Compiler | 6.0.5 | Proprietary
in-publish | 2.0.1 | ISC
internal-ip | 4.3.0 | MIT
internal-slot | 1.0.2 | MIT
invariant | 2.2.4 | MIT
ip | 1.1.5 | MIT
ipaddr.js | 1.9.1 | MIT
ip-regex | 2.1.0 | MIT
is-absolute-url | 2.1.0 | MIT
is-absolute-url | 3.0.3 | MIT
is-accessor-descriptor | 0.1.6 | MIT
is-accessor-descriptor | 1.0.0 | MIT
is-arguments | 1.0.4 | MIT
is-arguments | 1.1.0 | MIT
isarray | 0.0.1 | MIT
isarray | 1.0.0 | MIT
isarray | 2.0.1 | MIT
is-arrayish | 0.2.1 | MIT
is-arrayish | 0.3.2 | MIT
is-bigint | 1.0.1 | MIT
is-binary-path | 1.0.1 | MIT
is-binary-path | 2.1.0 | MIT
is-bluebird | 1.0.2 | MIT
is-boolean-object | 1.1.0 | MIT
is-buffer | 1.1.6 | MIT
is-callable | 1.1.5 | MIT
is-callable | 1.2.2 | MIT
is-callable | 1.2.3 | MIT
is-ci | 2.0.0 | MIT
is-color-stop | 1.1.0 | MIT
is-core-module | 2.2.0 | MIT
is-data-descriptor | 0.1.4 | MIT
is-data-descriptor | 1.0.0 | MIT
is-date-object | 1.0.2 | MIT
is-descriptor | 0.1.6 | MIT
is-descriptor | 1.0.2 | MIT
is-directory | 0.3.1 | MIT
is-docker | 2.1.1 | MIT
isexe | 2.0.0 | ISC
is-extendable | 0.1.1 | MIT
is-extendable | 1.0.1 | MIT
is-extglob | 2.1.1 | MIT
is-finite | 1.1.0 | MIT
is-fullwidth-code-point | 1.0.0 | MIT
is-fullwidth-code-point | 2.0.0 | MIT
is-fullwidth-code-point | 3.0.0 | MIT
is-generator-fn | 2.1.0 | MIT
is-glob | 3.1.0 | MIT
is-glob | 4.0.1 | MIT
is-module | 1.0.0 | MIT
is-negative-zero | 2.0.0 | MIT
is-negative-zero | 2.0.1 | MIT
is-number | 3.0.0 | MIT
is-number | 7.0.0 | MIT
is-number-object | 1.0.4 | MIT
is-obj | 1.0.1 | MIT
is-obj | 2.0.0 | MIT
isobject | 2.1.0 | MIT
isobject | 3.0.1 | MIT
is-path-cwd | 2.2.0 | MIT
is-path-in-cwd | 2.1.0 | MIT
is-path-inside | 2.1.0 | MIT
is-plain-obj | 1.1.0 | MIT
is-plain-object | 2.0.4 | MIT
is-potential-custom-element-name | 1.0.0 | MIT
is-regex | 1.0.5 | MIT
is-regex | 1.1.1 | MIT
is-regex | 1.1.2 | MIT
is-regexp | 1.0.0 | MIT
is-resolvable | 1.1.0 | ISC
is-root | 2.1.0 | MIT
isstream | 0.1.2 | MIT
is-stream | 1.1.0 | MIT
is-stream | 2.0.0 | MIT
is-string | 1.0.5 | MIT
is-svg | 3.0.0 | MIT
is-symbol | 1.0.3 | MIT
istanbul-lib-coverage | 3.0.0 | BSD 3-clause
istanbul-lib-instrument | 4.0.3 | BSD 3-clause
istanbul-lib-report | 3.0.0 | BSD 3-clause
istanbul-lib-source-maps | 4.0.0 | BSD 3-clause
istanbul-reports | 3.0.2 | BSD 3-clause
is-typedarray | 1.0.0 | MIT
is-utf8 | 0.2.1 | MIT
is-windows | 1.0.2 | MIT
is-wsl | 1.1.0 | MIT
is-wsl | 2.2.0 | MIT
jest | 26.6.0 | MIT
jest-changed-files | 26.6.2 | MIT
jest-circus | 26.6.0 | MIT
jest-cli | 26.6.3 | MIT
jest-config | 26.6.3 | MIT
jest-diff | 26.6.2 | MIT
jest-docblock | 26.0.0 | MIT
jest-each | 26.6.2 | MIT
jest-environment-jsdom | 26.6.2 | MIT
jest-environment-node | 26.6.2 | MIT
jest-get-type | 26.3.0 | MIT
jest-haste-map | 26.6.2 | MIT
jest-jasmine2 | 26.6.3 | MIT
jest-leak-detector | 26.6.2 | MIT
jest-matcher-utils | 26.6.2 | MIT
jest-message-util | 26.6.2 | MIT
jest-mock | 26.6.2 | MIT
jest-pnp-resolver | 1.2.2 | MIT
jest-regex-util | 26.0.0 | MIT
jest-resolve | 26.6.0 | MIT
jest-resolve | 26.6.2 | MIT
jest-resolve-dependencies | 26.6.3 | MIT
jest-runner | 26.6.3 | MIT
jest-runtime | 26.6.3 | MIT
jest-serializer | 26.6.2 | MIT
jest-snapshot | 26.6.2 | MIT
jest-util | 26.6.2 | MIT
jest-validate | 26.6.2 | MIT
jest-watcher | 26.6.2 | MIT
jest-watch-typeahead | 0.6.1 | MIT
jest-worker | 24.9.0 | MIT
jest-worker | 26.6.2 | MIT
js-base64 | 2.6.4 | BSD 3-clause
jsbn | 0.1.1 | MIT
jsdom | 16.4.0 | MIT
jsesc | 0.5.0 | MIT
jsesc | 2.5.2 | MIT
js-file-download | 0.4.12 | MIT
json3 | 3.3.3 | MIT
json5 | 1.0.1 | MIT
json5 | 2.1.3 | MIT
json5 | 2.2.0 | MIT
jsonfile | 4.0.0 | MIT
jsonfile | 6.1.0 | MIT
json-parse-better-errors | 1.0.2 | MIT
json-parse-even-better-errors | 2.3.1 | MIT
jsonpath | 1.0.2 | MIT
jsonpath | 1.1.1 | MIT
json-schema | 0.2.3 | AFL-2.1 or BSD 3-clause
json-schema-traverse | 0.4.1 | MIT
json-stable-stringify-without-jsonify | 1.0.1 | MIT
json-stringify-safe | 5.0.1 | ISC
jsonwebtoken | 8.5.1 | MIT
jsprim | 1.4.1 | MIT
js-tokens | 4.0.0 | MIT
jsx-ast-utils | 3.1.0 | MIT
js-yaml | 3.14.1 | MIT
jwa | 1.4.1 | MIT
jws | 3.2.2 | MIT
jwt-decode | 3.1.2 | MIT
keycloak | 14.0.0 | Apache-2.0
killable | 1.0.1 | ISC
kind-of | 3.2.2 | MIT
kind-of | 4.0.0 | MIT
kind-of | 5.1.0 | MIT
kind-of | 6.0.3 | MIT
kleur | 3.0.3 | MIT
language-subtag-registry | 0.3.21 | ODC-By-1.0
language-tags | 1.0.5 | MIT
last-call-webpack-plugin | 3.0.0 | MIT
leven | 3.1.0 | MIT
levn | 0.3.0 | MIT
levn | 0.4.1 | MIT
lines-and-columns | 1.1.6 | MIT
loader-runner | 2.4.0 | MIT
loader-utils | 1.2.3 | MIT
loader-utils | 1.4.0 | MIT
loader-utils | 2.0.0 | MIT
loadjs | 4.2.0 | MIT
load-json-file | 1.1.0 | MIT
load-json-file | 2.0.0 | MIT
locate-path | 2.0.0 | MIT
locate-path | 3.0.0 | MIT
locate-path | 5.0.0 | MIT
lodash | 4.17.15 | MIT
lodash | 4.17.20 | MIT
lodash | 4.17.21 | MIT
lodash._reinterpolate | 3.0.0 | MIT
lodash.get | 4.4.2 | MIT
lodash.groupby | 4.6.0 | MIT
lodash.includes | 4.3.0 | MIT
lodash.isboolean | 3.0.3 | MIT
lodash.isinteger | 4.0.4 | MIT
lodash.isnumber | 3.0.3 | MIT
lodash.isplainobject | 4.0.6 | MIT
lodash.isstring | 4.0.1 | MIT
lodash.keyby | 4.6.0 | MIT
lodash.memoize | 4.1.2 | MIT
lodash.merge | 4.6.2 | MIT
lodash.once | 4.1.1 | MIT
lodash.set | 4.3.2 | MIT
lodash.sortby | 4.7.0 | MIT
lodash.sum | 4.0.2 | MIT
lodash.template | 4.5.0 | MIT
lodash.templatesettings | 4.2.0 | MIT
lodash.uniq | 4.5.0 | MIT
log4js | 6.1.2 | Apache-2.0
loglevel | 1.7.1 | MIT
loose-envify | 1.4.0 | MIT
loud-rejection | 1.6.0 | MIT
lower-case | 2.0.2 | MIT
lru-cache | 4.1.5 | ISC
lru-cache | 5.1.1 | ISC
lru-cache | 6.0.0 | ISC
lz-string | 1.4.4 | WTFPL
magic-string | 0.25.7 | MIT
make-dir | 2.1.0 | MIT
make-dir | 3.1.0 | MIT
makeerror | 1.0.11 | BSD 3-clause
map-cache | 0.2.2 | MIT
map-obj | 1.0.1 | MIT
map-visit | 1.0.0 | MIT
md5.js | 1.3.5 | MIT
mdn-data | 2.0.14 | CC0-1.0
mdn-data | 2.0.4 | CC0-1.0
media-typer | 0.3.0 | MIT
memoize-one | 5.2.1 | MIT
memory-fs | 0.4.1 | MIT
memory-fs | 0.5.0 | MIT
meow | 3.7.0 | MIT
merge2 | 1.4.1 | MIT
merge-descriptors | 1.0.1 | MIT
merge-stream | 2.0.0 | MIT
methods | 1.1.2 | MIT
microevent.ts | 0.1.1 | MIT
micromatch | 3.1.10 | MIT
micromatch | 4.0.2 | MIT
miller-rabin | 4.0.1 | MIT
mime | 1.6.0 | MIT
mime | 2.4.6 | MIT
mime-db | 1.43.0 | MIT
mime-db | 1.44.0 | MIT
mime-types | 2.1.26 | MIT
mime-types | 2.1.27 | MIT
mimic-fn | 2.1.0 | MIT
mini-create-react-context | 0.4.1 | MIT
mini-css-extract-plugin | 0.11.3 | MIT
minimalistic-assert | 1.0.1 | ISC
minimalistic-crypto-utils | 1.0.1 | MIT
minimatch | 3.0.4 | ISC
minimist | 0.0.8 | MIT
minimist | 1.2.0 | MIT
minimist | 1.2.5 | MIT
min-indent | 1.0.1 | MIT
minipass | 2.9.0 | ISC
minipass | 3.1.3 | ISC
minipass-collect | 1.0.2 | ISC
minipass-flush | 1.0.5 | ISC
minipass-pipeline | 1.2.4 | ISC
minizlib | 1.3.3 | MIT
minizlib | 2.1.2 | MIT
mississippi | 3.0.0 | BSD 2-clause
mixin-deep | 1.3.2 | MIT
mkdirp | 0.5.1 | MIT
mkdirp | 0.5.5 | MIT
mkdirp | 1.0.4 | MIT
moment | 2.24.0 | MIT
moment | 2.29.1 | MIT
moment-duration-format | 2.3.2 | MIT
moment-timezone | 0.5.28 | MIT
move-concurrently | 1.0.1 | ISC
ms | 2.0.0 | MIT
ms | 2.1.1 | MIT
ms | 2.1.2 | MIT
multicast-dns | 6.2.3 | MIT
multicast-dns-service-types | 1.1.0 | MIT
nan | 2.14.0 | MIT
nanoid | 3.1.23 | MIT
nanomatch | 1.2.13 | MIT
native-url | 0.2.6 | Apache-2.0
natural-compare | 1.4.0 | MIT
needle | 2.3.3 | MIT
negotiator | 0.6.2 | MIT
neo-async | 2.6.2 | MIT
Newtonsoft.Json | 12.0.1 | MIT
Newtonsoft.Json | 12.0.2 | MIT
next-tick | 1.0.0 | MIT
nice-try | 1.0.5 | MIT
NLog.Extensions.Logging | 1.4.0 | BSD 2-clause
NLog.WindowsEventLog | 4.5.11 | BSD 3-clause
NModbus | 3.0.62 | MIT
no-case | 3.0.4 | MIT
node-forge | 0.10.0 | BSD 3-clause or GPL-2.0
node-gyp | 3.8.0 | MIT
node-int64 | 0.4.0 | MIT
node-libs-browser | 2.2.1 | MIT
node-modules-regexp | 1.0.0 | MIT
node-notifier | 8.0.0 | MIT
node-pre-gyp | 0.11.0 | BSD 3-clause
node-releases | 1.1.73 | MIT
node-sass | 4.14.1 | MIT
nopt | 3.0.6 | ISC
nopt | 4.0.1 | ISC
normalize-package-data | 2.5.0 | BSD 2-clause
normalize-path | 2.1.1 | MIT
normalize-path | 3.0.0 | MIT
normalize-range | 0.1.2 | MIT
normalize-url | 1.9.1 | MIT
normalize-url | 3.3.0 | MIT
npm-bundled | 1.1.1 | ISC
npmlog | 4.1.2 | ISC
npm-normalize-package-bin | 1.0.1 | ISC
npm-packlist | 1.4.8 | ISC
npm-run-path | 2.0.2 | MIT
npm-run-path | 4.0.1 | MIT
nth-check | 1.0.2 | BSD 2-clause
num2fraction | 1.2.2 | MIT
number-is-nan | 1.0.1 | MIT
nwsapi | 2.2.0 | MIT
oauth-sign | 0.9.0 | Apache-2.0
object.assign | 4.1.0 | MIT
object.assign | 4.1.1 | MIT
object.assign | 4.1.2 | MIT
object.entries | 1.1.3 | MIT
object.fromentries | 2.0.3 | MIT
object.getownpropertydescriptors | 2.1.1 | MIT
object.pick | 1.3.0 | MIT
object.values | 1.1.2 | MIT
object-assign | 4.1.1 | MIT
object-component | 0.0.3 | MIT
object-copy | 0.1.0 | MIT
object-inspect | 1.10.2 | MIT
object-inspect | 1.7.0 | MIT
object-inspect | 1.8.0 | MIT
object-inspect | 1.9.0 | MIT
object-is | 1.1.3 | MIT
object-is | 1.1.4 | MIT
object-keys | 1.1.1 | MIT
object-visit | 1.0.1 | MIT
obuf | 1.1.2 | MIT
once | 1.4.0 | ISC
onetime | 5.1.2 | MIT
on-finished | 2.3.0 | MIT
on-headers | 1.0.2 | MIT
open | 7.3.0 | MIT
OpenJDK | 16.0.1 | GPL-2.0 with Classpath Exception
opn | 5.5.0 | MIT
optimize-css-assets-webpack-plugin | 5.0.4 | MIT
optionator | 0.8.3 | MIT
optionator | 0.9.1 | MIT
original | 1.0.2 | MIT
os-browserify | 0.3.0 | MIT
osenv | 0.1.5 | ISC
os-homedir | 1.0.2 | MIT
os-tmpdir | 1.0.2 | MIT
pako | 1.0.11 | MIT and Zlib
parallel-transform | 1.2.0 | MIT
param-case | 3.0.4 | MIT
parent-module | 1.0.1 | MIT
parse5 | 5.1.1 | MIT
parse-asn1 | 5.1.6 | ISC
parse-json | 2.2.0 | MIT
parse-json | 4.0.0 | MIT
parse-json | 5.1.0 | MIT
parseqs | 0.0.5 | MIT
parseqs | 0.0.6 | MIT
parseuri | 0.0.5 | MIT
parseuri | 0.0.6 | MIT
parseurl | 1.3.3 | MIT
pascalcase | 0.1.1 | MIT
pascal-case | 3.1.2 | MIT
path-browserify | 0.0.1 | MIT
path-dirname | 1.0.2 | MIT
path-exists | 2.1.0 | MIT
path-exists | 3.0.0 | MIT
path-exists | 4.0.0 | MIT
path-is-absolute | 1.0.1 | MIT
path-is-inside | 1.0.2 | WTFPL or MIT
path-key | 2.0.1 | MIT
path-key | 3.1.1 | MIT
path-match | 1.2.4 | MIT
path-parse | 1.0.6 | MIT
path-to-regexp | 0.1.7 | MIT
path-to-regexp | 1.8.0 | MIT
path-type | 1.1.0 | MIT
path-type | 2.0.0 | MIT
path-type | 4.0.0 | MIT
pbkdf2 | 3.1.1 | MIT
p-each-series | 2.2.0 | MIT
performance-now | 2.1.0 | MIT
p-finally | 1.0.0 | MIT
picomatch | 2.2.2 | MIT
pify | 2.3.0 | MIT
pify | 4.0.1 | MIT
pinkie | 2.0.4 | MIT
pinkie-promise | 2.0.1 | MIT
pirates | 4.0.1 | MIT
pkg-dir | 2.0.0 | MIT
pkg-dir | 3.0.0 | MIT
pkg-dir | 4.2.0 | MIT
pkg-up | 3.1.0 | MIT
p-limit | 1.3.0 | MIT
p-limit | 2.2.2 | MIT
p-limit | 2.3.0 | MIT
p-limit | 3.1.0 | MIT
p-locate | 2.0.0 | MIT
p-locate | 3.0.0 | MIT
p-locate | 4.1.0 | MIT
p-map | 2.1.0 | MIT
p-map | 4.0.0 | MIT
pnp-webpack-plugin | 1.6.4 | MIT
popper.js | 1.16.1 | MIT
portfinder | 1.0.28 | MIT
posix-character-classes | 0.1.1 | MIT
postcss | 7.0.36 | MIT
postcss | 8.3.6 | MIT
postcss-attribute-case-insensitive | 4.0.2 | MIT
postcss-browser-comments | 3.0.0 | CC0-1.0
postcss-calc | 7.0.5 | MIT
postcss-color-functional-notation | 2.0.1 | CC0-1.0
postcss-color-gray | 5.0.0 | ISC
postcss-color-hex-alpha | 5.0.3 | MIT
postcss-colormin | 4.0.3 | MIT
postcss-color-mod-function | 3.0.3 | CC0-1.0
postcss-color-rebeccapurple | 4.0.1 | MIT
postcss-convert-values | 4.0.1 | MIT
postcss-custom-media | 7.0.8 | MIT
postcss-custom-properties | 8.0.11 | MIT
postcss-custom-selectors | 5.1.2 | MIT
postcss-dir-pseudo-class | 5.0.0 | CC0-1.0
postcss-discard-comments | 4.0.2 | MIT
postcss-discard-duplicates | 4.0.2 | MIT
postcss-discard-empty | 4.0.1 | MIT
postcss-discard-overridden | 4.0.1 | MIT
postcss-double-position-gradients | 1.0.0 | CC0-1.0
postcss-env-function | 2.0.2 | CC0-1.0
postcss-flexbugs-fixes | 4.2.1 | MIT
postcss-focus-visible | 4.0.0 | CC0-1.0
postcss-focus-within | 3.0.0 | CC0-1.0
postcss-font-variant | 4.0.1 | MIT
postcss-gap-properties | 2.0.0 | CC0-1.0
postcss-image-set-function | 3.0.1 | CC0-1.0
postcss-initial | 3.0.2 | MIT
postcss-lab-function | 2.0.1 | CC0-1.0
postcss-load-config | 2.1.2 | MIT
postcss-loader | 3.0.0 | MIT
postcss-logical | 3.0.0 | CC0-1.0
postcss-media-minmax | 4.0.0 | MIT
postcss-merge-longhand | 4.0.11 | MIT
postcss-merge-rules | 4.0.3 | MIT
postcss-minify-font-values | 4.0.2 | MIT
postcss-minify-gradients | 4.0.2 | MIT
postcss-minify-params | 4.0.2 | MIT
postcss-minify-selectors | 4.0.2 | MIT
postcss-modules-extract-imports | 2.0.0 | ISC
postcss-modules-local-by-default | 3.0.3 | MIT
postcss-modules-scope | 2.2.0 | ISC
postcss-modules-values | 3.0.0 | ISC
postcss-nesting | 7.0.1 | CC0-1.0
postcss-normalize | 8.0.1 | CC0-1.0
postcss-normalize-charset | 4.0.1 | MIT
postcss-normalize-display-values | 4.0.2 | MIT
postcss-normalize-positions | 4.0.2 | MIT
postcss-normalize-repeat-style | 4.0.2 | MIT
postcss-normalize-string | 4.0.2 | MIT
postcss-normalize-timing-functions | 4.0.2 | MIT
postcss-normalize-unicode | 4.0.1 | MIT
postcss-normalize-url | 4.0.1 | MIT
postcss-normalize-whitespace | 4.0.2 | MIT
postcss-ordered-values | 4.1.2 | MIT
postcss-overflow-shorthand | 2.0.0 | CC0-1.0
postcss-page-break | 2.0.0 | MIT
postcss-place | 4.0.1 | CC0-1.0
postcss-preset-env | 6.7.0 | CC0-1.0
postcss-pseudo-class-any-link | 6.0.0 | CC0-1.0
postcss-reduce-initial | 4.0.3 | MIT
postcss-reduce-transforms | 4.0.2 | MIT
postcss-replace-overflow-wrap | 3.0.0 | MIT
postcss-safe-parser | 5.0.2 | MIT
postcss-selector-matches | 4.0.0 | MIT
postcss-selector-not | 4.0.0 | MIT
postcss-selector-parser | 3.1.2 | MIT
postcss-selector-parser | 5.0.0 | MIT
postcss-selector-parser | 6.0.4 | MIT
postcss-svgo | 4.0.2 | MIT
postcss-unique-selectors | 4.0.1 | MIT
postcss-value-parser | 3.3.1 | MIT
postcss-value-parser | 4.1.0 | MIT
postcss-values-parser | 2.0.1 | MIT
prelude-ls | 1.1.2 | MIT
prelude-ls | 1.2.1 | MIT
prepend-http | 1.0.4 | MIT
p-retry | 3.0.1 | MIT
pretty-bytes | 5.4.1 | MIT
pretty-error | 2.1.2 | MIT
pretty-format | 26.6.2 | MIT
process | 0.11.10 | MIT
process-nextick-args | 2.0.1 | MIT
progress | 2.0.3 | MIT
promise | 8.1.0 | MIT
promise-inflight | 1.0.1 | ISC
prompts | 2.4.0 | MIT
prop-types | 15.7.2 | MIT
prop-types-extra | 1.1.1 | MIT
proxy-addr | 2.0.6 | MIT
prr | 1.0.1 | MIT
pseudomap | 1.0.2 | ISC
psl | 1.7.0 | MIT
psl | 1.8.0 | MIT
p-try | 1.0.0 | MIT
p-try | 2.2.0 | MIT
public-encrypt | 4.0.3 | MIT
pump | 2.0.1 | MIT
pump | 3.0.0 | MIT
pumpify | 1.5.1 | MIT
punycode | 1.3.2 | MIT
punycode | 1.4.1 | MIT
punycode | 2.1.1 | MIT
q | 1.5.1 | MIT
qs | 6.5.2 | BSD 3-clause
qs | 6.7.0 | BSD 3-clause
qs | 6.9.4 | BSD 3-clause
querystring | 0.2.0 | MIT
query-string | 4.3.4 | MIT
querystring-es3 | 0.2.1 | MIT
querystringify | 2.1.1 | MIT
querystringify | 2.2.0 | MIT
RabbitMQ.Client | 6.2.2 | Apache-2.0 or MPL-2.0
raf | 3.4.1 | MIT
randombytes | 2.1.0 | MIT
randomfill | 1.0.4 | MIT
range-parser | 1.2.1 | MIT
raw-body | 2.4.0 | MIT
rc | 1.2.8 | BSD 2-clause or MIT or Apache-2.0
react | 16.14.0 | MIT
react | 17.0.1 | MIT
react-app-polyfill | 2.0.0 | MIT
react-component-managers | 3.2.2 | MIT
react-contextmenu | 2.14.0 | MIT
react-datepicker | 2.16.0 | MIT
react-dev-utils | 11.0.4 | MIT
react-dom | 16.14.0 | MIT
react-dom | 17.0.1 | MIT
react-error-overlay | 6.0.9 | MIT
react-i18next | 11.7.3 | MIT
react-i18next | 11.8.0 | MIT
react-icon-base | 2.1.0 | MIT
react-icons | 2.2.7 | MIT
react-icons | 3.11.0 | MIT
react-icons | 4.1.0 | MIT
react-icons | 4.2.0 | MIT
react-input-autosize | 3.0.0 | MIT
react-is | 16.13.0 | MIT
react-is | 16.13.1 | MIT
react-is | 17.0.1 | MIT
react-lifecycles-compat | 3.0.4 | MIT
react-loadable | 5.5.0 | MIT
react-onclickoutside | 6.9.0 | MIT
react-popper | 1.3.11 | MIT
react-popper | 1.3.7 | MIT
react-redux | 7.2.1 | MIT
react-redux-toastr | 7.6.5 | MIT
react-refresh | 0.8.3 | MIT
react-router | 5.2.0 | MIT
react-router-dom | 5.2.0 | MIT
react-scripts | 4.0.1 | MIT
react-select | 4.3.1 | MIT
reactstrap | 8.6.0 | MIT
reactstrap | 8.9.0 | MIT
react-table | 6.11.4 | MIT
react-table | 7.7.0 | MIT
react-transition-group | 2.9.0 | BSD 3-clause
react-transition-group | 4.4.2 | BSD 3-clause
react-widgets | 4.6.1 | MIT
readable-stream | 1.1.14 | MIT
readable-stream | 2.3.7 | MIT
readable-stream | 3.6.0 | MIT
readdirp | 2.2.1 | MIT
readdirp | 3.5.0 | MIT
read-pkg | 1.1.0 | MIT
read-pkg | 2.0.0 | MIT
read-pkg | 5.2.0 | MIT
read-pkg-up | 1.0.1 | MIT
read-pkg-up | 2.0.0 | MIT
read-pkg-up | 7.0.1 | MIT
recursive-readdir | 2.2.2 | MIT
redent | 1.0.0 | MIT
redent | 3.0.0 | MIT
redux | 4.0.5 | MIT
redux-thunk | 2.3.0 | MIT
regenerate | 1.4.2 | MIT
regenerate-unicode-properties | 8.2.0 | MIT
regenerator-runtime | 0.11.1 | MIT
regenerator-runtime | 0.13.4 | MIT
regenerator-runtime | 0.13.7 | MIT
regenerator-runtime | 0.13.9 | MIT
regenerator-transform | 0.14.5 | MIT
regex-not | 1.0.2 | MIT
regexp.prototype.flags | 1.3.0 | MIT
regex-parser | 2.2.11 | MIT
regexpp | 3.1.0 | MIT
regexpu-core | 4.7.1 | MIT
regjsgen | 0.5.2 | MIT
regjsparser | 0.6.4 | BSD 2-clause
relateurl | 0.2.7 | MIT
remove-trailing-separator | 1.1.0 | ISC
renderkid | 2.0.4 | MIT
repeat-element | 1.1.3 | MIT
repeating | 2.0.1 | MIT
repeat-string | 1.6.1 | MIT
request | 2.88.2 | Apache-2.0
request-promise-core | 1.1.4 | ISC
request-promise-native | 1.0.9 | ISC
require-directory | 2.1.1 | MIT
require-main-filename | 2.0.0 | ISC
requires-port | 1.0.0 | MIT
resolve | 1.15.1 | MIT
resolve | 1.18.1 | MIT
resolve-cwd | 2.0.0 | MIT
resolve-cwd | 3.0.0 | MIT
resolve-from | 3.0.0 | MIT
resolve-from | 4.0.0 | MIT
resolve-from | 5.0.0 | MIT
resolve-pathname | 3.0.0 | MIT
resolve-url | 0.2.1 | MIT
resolve-url-loader | 3.1.4 | MIT
ret | 0.1.15 | MIT
retry | 0.12.0 | MIT
retry-as-promised | 3.2.0 | MIT
reusify | 1.0.4 | MIT
rework | 1.0.1 | MIT
rework-visit | 1.0.0 | MIT
rfdc | 1.1.4 | MIT
rgba-regex | 1.0.0 | MIT
rgb-regex | 1.0.1 | MIT
rimraf | 2.7.1 | ISC
rimraf | 3.0.2 | ISC
ripemd160 | 2.0.2 | MIT
rollup | 1.32.1 | MIT
rollup-plugin-babel | 4.4.0 | MIT
rollup-plugin-terser | 5.3.1 | MIT
rollup-pluginutils | 2.8.2 | MIT
rsvp | 4.8.5 | MIT
run-parallel | 1.1.10 | MIT
run-queue | 1.0.3 | ISC
rxjs | 7.3.0 | Apache-2.0
safe-buffer | 5.1.2 | MIT
safe-buffer | 5.2.1 | MIT
safer-buffer | 2.1.2 | MIT
safe-regex | 1.1.0 | MIT
sams-config-ui | 1.0.0 | ISC
sane | 4.1.0 | MIT
sanitize.css | 10.0.0 | CC0-1.0
sass | 1.30.0 | MIT
sass-graph | 2.2.5 | MIT
sass-loader | 8.0.2 | MIT
sax | 1.2.4 | ISC
saxes | 5.0.1 | ISC
scheduler | 0.19.1 | MIT
scheduler | 0.20.1 | MIT
schema-utils | 1.0.0 | MIT
schema-utils | 2.7.1 | MIT
schema-utils | 3.0.0 | MIT
scss-tokenizer | 0.2.3 | MIT
select-hose | 2.0.0 | MIT
selfsigned | 1.10.8 | MIT
semver | 5.3.0 | ISC
semver | 5.7.1 | ISC
semver | 6.3.0 | ISC
semver | 7.0.0 | ISC
semver | 7.3.2 | ISC
send | 0.17.1 | MIT
sequelize | 5.21.5 | MIT
sequelize-pool | 2.3.0 | MIT
serialize-javascript | 4.0.0 | BSD 3-clause
serialize-javascript | 5.0.1 | BSD 3-clause
serve-index | 1.9.1 | MIT
serve-static | 1.14.1 | MIT
set-blocking | 2.0.0 | ISC
setimmediate | 1.0.5 | MIT
setprototypeof | 1.1.0 | ISC
setprototypeof | 1.1.1 | ISC
set-value | 2.0.1 | MIT
sha.js | 2.4.11 | MIT and BSD 3-clause
shallow-clone | 3.0.1 | MIT
shallow-equal-object | 1.1.1 | MIT
shebang-command | 1.2.0 | MIT
shebang-command | 2.0.0 | MIT
shebang-regex | 1.0.0 | MIT
shebang-regex | 3.0.0 | MIT
shell-quote | 1.7.2 | MIT
shellwords | 0.1.1 | MIT
shimmer | 1.2.1 | BSD 2-clause
side-channel | 1.0.3 | MIT
signal-exit | 3.0.2 | ISC
signal-exit | 3.0.3 | ISC
simple-swizzle | 0.2.2 | MIT
sisteransi | 1.0.5 | MIT
slash | 3.0.0 | MIT
slice-ansi | 2.1.0 | MIT
snapdragon | 0.8.2 | MIT
snapdragon-node | 2.1.1 | MIT
snapdragon-util | 3.0.1 | MIT
socket.io | 2.3.0 | MIT
socket.io-adapter | 1.1.2 | MIT
socket.io-client | 2.3.0 | MIT
socket.io-client | 2.3.1 | MIT
socket.io-parser | 3.3.0 | MIT
socket.io-parser | 3.3.1 | MIT
socket.io-parser | 3.4.0 | MIT
sockjs | 0.3.20 | MIT
sockjs-client | 1.4.0 | MIT
sort-keys | 1.1.2 | MIT
source-list-map | 2.0.1 | MIT
source-map | 0.4.4 | BSD 3-clause
source-map | 0.5.7 | BSD 3-clause
source-map | 0.6.1 | BSD 3-clause
source-map | 0.7.3 | BSD 3-clause
sourcemap-codec | 1.4.8 | MIT
source-map-js | 0.6.2 | BSD 3-clause
source-map-resolve | 0.5.3 | MIT
source-map-resolve | 0.6.0 | MIT
source-map-support | 0.5.19 | MIT
source-map-url | 0.4.0 | MIT
spdx-correct | 3.1.1 | Apache-2.0
spdx-exceptions | 2.3.0 | CC-BY-3.0
spdx-expression-parse | 3.0.1 | MIT
spdx-license-ids | 3.0.6 | CC0-1.0
spdx-license-ids | 3.0.7 | CC0-1.0
spdy | 4.0.2 | MIT
spdy-transport | 3.0.0 | MIT
split-string | 3.1.0 | MIT
sprintf-js | 1.0.3 | BSD 3-clause
spy-on-component | 1.1.3 | MIT
sqlite3 | 4.1.1 | BSD 3-clause
sshpk | 1.16.1 | MIT
ssri | 6.0.2 | ISC
ssri | 8.0.1 | ISC
stable | 0.1.8 | MIT
stackframe | 1.2.0 | MIT
stack-utils | 2.0.3 | MIT
static-eval | 2.0.2 | MIT
static-extend | 0.1.2 | MIT
statuses | 1.5.0 | MIT
stdout-stream | 1.4.1 | MIT
stealthy-require | 1.1.1 | ISC
stream-browserify | 2.0.2 | MIT
stream-each | 1.2.3 | MIT
stream-http | 2.8.3 | MIT
streamroller | 2.2.3 | MIT
stream-shift | 1.0.1 | MIT
strict-uri-encode | 1.1.0 | MIT
string.prototype.matchall | 4.0.3 | MIT
string.prototype.replaceall | 1.0.5 | MIT
string.prototype.trimend | 1.0.2 | MIT
string.prototype.trimend | 1.0.3 | MIT
string.prototype.trimend | 1.0.4 | MIT
string.prototype.trimleft | 2.1.1 | MIT
string.prototype.trimright | 2.1.1 | MIT
string.prototype.trimstart | 1.0.2 | MIT
string.prototype.trimstart | 1.0.3 | MIT
string.prototype.trimstart | 1.0.4 | MIT
string_decoder | 0.10.31 | MIT
string_decoder | 1.1.1 | MIT
string_decoder | 1.3.0 | MIT
stringify-object | 3.3.0 | BSD 2-clause
string-length | 4.0.1 | MIT
string-natural-compare | 3.0.1 | MIT
string-width | 1.0.2 | MIT
string-width | 2.1.1 | MIT
string-width | 3.1.0 | MIT
string-width | 4.2.0 | MIT
strip-ansi | 3.0.1 | MIT
strip-ansi | 4.0.0 | MIT
strip-ansi | 5.2.0 | MIT
strip-ansi | 6.0.0 | MIT
strip-bom | 2.0.0 | MIT
strip-bom | 3.0.0 | MIT
strip-bom | 4.0.0 | MIT
strip-comments | 1.0.2 | MIT
strip-eof | 1.0.0 | MIT
strip-final-newline | 2.0.0 | MIT
strip-indent | 1.0.1 | MIT
strip-indent | 3.0.0 | MIT
strip-json-comments | 2.0.1 | MIT
strip-json-comments | 3.1.1 | MIT
stylehacks | 4.0.3 | MIT
style-loader | 1.3.0 | MIT
stylis | 4.0.10 | MIT
supports-color | 2.0.0 | MIT
supports-color | 5.5.0 | MIT
supports-color | 6.1.0 | MIT
supports-color | 7.2.0 | MIT
supports-hyperlinks | 2.1.0 | MIT
svgo | 1.3.2 | MIT
svg-parser | 2.0.4 | MIT
symbol-observable | 1.2.0 | MIT
symbol-tree | 3.2.4 | MIT
System.Data.SQLite.Core | 1.0.109.2 | Public Domain
System.Data.SQLite.Core | 1.0.112.0 | Public Domain
table | 5.4.6 | BSD 3-clause
tapable | 1.1.3 | MIT
tar | 2.2.2 | ISC
tar | 4.4.13 | ISC
tar | 6.1.6 | ISC
temp-dir | 1.0.0 | MIT
tempy | 0.3.0 | MIT
terminal-link | 2.1.1 | MIT
terser | 4.8.0 | BSD 2-clause
terser | 5.5.1 | BSD 2-clause
terser-webpack-plugin | 1.4.5 | MIT
terser-webpack-plugin | 4.2.3 | MIT
test-exclude | 6.0.0 | ISC
text-table | 0.2.0 | MIT
throat | 5.0.0 | MIT
through2 | 2.0.5 | MIT
thunky | 1.1.0 | MIT
timers-browserify | 2.0.12 | MIT
timsort | 0.3.0 | MIT
tiny-invariant | 1.1.0 | MIT
tiny-warning | 1.0.3 | MIT
tmpl | 1.0.4 | BSD 3-clause
to-array | 0.1.4 | MIT
to-arraybuffer | 1.0.1 | MIT
to-fast-properties | 2.0.0 | MIT
toidentifier | 1.0.0 | MIT
to-object-path | 0.3.0 | MIT
toposort-class | 1.0.1 | MIT
to-regex | 3.0.2 | MIT
to-regex-range | 2.1.1 | MIT
to-regex-range | 5.0.1 | MIT
tough-cookie | 2.5.0 | BSD 3-clause
tough-cookie | 3.0.1 | BSD 3-clause
tr46 | 2.0.2 | MIT
trim-newlines | 1.0.0 | MIT
true-case-path | 1.0.3 | Apache-2.0
tryer | 1.0.1 | MIT
tsconfig-paths | 3.9.0 | MIT
tslib | 1.14.1 | 0BSD
tslib | 2.0.3 | 0BSD
tslib | 2.1.0 | 0BSD
tslib | 2.2.0 | 0BSD
tslib | 2.3.0 | 0BSD
ts-pnp | 1.2.0 | MIT
tsutils | 3.17.1 | MIT
tty-browserify | 0.0.0 | MIT
tunnel-agent | 0.6.0 | Apache-2.0
tweetnacl | 0.14.5 | Unlicense
type | 1.2.0 | ISC
type | 2.1.0 | ISC
type-check | 0.3.2 | MIT
type-check | 0.4.0 | MIT
typedarray | 0.0.6 | MIT
typedarray-to-buffer | 3.1.5 | MIT
type-detect | 4.0.8 | MIT
typed-styles | 0.0.7 | MIT
type-fest | 0.11.0 | MIT or CC0-1.0
type-fest | 0.3.1 | MIT or CC0-1.0
type-fest | 0.6.0 | MIT or CC0-1.0
type-fest | 0.8.1 | MIT or CC0-1.0
type-is | 1.6.18 | MIT
unbox-primitive | 1.0.1 | MIT
uncontrollable | 7.1.1 | MIT
underscore | 1.12.1 | MIT
underscore | 1.7.0 | MIT
unicode-canonical-property-names-ecmascript | 1.0.4 | MIT
unicode-match-property-ecmascript | 1.0.4 | MIT
unicode-match-property-value-ecmascript | 1.2.0 | MIT
unicode-property-aliases-ecmascript | 1.1.0 | MIT
union-value | 1.0.1 | MIT
uniq | 1.0.1 | MIT
uniqs | 2.0.0 | MIT
unique-filename | 1.1.1 | ISC
unique-slug | 2.0.2 | ISC
unique-string | 1.0.0 | MIT
universalify | 0.1.2 | MIT
universalify | 1.0.0 | MIT
universalify | 2.0.0 | MIT
unpipe | 1.0.0 | MIT
unquote | 1.1.1 | MIT
unset-value | 1.0.0 | MIT
upath | 1.2.0 | MIT
uri-js | 4.2.2 | BSD 2-clause
uri-js | 4.4.0 | BSD 2-clause
urix | 0.1.0 | MIT
url | 0.11.0 | MIT
url-loader | 4.1.1 | MIT
url-parse | 1.4.7 | MIT
url-parse | 1.5.3 | MIT
use | 3.1.1 | MIT
util | 0.10.3 | MIT
util | 0.11.1 | MIT
util.promisify | 1.0.0 | MIT
util.promisify | 1.0.1 | MIT
utila | 0.4.0 | MIT
util-deprecate | 1.0.2 | MIT
utility-types | 3.10.0 | MIT
utils-merge | 1.0.1 | MIT
uuid | 3.4.0 | MIT
uuid | 7.0.2 | MIT
uuid | 8.3.1 | MIT
v8-compile-cache | 2.2.0 | MIT
v8-to-istanbul | 7.0.0 | ISC
validate-npm-package-license | 3.0.4 | Apache-2.0
validator | 10.11.0 | MIT
value-equal | 1.0.1 | MIT
vary | 1.1.2 | MIT
vendors | 1.0.4 | MIT
verror | 1.10.0 | MIT
vm-browserify | 1.1.2 | MIT
void-elements | 2.0.1 | MIT
w3c-hr-time | 1.0.2 | MIT
w3c-xmlserializer | 2.0.0 | MIT
walker | 1.0.7 | Apache-2.0
warning | 3.0.0 | BSD 3-clause
warning | 4.0.3 | MIT
watchpack | 1.7.5 | MIT
watchpack-chokidar2 | 2.0.1 | MIT
wbuf | 1.7.3 | MIT
webidl-conversions | 5.0.0 | BSD 2-clause
webidl-conversions | 6.1.0 | BSD 2-clause
webpack | 4.44.2 | MIT
webpack-dev-middleware | 3.7.2 | MIT
webpack-dev-server | 3.11.0 | MIT
webpack-log | 2.0.0 | MIT
webpack-manifest-plugin | 2.2.0 | MIT
webpack-sources | 1.4.3 | MIT
websocket-driver | 0.6.5 | MIT
websocket-extensions | 0.1.4 | Apache-2.0
whatwg-encoding | 1.0.5 | MIT
whatwg-fetch | 3.5.0 | MIT
whatwg-mimetype | 2.3.0 | MIT
whatwg-url | 8.4.0 | MIT
which | 1.3.1 | ISC
which | 2.0.2 | ISC
which-boxed-primitive | 1.0.2 | MIT
which-module | 2.0.0 | ISC
wide-align | 1.1.3 | ISC
wkx | 0.4.8 | MIT
word-wrap | 1.2.3 | MIT
workbox-background-sync | 5.1.4 | MIT
workbox-broadcast-update | 5.1.4 | MIT
workbox-build | 5.1.4 | MIT
workbox-cacheable-response | 5.1.4 | MIT
workbox-core | 5.1.4 | MIT
workbox-expiration | 5.1.4 | MIT
workbox-google-analytics | 5.1.4 | MIT
workbox-navigation-preload | 5.1.4 | MIT
workbox-precaching | 5.1.4 | MIT
workbox-range-requests | 5.1.4 | MIT
workbox-routing | 5.1.4 | MIT
workbox-strategies | 5.1.4 | MIT
workbox-streams | 5.1.4 | MIT
workbox-sw | 5.1.4 | MIT
workbox-webpack-plugin | 5.1.4 | MIT
workbox-window | 5.1.4 | MIT
worker-farm | 1.7.0 | MIT
worker-rpc | 0.1.1 | MIT
wrap-ansi | 5.1.0 | MIT
wrap-ansi | 6.2.0 | MIT
wrappy | 1.0.2 | ISC
write-file-atomic | 3.0.3 | ISC
ws | 6.1.4 | MIT
ws | 6.2.2 | MIT
ws | 7.2.1 | MIT
ws | 7.5.3 | MIT
xmlchars | 2.2.0 | MIT
xmlhttprequest-ssl | 1.5.5 | MIT
xml-name-validator | 3.0.0 | Apache-2.0
xtend | 4.0.2 | MIT
y18n | 4.0.0 | ISC
y18n | 4.0.1 | ISC
yallist | 2.1.2 | ISC
yallist | 3.1.1 | ISC
yallist | 4.0.0 | ISC
yaml | 1.10.0 | ISC
yargs | 13.3.2 | MIT
yargs | 15.4.1 | MIT
yargs-parser | 13.1.2 | ISC
yargs-parser | 18.1.3 | ISC
yeast | 0.1.2 | MIT
yocto-queue | 0.1.0 | MIT

# 学术自由许可证 V.2.1

本学术自由许可证（以下简称“许可证”）适用于任何原创著作（“原创著作”），其所有人（“许可方”）已将原创著作的版权声明通知如下：

根据学术自由许可证 2.1 版许可

1）授予版权许可。许可方特此授予您全球范围、免版税、非排他性、永久性、可再许可的以下授权许可：

a）复印原件；

b）根据原创著作准备衍生著作（“衍生著作”）；

c）将原创著作和衍生著作的副本分发给公众；

d）公开执行原创著作；和

e）公开显示原创著作。

2）授予专利许可。许可方在此授予您在根据许可方提供的原创著作中包含的专利权限要求所拥有或控制的专利权限要求下的全球范围、免版税、非独占性、永久性、可再许可的权限，以制作、使用、出售并要约出售原创著作和衍生著作。

3）授予源代码许可。术语“源代码”是指对原创著作进行修改的首选形式，以及描述如何修改原创著作的所有可用文档。许可方在此同意提供许可方分发的原创著作的机器可读副本。许可方保留通过将源代码副本放置在合理计算的信息存储库中来满足此项义务的权限，只要许可方继续分发原创著作，以及在适用于原创著作的版权声明之后立即在通知中公布该信息库的地址，便可让您享有便宜且方便的访问权限。

4）免除许可证授予。许可方的名称、原创著作的任何贡献者的名称，以及他们的任何商标或服务标志均不得用于认可或推广由此产生的产品。本许可中的任何内容均不得视为授予许可方的任何商标、版权、专利、商业秘密或任何其他知识产权的权限，除非此处明确说明。未授权专利许可制造、使用、出售或要约出售除第 2 节规定的许可权限要求以外的任何专利权限要求的实施方案。即使原创著作中包含此类商标，也不授予许可商的商标权限。本许可证中的任何内容均不得解释为禁止许可方根据本许可证的不同条款许可许可方以其他方式有权许可的任何原创著作。

5）本部分故意省略。

6）归属权。您必须在原创著作源代码的所有版权、专利或商标声明的源代码中保留所有版权、专利或商标声明，以及任何许可声明和其中标识的任何描述性文本，作为“声明的归属声明”。您必须为您创建的任何衍生著作的源代码执行合理计算的显着归因通知，以通知收件人您已修改原创著作。

7）出处保证和免责声明。许可方保证，许可方对本协议授予的原创著作和专利权的版权归许可方所有，或者在本许可协议条款下经许可方的授权，并经过这些版权和专利权的贡献者的许可。除非在紧接着的句子中明确指出，否则原创著作是根据本许可证以“现状”为基础提供的，并且不附带任何明示或暗示的担保，包括但不限于非侵权、适销性或适用于一个特定的目的。关于原创著作质量的所有风险由您承担。本担保的免责声明构成本许可证的重要组成部分。除本声明外，本协议不授予原创著作的许可。

8）责任限制。在任何情况下和无法律理论的情况下，无论是在侵权行为（包括疏忽）、合同还是其他方面，许可方均不对任何人因本许可证的使用或原创著作的使用而导致任何直接、间接、特殊、偶然或相因而生的任何性质的损害负责，包括但不限于商誉损失、停工、PC故障或故障或任何其他商业损失或损失的损害赔偿。此责任限制不适用于因许可方的过失导致人身伤亡的责任，除非适用法律禁止此类限制。某些司法管辖区不允许排除或限制意外或间接损害，因此本排除和限制条款不一定适用于您。

9）接受和终止。如果您分发原创著作或衍生著作的副本，您必须在此情况下作出合理努力才能获得收件人对本许可证条款的明确同意。根据版权法、其他国家的相应法律和国际条约明确禁止的除外，本许可（或许可方与您之间的另一份书面协议）仅允许您在原创著作的基础上创作衍生著作或行使此处第 1 部分授予的任何权限，以及任何尝试这样做的任何尝试。 因此，通过行使本协议第 1 部分中授予您的任何权限，您表示您接受本许可及其所有条款和条件。

10）专利行为的终止。本许可证将自动终止，并且截至您开始采取行动（包括交叉索赔或反索赔）的日期，您不得行使本许可证给予您的任何权限，这些行为包括针对许可方或任何被许可方声称原创著作侵权专利。本终止条款不适用于原创著作与其他软件或硬件组合的专利侵权诉讼。

11）管辖权、地点和管辖法律。与本许可有关的任何诉讼或诉讼只能在许可方居住或许可方开展其主要业务所在司法管辖区的法院以及根据该司法管辖区的法律（不包括其法律冲突规定）提起。《联合国国际货物销售合同公约》的适用性被明确排除在外。任何在本许可范围之外或在终止之后使用原创著作都应遵守美国版权法第 17 卷第 101 条及其后续文件、其他国家的相应法律和国际条约的要求和处罚。本部分将在本许可证终止后继续存在。

12）律师费用。在执行本许可协议条款或寻求相关损害赔偿的任何诉讼中，胜诉方有权收回其成本和费用，包括但不限于合理的律师费和与此类诉讼有关的费用，包括对此类行为的任何上诉。本部分将在本许可证终止后继续存在。

13）杂项。本许可证构成与相关主题有关的完整协议。如果本许可证的任何规定无法执行，只能对该规定作出使其可以执行所必需的修改。

14）本许可中“您”的定义。本许可证中的“您”，无论大写还是小写，均表示个人或法人根据本许可证的所有条款行使权限并遵守本许可证的所有条款。对于法人实体，“您”包括控制您、由您控制或与您一同受控制的实体。在本定义中，“控制”指的是 (i) 通过合同或其他方式直接或间接造成相关实体的方向或管理的力量，或 (ii) 持有已发行股票的百分之五十（50%）或以上，或 (iii) 拥有该实体的受益所有权。

15）使用权。您可以以本许可证或法律另有限制的方式使用原创著作，并且许可方承诺不会干涉或负责您的此类使用。

此许可证为 2003-2004 Lawrence E. Rosen 版权所有（C）。保留所有权限。

特此授予许可，无需修改即可复制和分发此许可证。未经版权所有者的明确书面许可，不得修改本许可证。

# Apache 软件许可证，版本 2.0

Apache 许可证

版本 2.0，2004 年 1 月

http://www.apache.org/licenses/

使用、复制及分发条款与条件

1.定义。

“许可证”指的是本文件第 1 节到第 9 节规定的使用、复制及分发条款和条件。

“许可方”指的是授予许可证的版权所有者或版权所有者授权的实体。

“法人实体”指的是代理实体和控制该实体、由该实体控制或与该实体一同受控制的所有其他实体的联合。在本定义中，“控制”指的是 (1) 通过合同或其他方式直接或间接造成相关实体的方向或管理的力量，或 (2) 持有已发行股票的百分之五十（50%）或以上，或 (3) 拥有该实体的受益所有权。

“您”（或“您的”）指的是行使本许可证赋予之许可的个人或法人实体。

“源代码”形式指的是作出修改的首选形式，包括但不限于软件的源代码、文件来源和配置文件。

“目标”形式指的是对源代码格式进行机械变换或翻译产生的任何形式，包括但不限于编译的目标代码、生成的文件以及转换成其他介质类型。

“著作”指的是根据许可证提供的作者的著作，无论采用源代码形式或目标形式，具体由著作中包含或附带的版权声明注明（例子见下文附录）。

“衍生著作”指的是基于（或衍生自）著作的任何著作，无论采用源代码形式或目标形式，其编辑修改、注释、阐述或其他修改共同构成一件原创著作。在本许可证中，衍生著作不包括独立于或仅仅链接至（或绑定名称）著作及其衍生著作的界面的著作。

“贡献”指的是任何作者的著作，包括著作的原始版本以及对该著作或其衍生著作的任何修改或添加，由版权所有者或授权代表版权所有者的个人及法人实体有意提交给许可方。在本定义中，“提交”指的是为了讨论和改进著作而发送给许可方或其代表的任何形式的电子、口头或书面通信，包括但不限于由许可方或其代表管理的电子邮件列表、源代码控制系统和问题跟踪系统的相关通信，但是不包括被版权所有者明显标示或以其他书面形式注明为“非贡献”的通信。

“贡献者”指的是许可方以及许可方代为接收贡献并将其纳入著作的任何个人或法人实体。

2.版权许可证的授予。根据本许可证的条款和条件，每一名贡献者现授予您永久、全球性、非排他、免费、免版税、不可撤销的版权许可证，允许您复制、制备衍生著作、公开展示、公开表演、再许可以及分发源代码形式或目标代码形式的著作和此类衍生著作。

3.专利许可证的授予。根据本许可证的条款和条件，每一名贡献者现授予您永久、全球性、非排他、免费、免版税、不可撤销的（本节中注明的情况除外）专利许可证，允许您制作（包括已制作的）、使用、出价、销售、导入和以其他方式转让著作，但此许可证仅适用于贡献者可授权且其贡献本身或贡献与著作的结合必然会侵犯的专利权主张。如果您向任何实体提起专利诉讼（包括诉讼中的交叉索赔或反诉），声称著作或著作中包含的贡献构成直接或间接专利侵权，则根据本许可证针对著作授予您的专利许可证在提起诉讼之日终止。

4.再分发。您可以使用任何介质复制并分发著作或其衍生著作的副本，无论是否修改，也无论采用源代码形式或目标代码形式，但必须满足下列条件：

a. 您必须向接收著作或衍生著作的其他人提供一份本许可证的副本；且

b. 您必须确保修改过的文档附带明显的注释，声明您已修改过文档；且

c. 您必须在您分发的衍生著作源代码形式中保留所有来自著作源代码形式的版权、专利、商标和归属声明，不包括与衍生著作的任何部分无关的声明；且

d. 如果著作在分发时包含一份“声明”文本文件，则您分发的任何衍生著作均必须在该声明文件中的下列至少一处包含一份归属声明的可读副本，不包括与衍生著作的任何部分无关的声明：在随衍生著作分发的通知文本文件中；在源代码形式或文件中（如随衍生著作提供）；或者在衍生著作生成的显示页面中（如果此处通常会出现此类第三方声明）。声明文件的内容仅供参考，不得对许可证作出修改。您可以为您分发的衍生著作添加您自己的归属声明，可以添加到著作的声明文本中或者以附录的形式添加，但此类补充归属声明不得被解释为对许可证的修改。

您可以为您所作的修改添加您自己的版权声明，可以规定补充或不同的许可证条款和条件来允许他人使用、复制或分发您所作的修改或者所有此类衍生著作，但您对著作的使用、复制和分发必须满足本许可证规定的条件。

5.贡献的提交除非您另有明确说明，您向许可方提交的以添加到著作中为目的的所有贡献均必须符合本许可证的条款和条件，除此之外并无其他条款或条件。尽管存在上述规定，本许可证的任何内容均不取代或修改您与许可方针对此类贡献单独签订的许可协议。

6.商标。本许可证并未授权使用许可方的商品名称、商标、服务标志或产品名称，除非合理且按照惯例用于描述著作的来源以及复制声明文件的内容。

7.免责声明。除非适用法律要求或经书面同意，许可方将按“原样”提供著作（每一名贡献者也按“原样”提供贡献），不附带任何种类的担保或条件，无论明示或默示，包括但不限于所有权、不侵权、适销性或针对某特定用途的适用性的担保或条件。您需要全权负责判断使用或再分发著作的适当性，并承担与您行使本许可证赋予的许可相关的任何风险。

8.责任限制。在任何情况下、根据任何法律理论，无论是侵权（包括过失）、合同或其他，除非适用法律要求（例如蓄意和严重的疏忽行为）或经书面同意，如果您因为本许可证或因为使用或无法使用著作而受到任何损害，包括直接、间接、特殊或意外损害（包括但不限于商誉损失、停工、PC故障或任何所有其他商业损害或损失），贡献者概不负责，即使贡献者已被告知出现此类损害的可能性。

9.接受担保或额外责任。再分发著作或其衍生著作时，您可以选择在收费的基础上提供支持、担保、赔偿或承担其他责任义务和/或符合本许可证的权限。但是，选择承担此类义务时，您只能代表您自己并由您全权负责，不能代表任何其他贡献者。此外，您必须同意赔偿和保护每一名贡献者，避免其因为您承担此类担保或额外责任而承担任何责任或遭到索赔。

条款和条件结束

附录：如何为您的著作申请 Apache 许可证

要为您的著作申请 Apache 许可证，请附上以下样本通知，并用您自己的身份信息替代括号“[]”中的字段。（括号要去掉！）文本应当采用与文件格式相适合的注释语法。我们还建议在版权声明的同一“打印页面”上添加一个文件名或类别名以及目的描述，以便在第三方档案中用于识别。

Copyright [yyyy] [版权所有者名称]

根据 Apache 许可证版本 2.0（以下称为“许可证”）授权；

您不得使用此文件，除非遵守许可证。

您可以前往以下地址获取许可证的副本

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或经书面同意，

根据许可证分发的软件按“原样”提供，

不附带任何种类的担保或条件，无论明示或默示。

关于许可证的许可和限制的具体语言

请参阅许可证。

# 零子句 BSD (0BSD)

特此授予出于任何目的使用、复制、修改和/或分发本软件的许可，无论是否收费。

本软件“按原样”提供，不提供任何明示或暗示的担保，包括有关商品适销性或针对特定目的的适用性的默示保证。在任何情况下，作者均不承担由于使用或执行本软件而引起或与之相关的任何类型的直接、特殊、间接、后果性、惩罚性或其他损害赔偿，无论何种原因造成，包括但不限于，任何使用损失、利润损失或数据损失。

# BSD 2-clause“简化”许可证

Copyright <年份> <版权所有人>

允许以源代码形式和二进制形式再分发和使用，无论是否修改，但必须满足下列条件：

1.源代码的再分发必须保留以上版权声明、本条件列表以及以下免责声明。

2.以二进制形式再分发时必须在随分发提供的文件和/或其他材料中复制以上版权声明、本条件列表以及以下免责声明。

本软件由版权所有者和贡献者按“原样”提供，不附带任何明示或默示的担保，包括但不限于对适销性和针对某特定用途的适用性的默示担保。在任何情况下、根据任何责任理论，无论是合同、严格责任或侵权（包括过失及其他），如果因为以任何方式使用本软件而受到任何直接、间接、意外、特殊或典型损害（包括但不限于购买替代商品或服务；用途、数据或利润损失；或业务中断），版权所有者或贡献者概不负责，即使其已被告知出现此类损害的可能性。

# BSD 3-clause“修改”许可证

Copyright <年份> <版权所有人>

允许以源代码形式和二进制形式再分发和使用，无论是否修改，但必须满足下列条件：

1.源代码的再分发必须保留以上版权声明、本条件列表以及以下免责声明。

2.以二进制形式再分发时必须在随分发提供的文件和/或其他材料中复制以上版权声明、本条件列表以及以下免责声明。

3.未获得事先书面许可不得将版权所有者或其贡献者的名称用于为衍生自本软件的产品进行背书或促销。

本软件由版权所有者和贡献者按“原样”提供，不附带任何明示或默示的担保，包括但不限于对适销性和针对某特定用途的适用性的默示担保。在任何情况下、根据任何责任理论，无论是合同、严格责任或侵权（包括过失及其他），如果因为以任何方式使用本软件而受到任何直接、间接、意外、特殊或典型损害（包括但不限于购买替代商品或服务；用途、数据或利润损失；或业务中断），版权所有者或贡献者概不负责，即使其已被告知出现此类损害的可能性。

# BSD 4-clause“原始”许可证

Copyright (c) <年份> <所有人>保留所有权限。

允许以源代码形式和二进制形式再分发和使用，无论是否修改，但必须满足下列条件：

1.源代码的再分发必须保留以上版权声明、本条件列表以及以下免责声明。

2.以二进制形式再分发时必须在随分发提供的文件和/或其他材料中复制以上版权声明、本条件列表以及以下免责声明。

3.所有提及此软件功能或使用的广告材料都必须显示以下声明：

本产品包含由该组织开发的软件。

4.未获得事先书面许可不得将版权所有者或其贡献者的名称用于为衍生自本软件的产品进行背书或促销。

本软件由版权所有者按“原样”提供，不附带任何明示或默示的担保，包括但不限于对适销性和针对某特定用途的适用性的默示担保。在任何情况下、根据任何责任理论，无论是合同、严格责任或侵权（包括过失及其他），如果因为以任何方式使用本软件而受到任何直接、间接、意外、特殊或典型损害（包括但不限于购买替代商品或服务；用途、数据或利润损失；或业务中断），版权所有者概不负责，即使其已被告知出现此类损害的可能性。

# Creative Commons CC0 1.0 Universal

CREATIVE COMMONS CORPORATION 不是一家律师事务所，也不提供法律服务。此文档的分发不会形成律师与客户之间的关系。CREATIVE COMMONS CORPORATION 以“现状”为基础提供这些信息。对于使用本文档或此处提供的信息或作品，创意委员会不做任何保证，并且不承担因使用本文档或此处提供的信息或作品而造成的损害赔偿责任。

目的声明

世界上大多数司法管辖区的法律自动向原创作品和/或数据库（每个，“作品”）的创作者和随后的所有者（每个以及全部，“所有者”）授予专有版权和相关权利（定义见下文）。

某些所有者希望永久放弃作品的那些权利，以促进创意、文化和科学作品的共有（“共有”），使公众能够放心地以任何形式和出于任何目的（包括但不限于商业目的）尽可能自由地修改、合并到其他作品中、再利用以及重新分发，而不必担心后续遭到侵权指控。这些所有者可以为共有做出贡献，以弘扬自由文化的理想，并促进创意、文化和科学作品的进一步产生，或者部分通过他人的使用和努力，为他们的作品赢得声誉或扩大传播面。

为了这些和/或其他目的和动机，并且在没有任何额外考虑或补偿的情况下，将 CC0 与某作品相关联的人（“确认人”），只要他或她是该作品的版权和相关权利的所有者，自愿选择将 CC0 应用于作品，并在知悉其著作权和相关权利以及 CC0 对这些权利的含义和预期法律效力的情况下，根据其条款公开分发作品。

1.版权和相关权利。
根据 CC0 提供的作品可能受版权及相关或邻接权（“版权和相关权利”）的保护。版权和相关权利包括但不限于以下内容：

i. 复制、改编、分发、执行、显示、交流和翻译作品的权利；

ii. 原作者和/或执行者保留的精神权利；

iii. 与作品中描绘的人物形象或肖像有关的宣传权和隐私权；

iv. 保护作品免受不正当竞争的权利，但须遵守以下第 4 (a) 段的限制；

v. 保护作品中数据的提取、传播、使用和重用的权利；

vi. 数据库权利（例如，根据欧洲议会和理事会 1996 年 3 月 11 日关于数据库法律保护的第 96/9/EC 号指令及其任何国家实施下产生的权利，包括该指令的任何修订或后续版本）；和

vii. 基于适用法律或条约及其在任何国家/地区实施的全世界其他类似、等同或相应的权利。

2.弃权。
确认人在不违反适用法律的最大范围内，公开、完全、永久、不可撤消且无条件地放弃、舍弃和交出确认人在以下作品中的所有版权和相关权利以及相关的主张和诉因，无论现在已知还是未知（包括现行和未来的主张和诉因）：(i) 在全球范围所有领土中，(ii) 在适用法律或条约规定的最长期限内（包括未来的时间延长），(iii) 在任何当前或未来的介质中以及任何数量的副本，以及 (iv) 出于任何目的，包括但不限于商业、广告或促销目的（“弃权”）。确认人为了全体公众的利益并在有损确认人的后嗣和继承人的利益的情况下做出弃权，完全希望此类弃权将不受制于废除、撤销、取消、终止或任何其他法律或衡平法诉讼，从而破坏确认人明确的目的声明所预期的公众对作品的安静享受。

3.公共许可证后备。
如果根据适用法律以任何理由判定弃权的任何部分在法律上是无效的或不起作用的，则应在考虑到确认人的明确目的声明的情况下，将弃权保留在允许的最大范围内。此外，在如此裁定弃权的范围内，确认人特此授予每个受影响人士免版税、不可转让、不可再许可、非排他、不可撤消且无条件的许可，以行使确认人在以下作品中的著作权和相关权利：(i) 在全球范围所有领土中，(ii) 在适用法律或条约规定的最长期限内（包括未来的时间延长），(iii) 在任何当前或未来的介质中以及任何数量的副本，以及 (iv) 出于任何目的，包括但不限于商业、广告或促销目的（“许可”）。该许可自确认人将 CC0 应用于作品之日起生效。如果根据适用法律以任何理由判定许可的任何部分在法律上是无效的或不起作用的，则此类部分无效或不起作用将不会使许可的其余部分无效，在这种情况下，确认人确认他或她将不 (i) 行使他或她在作品中剩余的任何版权和相关权利，或 (ii) 维护与作品有关的任何相关主张和诉因，在任一种情况下都与确认人的明确目的声明相抵触。

4.限制和免责声明。

a. 确认人拥有的商标或专利权均不会被放弃、舍弃、交出、许可或受本文档影响。

b. 确认人按原样提供作品，关于作品不作任何形式的明示、暗示、法定或其他形式的陈述或保证，包括但不限于所有权、适销性、特定用途的适用性、不侵权或没有潜在或其他缺陷、准确性或者是否存在错误（无论是否可发现），均在适用法律允许的最大范围内。

c. 确认人不承担清除可能适用于本作品或其任何使用的其他人的权利的责任，包括但不限于任何人在本作品中的版权和相关权利。此外，确认人对获得任何使用本作品所需的必要同意、许可或其他权利不承担任何责任。

d. 确认人理解并认可，知识共享不是本文档的任何一方，并且对于此 CC0 或作品的使用不承担任何责任或义务。

# Creative Commons Attribution-ShareAlike 2.0

CREATIVE COMMONS CORPORATION 不是一家律师事务所，也不提供法律服务。此许可证的分发不会形成律师与客户之间的关系。CREATIVE COMMONS CORPORATION 以“现状”为基础提供这些信息。CREATIVE COMMONS CORPORATION 对所提供的信息不作任何保证，并且不承担因其使用所引起的损害赔偿责任。

许可证

这项工作（定义见下文）是根据本创新性的公共许可证（“CCPL”或“许可证”）的条款提供的。该著作受版权和/或其他适用法律的保护。严禁使用本授权或版权法授权以外的著作。

通过行使此处提供的著作的任何权限，您接受并同意受本许可条款的约束。考虑到您接受这些条款和条件，许可方授予您此处包含的权限。

1.定义

a. “编辑着作”意指像期刊，选集或百科全书的着作，其整体以未经修改的形式，与其中的数个著作，组成各自分开而且独立的着作。这些著作被汇编成为一个集合的整体。为了本许可证的目的，构成编辑著作的著作不会被认为是一个衍生著作（定义如下）。

b. “衍生著作”意指基于著作或该著作以及其他先前存在的著作而来之著作，例如翻译著作、编曲、编剧、改编成小说、改编成电影、录音、艺术品复制、节略、浓缩或以其他任何形式改造、转变、改写该著作。为了本许可证的目的，构成编辑著作之著作不会被认为是一个衍生著作。为避免疑义，在著作为音乐著作或录音的情况下，著作与动态影像（“同步”）的时间同步关系将被视为本许可证目的的衍生著作。

c. “许可方”意指在本许可之条款下提供著作之个人或法人。

d. “原始著作人”意指创作本著作之个人或法人。

e.“著作”意指在本许可之条款下所提供可受著作权保护之著作。

f. “您”意指先前并未就本著作违反本许可条款，或曾违反本许可条款但已获得许可方明示之许可，得依据本许可条款实施权限之个人或法人。

g.“许可证元素”指由许可方选择并在本许可证标头中指明的以下高级许可证属性：Attribution，ShareAlike。

2.合理使用的权限。

本许可条款之中没有任何规定意在减少、限制或约束依据下列原则所生之权限：

3.许可证授予。

根据本许可条款之条款与条件，许可方授与您一个全球性、免支付权限金、非专属、永久的（在适当的著作权期间内）许可，就本著作实施如下述之权限：

a. 重制本著作、将本著作收录于一个或多个编辑著作之中、以及当收录于编辑著作时重制本著作。

b. 创作以及重制衍生著作。

c. 为公开展示、公开演出或公开上映及以数位声音传输形式之公开演出或公开上映，散布或以公开传输之方式提供本著作之重制物或录音物，包括收录于编辑著作之中亦同。

d. 为公开展示、公开演出或公开上映及以数位声音传输形式之公开演出或公开上映，散布或以公开传输之方式提供衍生著作之重制物或录音物。

E. 为避免疑义，当本著作是音乐著作：

i. 根据一揽子许可证实行特许使用费。许可方放弃了个人或通过表演权社团（例如：ASCAP、BMI、SESAC），著作的公众表演或公共数字表演（例如网络直播）使用费的专有权。

ii. 机械权限和法定特许使用费。许可方放弃专有权收集个人或通过音乐权限协会或指定代理商（例如：Harry Fox Agency）收取您从著作创作的任何唱片专利使用费（“封面版”）并分发，但受美国版权法（美国版权法）17 条款 115（或其他司法管辖区等同）所制定的强制许可的约束。

f. 网播权限和法定特许使用费。为避免疑义，如果著作属于录音制品，许可方无论是单独或通过表演权限社团（例如：SoundEx更改）放弃专有权收集著作的公共数字表演（例如网络广播）版权费，受美国版权法（美国版权法）17 条款 114（或其他司法管辖区等同）所制定的强制许可的约束。

以上的权限可以在所有的、不论是现在已知或将来被发明出来之媒体以及格式上实施。以上的权限包含为了在其他媒体以及格式上实施权限因技术需求所为之修改。所有未经许可方明示授与的权限，于此加以保留。

4.限制。

依前述第 3 条所为之授权，明示地应受下述条款所限制与拘束：

a. 唯有在遵照本许可条款之情况下，您方得对本著作进行散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映。并且，每当您散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映本著作之重制物或录音物时，您必须附上一份本许可条款之复本或其统一资源识别(the Uniform Resource Identifier)。您不能就本著作提出或增加任何条款，而改变或限制了本许可条款、或被许可方所被授与而得行使之权限。您不能对本著作为再授权。您必须原封不动地保留所有与本许可条款有关的注意事项以及免除责任声明。您若对本著作之接近或使用采取不合于本许可条款之科技措施加以控制，则您不得散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映本著作。上述条款在著作本身及著作被收录于编辑著作后均适用之，但并不要求在本著作外之编辑著作也采取同样的许可条款。当您创作编辑著作时，如经要求，您必须依照任何许可方之通知，尽可能地移除编辑著作中任何与许可方或原作者之关联。当您创作衍生著作时，如经要求，您必须依照任何许可方之通知，尽可能地移除衍生著作中任何与许可方或原作者之关联。

b. 唯有在遵照本许可条款，本许可证的后续版本与本许可证具有相同的许可证元素，或者包含与本许可证相同的许可证元素的 Creative Commons iCommons 许可证（例如：Attribution-ShareAlike 2.0 Japan）之情况下，您方得对本著作之衍生著作进行散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映。并且，每当您散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映该衍生著作之重制物或录音物时，您必须附上一份本许可条款或前一句中指定的其他许可证之复本或其统一资源识别(the Uniform Resource Identifier)。您不能就该衍生著作提出或增加任何条款，而改变或限制了本许可条款、或被许可方所被授与而得行使之权限,您必须原封不动地保留所有与本许可条款有关的注意事项以及免除责任声明。您若对本衍生著作之接近或使用采取不合于本许可条款之科技措施加以控制，则您不得散布、或以公开传输之方式，公开展示、公开演出或公开上映、或以数位型态公开演出或公开上映本著作。上述条款在衍生著作本身及著作被收录于编辑著作后均适用之，但并不要求在本衍生著作外之编辑著作也采取同样的许可条款。

c. 当您散布，或以公开传输之方式，公开展示，公开演出或公开上映，或以数位型态公开演出或公开上映本著作，其任何衍生著作或编辑著作，您必须附上本著作完整之著作权声明，并在您所使用的媒介或工具上透过表示作者之姓名（或笔名），著作的标头；在合理可行的范围内，Uniform Resource Identifier，如果有的话，许可方指定与该著作相关联，除非此类 URI 未提及著作的版权声明或许可信息；在衍生著作的情况，则必须注明本著作在衍生著作中的使用（如“本法文译本译自原作者之原著”，“依据原作者之原著而改编的电影剧本”等），以合理地表彰原作者的贡献。此种对于原作者贡献的承认，可以透过任何合理的方式为之；惟在衍生著作或编辑著作之情况，此种对于原作者贡献的承认，最低程度必须在任何其他有相当贡献之作者获得承认时予以注明，并且至少以同等明显的方式为之。

5.声明、保证和免责条款

除非本许可的当事人以书面的方式做出相反约定或所适用的法律允许，许可方按其现状提供本著作，对本著作不作任何明示或者默示、依照法律或者其他规定的陈述或担保，包括但是不限于任何有关权限归属、可否商业性使用、是否符合特定的目的、未侵害他人权限、不具有潜在的或者其他缺陷、准确性或者不论能否被发现的错误不存在的担保。有些司法管辖区不允许排除前述默示保证，因此这些排除性规定并不一定适用于您。

6.责任限制条款。

除为相关法律所要求之范围及因违反第五条担保对第三人义务所生之损害以外，任何因本许可条款之授权或本著作之使用所生之特殊的，不可抗的，附随的，惩罚性的，警告性的损害，许可方在法理上对您不负任何责任，即使许可方已经被告知发生此类损害的可能性。

7.终止条款

a. 本许可条款及其所授与之权限在您违反本许可条款时自动终止。然而，依据本许可条款而向您取得衍生著作或编辑著作之个人或法人，若该个人或法人仍完全遵守其许可条款时，该许可条款不会随之终止。若本许可条款因终止而失效时，第 1、2、5、6、7 与 8 条，不因本许可条款之终止而失效。

b. 依据前述条款及条件，本处之授权在本著作适用之著作权期间内，系属永久。即便如此，许可方保留依不同许可条款释出本著作或在任何时间停止散布本著作之权限，然而任何这类选择并非在撤销本许可条款（或任何其他在本许可条款下已同意或必须同意之契约），本许可条款直到上述之情形而被终止前，将会以全部之效力继续存在。

8.其他

a. 当您每一次散布、公开传输，或以数位型态公开演出或公开上映本著作或编辑著作，许可方以相同于本许可条款所授与您之条款及条件，对接受者提出本著作许可条款之要约。

b. 当您每一次散布、公开传输，或以数位型态公开演出或公开上映本著作之衍生著作，许可方以相同于本契约所授与您之条款及条件，对接受者提出原著作之许可条款要约。

c. 若本许可条款之任何条文依相关法律之规定系属无效或无执行力，本许可条款其余条文之有效性或可强制执行性不受影响，在欠缺当事人对本许可条款之进一步动作时，此类条文应在最小的必要范围内重新制订，使其具有效及可受强制执行。

d. 除非有经当事人签名之书面记载，本许可条款之任何条款或条文皆不应被视为权限之放弃与未违约之同意。

e. 本许可条款构成相关当事人在此授权著作时之全部协议。除此之外，并不存在任何有关该著作之认知、协议或表述。许可方不应被任何可能出现在与您通讯之间的任何附加条款所拘束。本许可条款在欠缺许可方与您共同的书面协议时，不能被修改。

Creative Commons 并非本许可条款之当事人，亦不为本著作做任何其他相关之保证。 Creative Commons 在法理上不会对您或其他当事人负担任何损害之责任，包括但不限于，任何因本许可条款所生之一般的、特殊的、附随的、间接的损害。即便如此，若 Creative Commons 在许可条款中明示地表示其为许可方，其应有许可方之所有权限与义务。

除非在对公众表明本著作系依CCPL而授权之有限目的，任何一方不得未先取得 Creative Commons 书面同意而使用”Creative Commons”商标或任何相关商标或 Creative Commons 之标示。任何经允许之使用必须符合 Creative Commons 之现时商标使用方针，该方针将于其网站发布或应要求而随时提供。

可经由 https://creativecommons.org/ 与 Creative Commons 联络。

# Creative Commons Attribution-ShareAlike 3.0 Unported 许可

CREATIVE COMMONS CORPORATION 不是一家律师事务所，也不提供法律服务。此许可证的分发不会形成律师与客户之间的关系。CREATIVE COMMONS CORPORATION 以“现状”为基础提供这些信息。CREATIVE COMMONS CORPORATION 对所提供的信息不作任何保证，并且不承担因其使用所引起的损害赔偿责任。

许可证

这项工作（定义见下文）是根据本创新性的公共许可证（“CCPL”或“许可证”）的条款提供的。该著作受版权和/或其他适用法律的保护。严禁使用本授权或版权法授权以外的著作。

通过行使此处提供的著作的任何权限，您接受并同意受本许可条款的约束。只要这个许可证被认为是合同，考虑到您接受这些条款和条件，许可方授予您此处包含的权限。

1.定义

a. “演绎著作”指基于本著作，或基于本著作与其他已存在著作之上而创作的著作，例如翻译、改编、编曲或对文学、艺术或科学著作的其他变更，包括以摄制电影的方法对著作的改编，或其他任何对本著作进行改造、转换、或改编后的形式，包含任何可辨认为源自原创著作的修改形式。在本许可定义之下构成汇编著作的著作不视为演绎著作。为避免疑义，并为本许可之目的，当演绎对象为音乐著作、表演或录音制品时，将其依时间序列关系与动态影像配合一致而形成的结果，视为演绎著作。为本许可之目的，基于表演、录音制品及广播电视节目而形成的创作成果，亦适用本许可关于“演绎著作”的规定。

b. “汇编著作”是指由于对内容的选择和编排而构成智力创作的文学、艺术或科学著作的集合，其中本著作以完整且未经修改的形式和另外一部或多部著作组成集合的整体，而各组成著作本身是分开且独立的，例如百科全书、文选、数据汇编著作，以及本条第 1(f) 款所列著作之外的著作或者标的。 在本许可定义之下构成汇编著作的著作不视为演绎著作（定义如上）。

c.“Creative Commons 兼容许可证”是指在 https://creativecommons.org/compatiblelicenses 上列出并被 Creative Commons 批准为基本上等同于本许可证的许可证，至少包括以下许可证：（i）包含与本许可证的许可元素具有相同目的，含义和效果的条款； 并且（ii）明确允许根据本许可证提供的许可证或与本许可证相同的许可证元素的知识共享管辖区许可证进行的适应性重新授权。

d. “发行”指以出售或者其他权限移转方式向公众提供本著作或者演绎著作的原件或者复制件。

e.“许可证元素”指由许可方选择并在本许可证标头中指明的以下高级许可证属性：Attribution，ShareAlike。

f. “许可方”意指在本许可之条款下提供著作之个人或法人。

g. “原始作者”指创作本著作的自然人或依法视为本著作作者的法人或其他组织。为本许可之目的，下述情形下的自然人、法人或其他组织适用本许可有关“原始作者”的规定：（i）就表演而言，指演员、歌手、音乐人、舞蹈者和表演、演唱、演说、朗诵、演奏、表现或者以其它方式表演文学或艺术著作或民间文学艺术著作的人员；（ii）就录音制品而言，指首次将表演的声音或其他声音录制下来的自然人、法人或其他组织；（iii）就广播电视节目而言，指传播广播电视节目的组织。

h. “本著作”指在本许可条款下提供的文学、艺术和科学著作，包括但不限于以任何方式和形式（包括以数字形式）表达之文学、艺术和科学领域的著作，例如：书籍、手册及其他著作；讲课、演讲、讲道及其他同类性质的著作；戏剧或音乐戏剧著作；舞蹈艺术著作及哑剧著作；配词或不配词的乐曲；电影著作或以类似摄制电影的方法创作的著作；图画、油画、建筑、雕塑、雕刻或版画；摄影著作以及以类似摄影的方法创作的著作；实用美术著作；插图、地图及与地理、地形、建筑或科学有关的设计图、草图及造型著作；以及法律、行政法规规定的其他类型的著作。表演、录音制品及广播电视节目不属于“本著作”的范畴，但为本许可之目的，对它们的许可适用本许可中有关本著作的规定。

i. “您”意指先前并未就本著作违反本许可条款，或曾违反本许可条款但已获得许可方明示之许可，得依据本许可条款实施权限之个人或法人。

j.“公开传播”指公开朗诵本著作以及以任何方式或程序，包括以有线、无线的方式或通过信息网络公开传播本著作的公开朗诵；或向公众提供本著作，使公众可以在固定的时间和地点或者自己选定的时间和地点获得本著作；或以任何方式或程序公开表演本著作或向公众传播本著作的表演，包括通过信息网络传播本著作的表演；或以任何方式，包括符号、声音或图像，广播或转播、重播本著作。

k. “复制”指将著作制作一份或者多份，包括但不限于录音、录像、将著作固定于载体上或者复制固定后的著作，也包括以数字形式或其它电子媒介的形式存储受保护的表演或录音制品。

2.合理使用的权限。

本许可无意削减、限制、或约束您基于著作权法或其他相关法律有关著作权保护的限制或例外的规定对本著作的合法使用。

3.许可证授予。

根据本许可条款之条款与条件，许可方授与您一个全球性、免支付权限金、非专属、永久的（在适当的著作权期间内）许可，就本著作实施如下述之权限：

a. 重制本著作、将本著作收录于一个或多个集合著作之中、以及当收录于集合著作时重制本著作。

b. 创作和复制演绎著作，但是任何演绎著作，包括任何形式的翻译著作，均需以合理方式清楚地标示、区分或以其他方法表明原创著作已经修改变更。例如，翻译著作可以标明“原创著作已由英文翻译为西班牙文”，或者改编著作可以标明“原创著作已做修改”。

c. 发行、公开传播本著作（包括集合著作中收录的本著作）；

d. 发行、公开传播演绎著作。

e. 为避免疑义：

i. 不可放弃的强制许可机制。在通过任何法定或强制许可计划收取版税的权限不被豁免的司法管辖区，许可方保留为您对本许可授予的权限的任何行使收取此类使用费的专有权限；

ii. 可放弃的强制许可机制。在通过任何法定或强制许可计划收取版税的权限可被豁免的司法管辖区，许可方放弃为您对本许可授予的权限的任何行使收取此类使用费的专有权限；以及，

iii. 自愿许可机制。许可方放弃从您对本许可授予的权限的任何行使中收取许可使用费的权限，无论是个人使用，还是在许可方是管理自愿许可计划的收费协会成员的情况下。

以上的权限可以在所有的、不论是现在已知或将来被发明出来之媒体以及格式上实施。以上的权限包含为了在其他媒体以及格式上实施权限因技术需求所为之修改。除第 8（f）条另有规定外，所有未经许可方明示授与的权限，于此加以保留。

4.限制。

依前述第 3 条所为之授权，明示地应受下述条款所限制与拘束：

a. 只有在遵守本许可条款的情况下，您可发行、公开传播本著作。 在您发行、公开传播本著作的每份复制件中，您必须附上一份本许可的复制件或本许可的网址（Uniform Resource Identifier）。 您不得就本著作提出或增加任何条款，从而限制本许可条款或者限制获得本著作的第三方行使本许可条款所赋予的权限。您不能对本著作为再授权。您必须在您发行或公开传播的每份著作复制件中完整保留所有与本许可条款及免责条款相关的声明。在发行、公开传播本著作时，您不得使用任何技术性的措施限制获得本著作的第三方实施本许可协议授予的权限的能力。第 4(a) 条规定同样适用于收录在汇编著作中的本著作，但并不要求本著作外的汇编著作受本许可条款的约束。在创作集合著作时，若接到任何许可方的通知，您必须按照其要求，在可行范围内删除汇编著作中根据第 4(c) 款的要求所作的有关原始作者的身份及其他有关原创著作的相关信息的标注。在创作演绎著作时，若接到任何许可方的通知，您必须根据其要求，在可行范围内删除演绎著作中根据第 4(c) 款的要求所作的有关原始作者的身份及其他有关原创著作的相关信息的标注。

b. 只有在遵守本许可条款的情况下，您可发行、公开传播演绎著作：（i）本许可条款、(ii)或者与本许可条款具有相同授权要素的后续版本、(iii)或者与本许可条款具有相同授权要素的其他司法管辖区的知识共享许可协议或者其后续版本（例如：Attribution-ShareAlike 3.0 Us）的情况下，您可发行、公开传播演绎著作、(iv) Creative Commons Compatible License。如果您根据（iv）中提到的许可之一许可演绎著作，您必须遵守该许可的条款。 如果您根据 (i)、(ii) 或 (iii) 中提到的许可之一许可演绎著作（统称“所适用许可协议”），您必须一般遵守所适用许可协议和以下规定： (I) 您必须在发行或公开演绎本著作的每份副本中包含一份所适用许可协议的副本或统一资源识别符(URI)；(II) 您不得就本著作提出或施加任何条款，从而限制所适用许可协议条款或者限制本著作的接收人行使本许可条款向接收人所授予的权限；(III) 您必须在您发行或公开演绎的每份著作副本中完整保留所有与所适用许可协议条款及免责条款相关的声明；(IV) 在发行或公开演绎本著作时，您不得对本著作施加任何实质性的技术措施，以限制从您处获得本著作的接收人行使所适用许可协议条款向接收人所授予的权限。第 4(b) 条规定同样适用于收录在汇编著作中的演绎著作，但并不要求演绎著作外的汇编著作受所适用许可协议条款的约束。

c. 在发行、公开传播本著作或任何演绎、集合著作时，除非适用本条第 4(a) 款之要求，您必须完整保留所有关于本著作的著作权声明，并以适合所使用的媒体或工具的形式提供下述信息：（i）在原始作者的姓名（或笔名）已被提供的情况下，给出该姓名（或笔名），和/或在原始作者和/或许可方以许可方的著作权声明、服务条款或其他合理的方式，指定可以在著作上署名的他方当事人的情况下，给出该他方当事人的名称（“署名方”）；（ii）在本著作标头已被提供的情况下，给出本著作的标头；（iii）并在合理可行的程度上，标明许可方指定需与本著作同时出现的统一资源识别符(URI)，除非该统一资源识别符(URI)没有涉及到本著作的著作权声明或者关于本著作的许可信息；（iv）若为演绎著作，则依第 3(b) 款之要求，须指明演绎著作中使用的本著作的作者姓名和著作名称（例如，“某作者著作的法语译本”，或“基于某作者著作的电影剧本”）。本第 4(c) 款要求的对作者姓名和著作名称的指明可采取任何合理方式，但在演绎著作或集合著作中，如果已经指明了演绎著作的作者或集合著作的所有内含著作的作者，那么对本著作名称和作者姓名的指明须同时出现在任何其他作者姓名出现的地方，并至少与对其他作者的指明一样显著。为避免疑义，本款有关标示作者姓名和著作名称之规定，仅适用于前述署名的用途，未事先另行取得原始作者、许可方及（或）署名人的书面同意，您不得以明示或者默示的方式主张或暗示，您本人或您对著作的使用与原始作者、许可方及（或）署名人有关联或者已获得上述人士的赞助或者支持。

d. 除非许可方另行书面同意或适用法律另有允许，在您复制、发行或公开传播本著作或者包含本著作的演绎著作或集合著作时，您不得歪曲、篡改或采取其他与本著作相关的侵害行为侵犯原始作者的著作人身权。 许可方同意在这些司法管辖区（如日本），如果对本许可证第 3（b） 款授予的权限（制作演绎著作的权限）的任何行使被视为歪曲、篡改或采取其他与本著作相关的侵害行为侵犯原始作者的著作人身权，在适用的国家法律允许的最大范围内，许可方将酌情放弃或不主张本节，使您能够合理行使本许可证第 3（b） 款（制作演绎著作的权限）的权限，但不能以其他方式行使您的权限。

5.声明、保证和免责条款

除非本许可的当事人相互以书面的方式做出相反约定或所适用的法律允许，许可方按其现状提供本著作，对本著作不作任何明示或者默示、依照法律或者其他规定的陈述或担保，包括但是不限于任何有关权限归属、可否商业性使用、是否符合特定的目的、未侵害他人权限、不具有潜在的或者其他缺陷、准确性或者不论能否被发现的错误不存在的担保。有些司法管辖区不允许排除前述默示保证，因此这些排除性规定并不一定适用于您。

6.责任限制条款。

除为相关法律所要求之范围及因违反第五条担保对第三人义务所生之损害以外，任何因本许可条款之授权或本著作之使用所生之特殊的，不可抗的，附随的，惩罚性的，警告性的损害，许可方在法理上对您不负任何责任，即使许可方已经被告知发生此类损害的可能性。

7.端接

a. 本许可条款及其所授与之权限在您违反本许可条款时自动终止。然而，依据本许可条款而向您取得演绎或集合著作之个人或法人，若该个人或法人仍完全遵守其许可条款时，该许可条款不会随之终止。若本许可条款因终止而失效时，第 1、2、5、6、7 与 8 条，不因本许可条款之终止而失效。

b. 依据前述条款及条件，本处之授权在本著作适用之著作权期间内，系属永久。即便如此，许可方保留依不同许可条款释出本著作或在任何时间停止散布本著作之权限，然而任何这类选择并非在撤销本许可条款（或任何其他在本许可条款下已同意或必须同意之契约），本许可条款直到上述之情形而被终止前，将会以全部之效力继续存在。

8.其他

a. 当您每一次散布、公开传输，或以数位型态公开演出或公开上映本著作或集合著作，许可方以相同于本许可条款所授与您之条款及条件，对接受者提出本著作许可条款之要约。

b. 当您每一次散布、公开传输，或以数位型态公开演出或公开上映本著作之演绎著作，许可方以相同于本契约所授与您之条款及条件，对接受者提出原著作之许可条款要约。

c. 若本许可条款之任何条文依相关法律之规定系属无效或无执行力，本许可条款其余条文之有效性或可强制执行性不受影响，在欠缺当事人对本许可条款之进一步动作时，此类条文应在最小的必要范围内重新制订，使其具有效及可受强制执行。

d. 除非有经当事人签名之书面记载，本许可条款之任何条款或条文皆不应被视为权限之放弃与未违约之同意。

e. 本许可条款构成相关当事人在此授权著作时之全部协议。除此之外，并不存在任何有关该著作之认知、协议或表述。许可方不应被任何可能出现在与您通讯之间的任何附加条款所拘束。本许可条款在欠缺许可方与您共同的书面协议时，不能被修改。

f. 此许可权所授予的权益以及引用的要事在起草时使用的术语来自“保护文学与艺术著作的伯恩公约”(在 1979 年 9 月 28 日修订)、1961 年的“罗马公约”、1996 年的“WIPO-世界知识产权组织之版权条约”、1996 年的“WIPO-世界知识产权组织之表演与录音版权条约”以及“普世版权公约”(1971 年 7 月 24 日复审)。这些权限和要事都在相关的司法管辖区里生效，根据这些条约的相应规定以个别国家的适用法律去落实许可权要执行的条款。如果适用版权法律所授予的标准权益配套包括此许可权不授予的额外权益，这种额外的权益就会被当成是此许可权的一部份；此许可权无意限制适用法律所许可的任何权益。

Creative Commons 公告

Creative Commons 并非本许可条款之当事人，亦不为本著作做任何其他相关之保证。Creative Commons 在法理上不会对您或其他当事人负担任何损害之责任，包括但不限于，任何因本许可条款所生之一般的、特殊的、附随的、间接的损害。即便如此，若 Creative Commons 在许可条款中明示地表示其为许可方，其应有许可方之所有权限与义务。

除非在对公众表明本著作系依 CCPL 而授权之有限目的，除非事先另有书面约定，Creative Commons 不会授权任何一方使用“Creative Commons”商标和其他相关商标及标识。任何经允许之使用必须符合 Creative Commons 之现时商标使用方针，该方针将于其网站发布或应要求而随时提供。为避免疑义，要强调的是此商标的管制并不构成该许可权的一部份。

可经由 https://creativecommons.org/ 与 Creative Commons 联络。

# 知识共享版权归属 4.0 国际公共许可证

通过行使许可权利（定义如下），您接受并同意受本知识共享版权归属 4.0 国际公共许可证（“公共许可证”）条款和条件的约束。在某种程度上，公共许可证可被解释为一项合同，您被授予许可权利，是鉴于您接受这些条款和条件，而许可方授予您此类权利，是鉴于许可方根据本条款和条件提供许可材料所获得的利益。

## 第 1 部分 - 定义。

a. 改编材料是指受版权和类似权利约束的材料，该材料来源于或基于许可材料，其中许可材料的翻译、修改、编排、转换或其他修改方式需要许可方拥有版权和类似权利的许可证。就本公共许可证而言，如果许可材料是音乐作品、表演或录音，则始终在许可材料与运动图像同步的情况下制作改编材料。

b. 改编者许可证是指您根据本公共许可证的条款和条件，针对您对改编材料的贡献而申请您的版权和类似权利的许可证。

c. 版权和类似权利是指版权和/或与版权密切相关的类似权利，包括但不限于表演、广播、录音和特殊的数据库权利，不管这些权利如何标记或分类。就本公共许可证而言，第 2(b)(1)-(2) 条所指的权利不是版权和类似权利。

d. 有效技术措施是指在没有适当授权的情况下，根据履行 1996 年 12 月 20 日通过的《世界知识产权组织版权条约》第 11 条规定的义务的法律和/或类似国际协定，不得规避的措施。

e. 例外和限制是指合理使用、公平交易和/或对版权和类似权利（适用于您对许可材料的使用）的任何其他例外或限制。

f. 许可材料是指许可人应用本公共许可证的艺术或文学作品、数据库或其他材料。

g. 许可权利是指在本公共许可证的条款和条件下授予您的权利，仅限于所有版权和适用于您使用许可材料的类似权利，以及许可方行使许可权的权利。

h. 许可方是指根据本公共许可证授予权利的个人或实体。

i. 共享是指通过复制、公开展示、公开表演、分发、传播、交流或进口等需要许可的任何手段或程序向公众提供材料或使材料能被公众使用，包括以公众成员可在其单独选择的地点和时间获取材料的方式。

j. 特殊数据库权利是指欧洲议会和理事会 1996 年 3 月 11 日关于数据库法律保护的第 96/9/EC 号指令（经修订和/或沿用）所产生的版权以外的权利，以及世界任何地方的其他基本等同的权利。

k. 您是指在本公共许可证下行使许可权利的个人或实体。您的具有相应的含义。

## 第 2 部分 - 范围。

a. 许可证授予。

1. 在本公共许可证的条款和条件的约束下，许可方特此授予您一个全球范围的、免版税的、不可再许可的、非排他性的、不可撤销的许可证，以便您行使许可材料中的许可权利：

a. 复制和共享全部或部分许可材料；以及

b. 制作、复制和共享经过改编的材料。

2.例外和限制。为避免疑义，如果例外情况和限制适用于您的使用，则本公共许可证不适用，您无需遵守其条款和条件。

3.期限。本公共许可证的期限在第 6(a) 节中规定。

4.媒介和格式；允许技术修改。许可方授权您以所有媒介和格式（无论是现在已知的还是以后创建的）行使许可权利，并为此进行必要的技术修改。许可方放弃和/或同意不主张任何权利或授权，禁止您进行技术修改以便行使许可权利，包括为规避有效的技术措施而进行的技术修改。就本公共许可证而言，仅进行第 2(a)(4) 节授权的修改不会产生改编材料。

5.下游接收方。

A. 许可方许可材料的报价。许可材料的每一个接收方将自动收到许可方根据本公共许可证条款和条件行使许可权利的提议。

B. 无下游限制。如果这样做限制了许可材料的任何接收方行使许可权利，则您不得对许可材料提供或施加任何附加或不同的条款或条件，或对许可材料实施任何有效的技术措施。

6.无背书。本公共许可证中的任何内容均不构成或可被解释为允许声明或暗示您或您对许可材料的使用与许可方或第 3(a)(1)(A)(i) 条规定的指定接受归属的其他人有关，或由许可方或其他指定接受归属的人赞助、背书或授予官方身份。

b. 其他权利。

1.著作人身权，如保护作品完整权，非由本公共许可证许可，公开、隐私和/或其他类似的人格权也非由本许可证许可；然而，许可方在可能的范围内放弃和/或同意在允许您行使许可权利所必需的有限范围内不主张许可方所拥有的任何此类权利，但其他方面不限。

2.专利权和商标权非由本公共许可证许可。

3.在可能的范围内，许可方放弃为行使许可权利而向您收取使用费的任何权利，无论是直接收取还是通过任何自愿或可放弃的法定或强制许可计划下的征收协会收取。在所有其他情况下，许可方明确保留收取此类使用费的任何权利。

## 第 3 部分 - 许可条件。

您对许可权利的行使必须遵守以下条件。

A. 归属。

1.如果您共享许可材料（包括以修改的形式），您必须：

A. 如果由许可方随许可材料一起提供，保留以下内容：

I. 许可材料的作者的身份以及被指定接收版权归属的任何其他人的身份，以许可方要求的任何合理方式（包括使用笔名（如指定））；

ii. 版权声明；

Iii. 提及本公共许可证的声明；

iv. 提及免责声明的声明；

v. 在合理可行的范围内，指向许可材料的 URI 或超链接；

B. 指出您是否修改了许可材料，并保留之前任何修改的标示；以及

C. 指出许可材料是由本公共许可证许可的，并包括本公共许可证的文本或 URI 或超链接。

2.您可以基于您共享许可材料的媒介、方式和背景，以任何合理的方式满足第 3(a)(1) 部分的条件。例如，通过提供指向包含所需信息的资源的 URI 或超链接来满足这些条件可能是合理的。

3.如果许可方要求，您必须在合理可行的范围内删除第 3(a)(1)(a) 部分所要求的任何信息。

4.如果您共享您制作的改编材料，则您申请的改编者许可证不得阻止改编材料的接收方遵守此公共许可证。

## 第 4 部分 - 特殊数据库权利。

其中的许可权利包括适用于您使用许可材料的特殊数据库权利：

a. 为避免疑义，第 2(a)(1) 部分授予您摘录、再利用、复制和共享数据库的全部或大部分内容的权利；

b. 如果您将数据库的全部或大部分内容包括在您拥有特殊数据库权利的数据库中，则您拥有特殊数据库权利的数据库（但不包括其个别内容）为改编材料；且

c. 如果您共享数据库的全部或大部分内容，您必须遵守第 3(a) 部分的条件。

为避免疑义，第 4 部分补充但不取代您在本公共许可证下的义务，其中所许可的权利包括其他版权和类似权利。

## 第 5 部分 - 免责声明和责任限制。

a. 除非许可方另有承诺，许可方尽可能提供许可材料的现状和可用情况，并且对许可材料不作任何形式的陈述或保证，无论是明示的、暗示的、法定的或其他的。这包括但不限于所有权、适销性、适用于特定目的、不侵权、不存在潜在或其他缺陷、准确性或者存在或不存在错误的保证，无论是已知的还是未发现的。如果不允许全部或部分的免责声明，则本免责声明可能对您不适用。

b. 在可能的范围内，许可方在任何情况下都不因任何法律理论（包括但不限于疏忽）或其他原因对您承担因本公共许可证或使用许可材料而产生的任何直接、特殊、间接、附带、后果性、惩罚性、惩戒性或其他损失、费用、开支或损害赔偿责任，即使许可方已被告知可能发生此类损失、费用、开支或损害赔偿。如果不允许全部或部分的责任限制，则本限制可能对您不适用。

c. 对上述保证和责任限制的免责声明的解释应尽可能接近于对所有责任的绝对免责声明和放弃。

## 第 6 部分 – 期限及终止。

a. 本公共许可证适用于本文许可的版权和类似权利的期限。但是，如果您未能遵守本公共许可证，那么您在本公共许可证下的权利将自动终止。

b. 如果您使用许可材料的权利根据第 6(a) 部分终止，它将在以下情形恢复：

1. 自违规行为被处理（须在发现违规行为后 30 天内处理）之日起自动恢复；或

2. 由许可方明确恢复。

为避免疑义，本第 6(b) 部分并不影响许可方可能对您违反本公共许可证而寻求补救的任何权利。

c. 为避免疑义，许可方也可以根据单独的条款或条件提供许可材料，或者随时停止分发许可材料；但是，这样做不会终止本公共许可证。

d. 第 1、5、6、7 和 8 部分在本公共许可证终止后仍然有效。

## 第 7 部分 - 其他条款和条件。

a. 除非双方明确同意，否则许可方不受贵方传达的任何附加或不同条款或条件的约束。

b. 任何关于未在此说明的许可材料的安排、谅解或协议都与本公共许可证的条款和条件分开并独立于本公共许可证的条款和条件。

## 第 8 部分 - 解释。

a. 为避免疑义，本公共许可证并不会，也不应解释为，减少、限制或施加未经本公共许可证许可而合法使用许可材料的条件。

b. 在可能的范围内，如果本公共许可证的任何条款被认为不可执行，则应自动对其进行修改，使其达到可执行的最低限度。如果该条款不能修改，则应在不影响其余条款和条件的可执行性的情况下，将其从本公共许可证中删除。

c. 除非许可方明确同意，否则本公共许可证的任何条款或条件都不会被放弃，也不会被同意不遵守。

d. 本公共许可证中的任何内容均不构成或可解释为限制或放弃适用于许可方或您的任何特权和豁免，包括任何管辖区域或当局的法律程序。

Creative Commons 不是其公共许可证的一方。尽管如此，Creative Commons 可以选择将其公共许可证之一应用于其出版的材料，在这些情况下，将被视为“许可方”。Creative Commons 公共许可证的文本是在 CC0 Public Domain Dedication 下专用于公共领域的。除了表明材料是根据 Creativecommons.org/policies 上发布的 Creative Commons 公共许可证或 Creative Commons.org/policies 上发布的 Creative Commons 政策允许共享的有限目的之外，Creative Commons 未经其事先书面同意，不得授权使用 Creative Commons 商标或 Creative Commons 的任何其他商标或标识，包括但不限于未经授权修改其任何公共许可证或任何其他关于使用许可材料的安排、谅解或协议。为避免疑义，本段并不构成公共许可证的一部份。

可经由 creativecommons.org 与 Creative Commons 联系。

# GNU General Public License, GPL V2

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.

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

Everyone is permitted to copy and distribute verbatim copies

of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your

freedom to share and change it. By contrast, the GNU General Public

License is intended to guarantee your freedom to share and change free

software--to make sure the software is free for all its users. This

General Public License applies to most of the Free Software

Foundation's software and to any other program whose authors commit to

using it. (Some other Free Software Foundation software is covered by

the GNU Library General Public License instead.) You can apply it to

your programs, too.

When we speak of free software, we are referring to freedom, not

price. Our General Public Licenses are designed to make sure that you

have the freedom to distribute copies of free software (and charge for

this service if you wish), that you receive source code or can get it

if you want it, that you can change the software or use pieces of it

in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid

anyone to deny you these rights or to ask you to surrender the rights.

These restrictions translate to certain responsibilities for you if you

distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether

gratis or for a fee, you must give the recipients all the rights that

you have. You must make sure that they, too, receive or can get the

source code. And you must show them these terms so they know their

rights.

We protect your rights with two steps: (1) copyright the software, and

(2) offer you this license which gives you legal permission to copy,

distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain

that everyone understands that there is no warranty for this free

software. If the software is modified by someone else and passed on, we

want its recipients to know that what they have is not the original, so

that any problems introduced by others will not reflect on the original

authors' reputations.

Finally, any free program is threatened constantly by software

patents. We wish to avoid the danger that redistributors of a free

program will individually obtain patent licenses, in effect making the

program proprietary. To prevent this, we have made it clear that any

patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and

modification follow.

GNU GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains

a notice placed by the copyright holder saying it may be distributed

under the terms of this General Public License. The "Program", below,

refers to any such program or work, and a "work based on the Program"

means either the Program or any derivative work under copyright law:

that is to say, a work containing the Program or a portion of it,

either verbatim or with modifications and/or translated into another

language. (Hereinafter, translation is included without limitation in

the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not

covered by this License; they are outside its scope. The act of

running the Program is not restricted, and the output from the Program

is covered only if its contents constitute a work based on the

Program (independent of having been made by running the Program).

Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's

source code as you receive it, in any medium, provided that you

conspicuously and appropriately publish on each copy an appropriate

copyright notice and disclaimer of warranty; keep intact all the

notices that refer to this License and to the absence of any warranty;

and give any other recipients of the Program a copy of this License

along with the Program.

You may charge a fee for the physical act of transferring a copy, and

you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion

of it, thus forming a work based on the Program, and copy and

distribute such modifications or work under the terms of Section 1

above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices

stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in

whole or in part contains or is derived from the Program or any

part thereof, to be licensed as a whole at no charge to all third

parties under the terms of this License.

c) If the modified program normally reads commands interactively

when run, you must cause it, when started running for such

interactive use in the most ordinary way, to print or display an

announcement including an appropriate copyright notice and a

notice that there is no warranty (or else, saying that you provide

a warranty) and that users may redistribute the program under

these conditions, and telling the user how to view a copy of this

License. (Exception: if the Program itself is interactive but

does not normally print such an announcement, your work based on

the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If

identifiable sections of that work are not derived from the Program,

and can be reasonably considered independent and separate works in

themselves, then this License, and its terms, do not apply to those

sections when you distribute them as separate works. But when you

distribute the same sections as part of a whole which is a work based

on the Program, the distribution of the whole must be on the terms of

this License, whose permissions for other licensees extend to the

entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest

your rights to work written entirely by you; rather, the intent is to

exercise the right to control the distribution of derivative or

collective works based on the Program.

In addition, mere aggregation of another work not based on the Program

with the Program (or with a work based on the Program) on a volume of

a storage or distribution medium does not bring the other work under

the scope of this License.

3. You may copy and distribute the Program (or a work based on it,

under Section 2) in object code or executable form under the terms of

Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable

source code, which must be distributed under the terms of Sections

1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three

years, to give any third party, for a charge no more than your

cost of physically performing source distribution, a complete

machine-readable copy of the corresponding source code, to be

distributed under the terms of Sections 1 and 2 above on a medium

customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer

to distribute corresponding source code. (This alternative is

allowed only for noncommercial distribution and only if you

received the program in object code or executable form with such

an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for

making modifications to it. For an executable work, complete source

code means all the source code for all modules it contains, plus any

associated interface definition files, plus the scripts used to

control compilation and installation of the executable. However, as a

special exception, the source code distributed need not include

anything that is normally distributed (in either source or binary

form) with the major components (compiler, kernel, and so on) of the

operating system on which the executable runs, unless that component

itself accompanies the executable.

If distribution of executable or object code is made by offering

access to copy from a designated place, then offering equivalent

access to copy the source code from the same place counts as

distribution of the source code, even though third parties are not

compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program

except as expressly provided under this License. Any attempt

otherwise to copy, modify, sublicense or distribute the Program is

void, and will automatically terminate your rights under this License.

However, parties who have received copies, or rights, from you under

this License will not have their licenses terminated so long as such

parties remain in full compliance.

5. You are not required to accept this License, since you have not

signed it. However, nothing else grants you permission to modify or

distribute the Program or its derivative works. These actions are

prohibited by law if you do not accept this License. Therefore, by

modifying or distributing the Program (or any work based on the

Program), you indicate your acceptance of this License to do so, and

all its terms and conditions for copying, distributing or modifying

the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the

Program), the recipient automatically receives a license from the

original licensor to copy, distribute or modify the Program subject to

these terms and conditions. You may not impose any further

restrictions on the recipients' exercise of the rights granted herein.

You are not responsible for enforcing compliance by third parties to

this License.

7. If, as a consequence of a court judgment or allegation of patent

infringement or for any other reason (not limited to patent issues),

conditions are imposed on you (whether by court order, agreement or

otherwise) that contradict the conditions of this License, they do not

excuse you from the conditions of this License. If you cannot

distribute so as to satisfy simultaneously your obligations under this

License and any other pertinent obligations, then as a consequence you

may not distribute the Program at all. For example, if a patent

license would not permit royalty-free redistribution of the Program by

all those who receive copies directly or indirectly through you, then

the only way you could satisfy both it and this License would be to

refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under

any particular circumstance, the balance of the section is intended to

apply and the section as a whole is intended to apply in other

circumstances.

It is not the purpose of this section to induce you to infringe any

patents or other property right claims or to contest validity of any

such claims; this section has the sole purpose of protecting the

integrity of the free software distribution system, which is

implemented by public license practices. Many people have made

generous contributions to the wide range of software distributed

through that system in reliance on consistent application of that

system; it is up to the author/donor to decide if he or she is willing

to distribute software through any other system and a licensee cannot

impose that choice.

This section is intended to make thoroughly clear what is believed to

be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in

certain countries either by patents or by copyrighted interfaces, the

original copyright holder who places the Program under this License

may add an explicit geographical distribution limitation excluding

those countries, so that distribution is permitted only in or among

countries not thus excluded. In such case, this License incorporates

the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions

of the General Public License from time to time. Such new versions will

be similar in spirit to the present version, but may differ in detail to

address new problems or concerns.

Each version is given a distinguishing version number. If the Program

specifies a version number of this License which applies to it and "any

later version", you have the option of following the terms and conditions

either of that version or of any later version published by the Free

Software Foundation. If the Program does not specify a version number of

this License, you may choose any version ever published by the Free Software

Foundation.

10. If you wish to incorporate parts of the Program into other free

programs whose distribution conditions are different, write to the author

to ask for permission. For software which is copyrighted by the Free

Software Foundation, write to the Free Software Foundation; we sometimes

make exceptions for this. Our decision will be guided by the two goals

of preserving the free status of all derivatives of our free software and

of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY

FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN

OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES

PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED

OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS

TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE

PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,

REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING

WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR

REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,

INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING

OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED

TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY

YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER

PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest

possible use to the public, the best way to achieve this is to make it

free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest

to attach them to the start of each source file to most effectively

convey the exclusion of warranty; and each file should have at least

the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>

Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

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

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this

when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author

Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.

This is free software, and you are welcome to redistribute it

under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate

parts of the General Public License. Of course, the commands you use may

be called something other than `show w' and `show c'; they could even be

mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your

school, if any, to sign a "copyright disclaimer" for the program, if

necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program

`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989

Ty Coon, President of Vice

This General Public License does not permit incorporating your program into

proprietary programs. If your program is a subroutine library, you may

consider it more useful to permit linking proprietary applications with the

library. If this is what you want to do, use the GNU Library General

Public License instead of this License.

# GNU General Public License, v.2, with Classpath Exception

GNU General Public License, version 2, with the Classpath Exception

The GNU General Public License (GPL)

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.

59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

One line to give the program's name and a brief idea of what it does.

Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details.

The hypothetical commands 'show w' and 'show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than 'show w' and 'show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program 'Gnomovision' (which makes passes at compilers) written by James Hacker.

signature of Ty Coon, 1 April 1989

Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

"CLASSPATH" EXCEPTION TO THE GPL

Certain source files distributed by Oracle America and/or its affiliates are subject to the following clarification and special exception to the GPL, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code."

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

ADDITIONAL INFORMATION ABOUT LICENSING

Certain files distributed by Oracle America, Inc. and/or its affiliates are subject to the following clarification and special exception to the GPLv2, based on the GNU Project exception for its Classpath libraries, known as the GNU Classpath Exception.

Note that Oracle includes multiple, independent programs in this software package. Some of those programs are provided under licenses deemed incompatible with the GPLv2 by the Free Software Foundation and others. For example, the package includes programs licensed under the Apache License, Version 2.0 and may include FreeType. Such programs are licensed to you under their original licenses.

Oracle facilitates your further distribution of this package by adding the Classpath Exception to the necessary parts of its GPLv2 code, which permits you to use that code in combination with other independent modules not licensed under the GPLv2. However, note that this would not permit you to commingle code under an incompatible license with Oracle's GPLv2 licensed code by, for example, cutting and pasting such code into a file also containing Oracle's GPLv2 licensed code and then distributing the result.

Additionally, if you were to remove the Classpath Exception from any of the files to which it applies and distribute the result, you would likely be required to license some or all of the other code in that distribution under the GPLv2 as well, and since the GPLv2 is incompatible with the license terms of some items included in the distribution by Oracle, removing the Classpath Exception could therefore effectively compromise your ability to further distribute the package.

Failing to distribute notices associated with some files may also create unexpected legal consequences.

Proceed with caution and we recommend that you obtain the advice of a lawyer skilled in open source matters before removing the Classpath Exception or making modifications to this package which may subsequently be redistributed and/or involve the use of third party software.

# ISC 许可证

Copyright <年份> <所有人>

只要上述版权声明和本许可声明出现在所有副本中，特此授予允许以任何目的使用、复制、修改和/或分发本软件的费用或不收费。

本软件“按原样”提供，不提供任何明示或暗示的担保，包括有关商品适销性或针对特定目的的适用性的默示保证。在任何情况下，作者均不承担由于使用或执行本软件而引起或与之相关的任何类型的直接、特殊、间接、后果性、惩罚性或其他损害赔偿，无论何种原因造成，包括但不限于，任何使用损失、利润损失或数据损失。

# Inno 安装许可证

除非另有说明，否则 Inno Setup 软件包中包含的所有文档和软件均由 Jordan Russell 拥有版权。

版权所有 (C) 1997-2021 Jordan Russell。保留所有权限。
部分版权所有 (C) 2000-2021 Martijn Laan。保留所有权限。

本软件按“原样”提供，不附带任何明示或暗示的保证。在任何情况下，如因使用本软件而受到任何损害，作者概不负责。

本许可证允许任何人将本软件用于任何目的，包括商业应用，以及对软件进行修改和再分发，前提是满足下列条件：

1.源代码文件的所有再分发必须保留当前所有的版权声明，并且该条件列表不做修改。

2.所有二进制形式的再分发必须保留所有出现的上述版权声明和当前所在的网站地址（例如，在“关于”框中）。

3.不得对本软件的原版进行错误陈述；您不得声称您编写了原版软件。如果您使用本软件分发某款产品，最好能在产品文件中附带一份确认，但并非必须。

4.源代码或二进制形式修改版本必须明确标注为修改版，并且不得错误陈述为原版软件。

Jordan Russell
jr-2010 AT jrsoftware.org
http://www.jrsoftware.org/

# MIT 许可证（MIT）

MIT 许可证（MIT）

Copyright (c) <年份> <版权所有人>

现免费授权获取此软件和相关文件（以下称为“软件”）副本的人对软件进行不受限制的处理，包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权限， 以及授权获得软件的任何人采取同等行动，但必须满足以下条件：

以上版权声明和本许可声明必须包含在软件的所有副本或重要部分中。

软件按“原样”提供，不附带任何明示或默示的保证，包括但不限于对适销性、针对某特定用途的适用性以及非侵权的保证。在任何情况下，如果因软件或软件的使用或其他处理造成任何索赔、损害或其他责任，无论合同、侵权或其他责任，作者或版权所有者概不负责。

# Mozilla 公共许可证

Mozilla 公共许可证

版本 1.1

1.定义。

1.0.1.“商业用途”指的是分发或以其他方式向第三方提供覆盖代码。

1.1.“贡献者”指的是作出修改或为修改做出贡献的每一个实体。

1.2.“贡献者版本”指的是原始代码、贡献者使用的之前的修改以及该贡献者作出的修改的集合。

1.3.“覆盖代码”指的是原始代码或修改或原始代码和修改的集合，无论哪一种情况均包括两者的组成部分。

1.4.“电子分发机制”指的是软件开发界普遍接受用于电子数据传输的机制。

1.5.“可执行文件”指的是除源代码外的任何形式的覆盖代码。

1.6.“原开发者”指的是在附录 A 规定的源代码声明中注明为原开发者的个人或实体。

1.7.“大著作”指的是结合了覆盖代码或其组成部分以及不适用本许可证条款的代码的著作。

1.8.“许可证”指的是本文件。

1.8.1.“可授权”指的是有权在最大程度上授予本文件所授予的任何或全部权限，无论初次授予或后续取得。

1.9.“修改”指的是对原始代码或任何之前修改的实质或结构所作出的增添或删减。覆盖代码通过一系列文件发布时，修改指的是：A. 对包含原始代码或之前修改的文件内容所作出的增添或删减。

B. 包含原始代码或之前修改的任何部分的新文件。

1.10.“原始代码”指的是在附录 A 规定的源代码声明中被描述为“源代码”，并且在根据本许可证发布时尚未成为适用本许可证的覆盖代码的PC软件代码的源代码。

1.10.1.“专利权主张”指的是目前拥有或后续获得的任何专利权主张，包括但不限于授予者可授权专利中的方法、流程和设备要求。

1.11.“源代码”指的是用于对覆盖代码进行修改的首选形式，包括其包含的所有模块，加上相关界面定义文件、用于控制可执行文件的编译和安装的脚本，或者与原始代码或贡献者选择的其他已知且可用的覆盖代码进行的源代码差异比较。源代码可以采用压缩或封装形式，但是必须存在免费的解压缩或解封软件可用。

1.12.“您”（或“您的”）指的是行使本许可证赋予之权限并遵守本许可证或根据第 6.1 节发布的未来版本之条款的个人或法人实体。对于法人实体，“您”包括控制您、由您控制或与您一同受控制的实体。在本定义中，“控制”指的是 (1) 通过合同或其他方式直接或间接造成相关实体的方向或管理的力量，或 (2) 持有已发行股票的百分之五十（50%）或以上，或拥有该实体的受益所有权。

2.源代码许可证。

2.1.原开发者授权。

根据第三方知识产权声明，原开发者现授予您全球性、免版税、非排他许可证：

(a) 允许您在原开发者可授权的知识产权（除专利或商标）范围内使用、复制、修改、展示、表演、再许可和分发原始代码（或其组成部分），无论是否修改，和/或是否构成大著作的组成部分；

(b) 允许您在制作、使用或销售原始代码所侵犯的专利权范围内制作（包括已制作的）、使用、练习、销售、出售和/或以其他方式处置原始代码（或其组成部分）。

(c) 第 2.1(a) 和 (b) 节授予的许可证自原开发者根据本许可证的条款首次分发原始代码之日起生效。

(d) 尽管存在第 2.1(b) 节的规定，并未授予以下专利许可证：1) 您从原始代码中删除的代码；2) 独立于原始代码的代码；或 3) 以下行为导致的侵权：i) 修改原始代码，或 ii) 将原始代码与其他软件或设备相结合。

2.2.贡献者授予。

根据第三方知识产权声明，每一名贡献者现授予您全球性、免版税、非排他许可证：

(a) 允许您在贡献者可授权的知识产权（除专利或商标）范围内使用、复制、修改、展示、表演、再许可和分发该贡献者所作的修改（或其组成部分），无论是否修改，是否以覆盖代码的形式和/或是否构成大著作的组成部分；

(b) 允许您在制作、使用或销售该贡献者所作的修改和/或与其贡献者版本相结合（或该结合的组成部分）所侵犯的专利权范围内制作、使用、销售、出售和/或以其他方式处置：1) 该贡献者所作的修改（或其组成部分）；2) 该贡献者所作的修改与其贡献者版本的结合（或该结合的组成部分）。

(c) 第 2.2(a) 和 2.2(b) 节授予的许可证自贡献者首次将覆盖代码用于商业用途之日起生效。

(d) 尽管存在第 2.2(b) 节的规定，并未授予以下专利许可证：1) 贡献者从贡献者版本中删除的任何代码；2) 独立于贡献者版本的代码；3) 以下行为导致的侵权：i) 第三方修改贡献者版本，或 ii) 该贡献者所作的修改与其他软件相结合（作为贡献者版本组成部分的情况除外）；或 4) 该贡献者并未作出修改时覆盖代码侵犯专利权。

3.分发义务。

3.1.许可证的申请。

您创建或做出贡献的修改受本许可证条款管辖，包括但不限于第 2.2 节。覆盖代码的源代码版本只能根据本许可证或根据第 6.1 节发布的未来版本之条款分发，您必须在您分发的每一份源代码中包含一份本许可证。您不得提供或对任何源代码版本强加任何修改或限制本许可证适用版本或接收者权益的条款。但是，您可以通过补充文件提供第 3.5 节描述的补充权益。

3.2.源代码的可用性。

您创建或做出贡献的任何修改必须按照本许可证的条款以源代码形式提供，可以采用与可执行文件版本相同的介质或通过获得认可的电子分发机制提供给您向其提供可执行文件版本的任何人；如果通过电子分发机制提供，必须在初次提供之后的十二（12）个月内保持其可用，或者在该特定修改的后续版本提供给该接收者之后至少六（6）个月内保持其可用。您有责任确保源代码版本即使在电子分发机制由第三方维护的情况下仍然可用。

3.3.修改的描述。

您必须确保您做出贡献的所有覆盖代码均包含一份记录您为了创建该覆盖代码所做的变更和变更日期的文件。您必须留下一句突出声明，内容为修改直接或间接源自原开发者提供的原始代码，并在 (a) 源代码和 (b) 可执行文件版本的声明或您描述覆盖代码来源或所有权的相关文件中添加原开发者的姓名。

3.4.知识产权事项

(a) 第三方主张。如果贡献者知道行使该贡献者根据第 2.1 或 2.2 节的规定授予的权限需要获得根据第三方知识产权出具的许可证，贡献者必须在分发源代码时添加一个名为“LEGAL”的文件，足够详细地描述相关主张以及提出该主张的相关方，让接收者知道可以联系谁。如果贡献者在按照第 3.2 节的规定提供修改之后才获知以上情况，贡献者应当及时修改其提供的所有副本中的 LEGAL 文件，并采取其他合理措施（例如通知相应的邮件列表或新闻组）将其获知的新信息告知已接收覆盖代码的人。

(b) 贡献者 API。如果贡献者的修改包括应用编程接口（API），而贡献者知道实施该 API 需要获得专利许可证，那么贡献者也必须将该信息添加到 LEGAL 文件中。

(c) 声明。贡献者声明如下：除根据上文第 3.4(a) 节的规定披露的信息外，贡献者相信贡献者的修改是贡献者的原创，且贡献者有充分的权限授予本许可证授予的权限。

3.5.必要的通知。

您必须将附录 A 中的声明复制到每一个源代码文件中。如果因为结构问题无法将该通知放到特定源代码文件中，您必须将该通知添加到用户可能查找此类通知的地方（例如相关目录中）。如果创建了一个或多个修改，您可以将您的姓名作为贡献者添加到附录 A 规定的声明中。您也必须将此许可证复制到您描述接收者与覆盖代码相关权益或所有权的文件中。您可以选择向一名或多名覆盖代码接收者提供收费的保修、支持、赔偿或责任义务。但是，您只能代表您自己这么做，而不能代表原开发者或贡献者。您必须绝对明确，此类保修、支持、赔偿或责任义务由您单独提供。如果您提供的保修、支持、赔偿或责任义务对原开发者或贡献者造成责任，您在此同意赔偿原开发者和每一名贡献者。

3.6.可执行文件版本的分发。

在满足第 3.1-3.5 节规定的前提下，您可以采用可执行文件形式分发覆盖代码，但必须添加一份通知，声明可根据本许可证的条款提供覆盖代码的源代码版本，并说明您如何以及在哪里履行了第 3.2 节规定的义务。通知必须注目地添加到可执行文件版本的通知、相关文件或者您描述接收者与覆盖代码相关权益的附属合同中。您可以根据您选择的条款与本许可证不同的许可证分发覆盖代码的可执行文件版本或所有权，但必须遵守本许可证的条款，且可执行文件版本的许可证不得限制或修改接收者根据本许可证对源代码版本所享有的权限。如果根据不同的许可证分发可执行文件版本，您必须绝对明确，任何与本许可证不同的条款均由您单独提供，而非由原开发者或贡献者提供。如果您提供此类条款对原开发者或贡献者造成责任，您在此同意赔偿原开发者和每一名贡献者。

3.7.大著作。

您可以将覆盖代码与不属于本许可证条款管辖的其他代码相结合来创建大著作，并将该大著作作为一件单一产品进行分发。在这种情况下，您必须确保覆盖代码满足本许可证的要求。

4.由于法令或规定而无法遵守。

如果您由于法令、裁决令或规定而无法遵守本许可证中关于部分或全部覆盖代码的任何条款，您必须：(a) 在最大程度上遵守本许可证；(b) 说明限制原因及受影响的代码。此类说明必须包含在第 3.4 节规定的“LEGAL”文件中，并且必须包含在分发的所有源代码中。除法令或规定禁止的情况外，此类说明必须足够详细，确保掌握一般技能的接收者能够理解。

5.许可证的申请。

本许可证适用于原开发者添加了附录 A 规定声明的代码以及相关覆盖代码。

6.许可证的版本。

6.1.新版本。

Netscape Communications Corporation（“Netscape”）可能不定期发布许可证的修改和/或新版本。每一个版本都有一个用于区分的版本号。

6.2.新版本的效力。

覆盖代码根据特定版本的许可证发布之后，您始终可以根据该版本的条款继续使用覆盖代码。您也可以选择根据 Netscape 发布的后续版本的许可证条款使用该覆盖代码。除 Netscape 外，任何人均无权修改根据本许可证创建的覆盖代码的适用条款。

6.3.衍生著作。

如果您创建或使用本许可证的修改版本（您只能出于将其用于不再是本许可证管辖的覆盖代码的代码之目的），您必须 (a) 重新命名您的许可证，确保您的许可证中不会出现“MOZILLAPL”、“MOZILLAPL”、“MOZPL”、“Netscape”、“MPL”、“NPL”或容易混淆的类似词语（除了注明您的许可证与本许可证不同），且 (b) 通过其他方式明确您的许可证版本包含的条款与 Mozilla 公共许可证和 Netscape 公共许可证不同。（在附录 A 规定的声明中填写原开发者、原始代码或贡献者的名称本身并不构成修改本许可证。）

7.免责声明。

覆盖代码根据本许可证按“原样”提供，不附带任何种类的担保，无论明示或默示，包括但不限于覆盖代码不含缺陷、适销、适用于特定用途或未侵犯他人权限的担保。与覆盖代码的质量和性能相关的所有风险由您承担。如果覆盖代码被证明存在任何缺陷，您（而不是原开发者或任何其他贡献者）将承担必要的维修、修理或修正成本。此免责声明构成本许可证的基本组成部分。若不接受此免责声明，您将无权使用任何覆盖代码。

8.终止。

8.1.如果您未能遵守本许可证的条款并且未能在发现违约之后 30 天内纠正违约行为，本许可证及其授予的权限将自动终止。本许可证终止之后，所有适当授予的关于覆盖代码的再许可仍然有效。由于其性质而必须在本许可证终止之后保持效力的规定仍然有效。

8.2.如果您向原开发者或贡献者（您采取行动的原开发者或贡献者称为“参与者”）提出专利侵权索赔诉讼（不包括宣告判决的行动）并声称：

(a) 该参与者的贡献者版本直接或间接侵犯任何专利权，那么该参与者根据本许可证第 2.1 和/或 2.2 节授予您的所有权限将在参与者发出通知之后 60 天终止，除非您在接到通知之后 60 天内：(i) 以书面形式同意为您过去或将来使用的该参与者制作的修改向参与者支付双方商定的合理版税，或 (ii) 撤销就贡献者版本向该参与者提起的索赔诉讼。如果在 60 天的通知期内，双方未能以书面形式商定合理的版税以及付款安排，或者索赔诉讼未被撤销，参与者根据第 2.1 和/或 2.2 节授予您的权限将在上述 60 天通知期届满之后自动终止。

(b) 除该参与者的贡献者版本之外的任何软件、硬件或设备直接或间接侵犯任何专利权，那么该参与者根据第 2.1(b) 和 2.2(b) 节授予您的权限将在您初次制作、使用、销售或分发该参与者制作的修改之日撤销。

8.3.如果您向参与者提出专利侵权索赔，声称该参与者的贡献者版本直接或间接侵犯任何专利权，如果该索赔在提起专利侵权诉讼之前得到解决（例如通过许可证或赔偿），那么在确定相关款项或许可证的金额时应当考虑该参与者根据第 2.1 或 2.2 节授予的许可证的合理价值。

8.4.如果本许可证根据上述第 8.1 或 8.2 节终止，您或任何分发者在终止之前有效授予的所有最终用户许可协议（不包括分发者和转售者）仍然有效。

9.责任限制。

在任何情况下、根据任何法律理论，无论是侵权（包括过失）、合同或其他，如果任何人受到任何间接、特殊或意外损害（包括但不限于商誉损失、停工、PC故障或任何所有其他商业损害或损失），您、覆盖代码的原开发者、其他贡献者或分发者或任何此类相关方的供应商概不负责，即使相关方已被告知出现此类损害的可能性。此责任限制不适用于因该相关方的过失导致人身伤亡的责任，除非适用法律禁止此类限制。某些司法管辖区不允许排除或限制意外或间接损害，因此本排除和限制条款不一定适用于您。

10.美国政府最终用户。

覆盖代码属于 48 C.F.R. 2.101（1995 年 10 月）定义的“商品”，包括 48 C.F.R. 12.212（1995 年 9 月）使用的“商用PC软件”和“商用PC软件文件”。根据 48 C.F.R. 12.212 和 48 C.F.R. 227.7202-1 到 227.7202-4（1995 年 6 月），所有美国政府最终用户购买覆盖代码时仅享有此处规定的权限。

11.其他。

本许可证构成与相关主题有关的完整协议。如果本许可证的任何规定无法执行，只能对该规定作出使其可以执行所必需的修改。本许可证由加利福尼亚州的法律规定管辖（除非适用法律另有规定），不含法律冲突相关规定。出现争议时，如果至少一方是美利坚合众国的公民或者在美利坚合众国注册或登记经商的实体，与本许可证相关的法律必须接受加利福尼亚州北区联邦法院的管辖，法院地址位于加利福尼亚州圣克拉拉郡。败诉一方承担所有费用，包括但不限于开庭费用以及合理的律师费和其他费用。《联合国国际货物销售合同公约》的适用性被明确排除在外。规定合同语言必须解释为对起草者不利的任何法律规定均不适用于本许可证。

12.索赔责任。

原开发者和贡献者均有责任就因行使本许可证授予的权限而直接或间接造成的损害提出索赔；您同意在平等的基础上与原开发者和贡献者共同分担此类责任。本许可证的任何内容均不得视为构成承认责任。

13.多次许可代码。

原开发者有权将覆盖代码的任何部分指定为“多次许可”。“多次许可”指的是原开发者允许您根据您选择的 NPL 或原开发者在附录 A 规定的文件中指定的其他许可证（如有）使用覆盖代码的任何部分。

附录 A - Mozilla 公共许可证

本文件的内容受到 Mozilla 公共许可证版本 1.1（“许可证”）的约束；您必须遵守该许可证才能使用本文件。您可以前往以下地址获取许可证的副本：http://www.mozilla.org/MPL/

根据许可证分发的软件按“原样”提供，不附带任何明示或默示的担保。关于许可证的权限和限制的具体语言见许可证。

原始代码为 ______________________________________。

原始代码的原开发者为 ________________________。由 ______________________ 创建的部分版权归 _____________________________所有。保留所有权限。

贡献者：______________________________________。

或者，您可以根据 _____ 许可证（“[___] 许可证”)的条款使用本文件的内容，此时适用 [___] 许可证的规定而非上述规定。如果您希望只根据 [___] 许可证的条款使用您的文件版本并且不允许他人根据 MPL 使用您的文件版本，请删除以上规定并替换成 [___] 许可证规定的声明和其他规定，以此来表明您的决定。如果未删除上述规定，接收者可以根据 MPL 或 [___] 许可证的条款使用您的文件版本。

[注意：本附录 A 的文本可能与原始代码的源代码文件中的声明文本略有不同。修改时您应当使用本附录 A 的文本而非原始代码的源代码中的文本。]

# Mozilla Public License, v.2.0 (MPL-2.0)

Mozilla Public License

Version 2.0

1. Definitions 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.

1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.

1.3. "Contribution" means Covered Software of a particular Contributor.

1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.

1.5. "Incompatible With Secondary Licenses" means

that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or

that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.

1.6. "Executable Form" means any form of the work other than Source Code Form.

1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.

1.8. "License" means this document.

1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.

1.10. "Modifications" means any of the following:

any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or

any new file in Source Code Form that contains any Covered Software.

1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.

1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.

1.13. "Source Code Form" means the form of the work preferred for making modifications.

1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

2. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:

under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and

under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.

2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.

2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:

for any code that a Contributor has removed from Covered Software; or

for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or

under Patent Claims infringed by Covered Software in the absence of its Contributions.

This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).

2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).

2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.

2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.

3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.

3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then:

such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and

You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).

3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.

4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

5. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.

6. Disclaimer of Warranty Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.

7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.

8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.

9. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.

10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.

10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.

10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.

# ODC 归属许可证 (ODC-By)

## 序言

Open Data Commons Attributation License 是一项许可协议，旨在允许用户自由共享、修改和使用此数据库，但仅受第 4 部分列出的归属要求的约束。

数据库可以包含各种类型的内容（例如，都在同一个数据库中的图像、视听材料和声音），因此本许可证只管理对数据库的权限，而不单独管理数据库的内容。因此，许可方可能希望将此许可证与内容的另一个许可证一起使用。

有时，数据库的内容或数据库本身可以由此处未述及的其他权利（如私人合同、名称的商标权或内容中信息的隐私权/数据保护权）所涵盖，因此建议您在进行本许可证未涵盖的活动之前，可能必须查阅其他文档或清除其他权利。

------

许可方（定义如下）

和

您（定义如下）

商定如下：

## 1.0 首字母大写单词串的定义

“集合数据库” - 是指这个数据库以未经修改的形式作为独立数据库集合的一部分，这些独立数据库本身被组合成一个集合整体。构成集合数据库的作品将不被视为衍生数据库。

“传送” - 作动词，指以任何方式使用数据库、衍生数据库或作为集合数据库的一部分的数据库，使人们能够制作或接收数据库或衍生数据库的副本。传送不包括通过计算机网络与用户交互，或创建和使用制作的作品，其中不发生数据库副本或衍生数据库的转移。

“内容” - 本数据库的内容，包括信息、独立作品或其他收集到数据库中的材料。例如，数据库的内容可以是事实数据或作品，如图像、视听材料、文本或声音。

“数据库” - 以系统或有条理的方式安排的材料（内容）的集合，可通过电子或本许可条款提供的其他方式单独访问。

“数据库指令” - 指 1996 年 3 月 11 日欧洲议会和理事会关于数据库法律保护的第 96/9/EC 号指令（经修订或继承）。

“数据库权利” - 指《数据库指令》第三章（“特殊”）规定的权利（经成员国修订和转换）所产生的权利，包括提取和重新利用全部或大部分内容，以及第 10.4 节规定的相关司法管辖区内的任何类似权利。

“衍生数据库” - 指以该数据库为基础的数据库，包括对该数据库或其大部分内容的任何翻译、改编、排列、修改或任何其他更改。这包括但不限于提取或重新利用新数据库中的全部或大部分内容。

“提取” - 指通过任何手段或形式永久或暂时地将全部或大部分内容转移到另一种媒介。

“许可证” - 指此许可协议，既是版权和数据库权利等权利的许可证，也是合同中的协议。

“许可方” - 指根据本许可证条款提供数据库的人。

“人” - 指自然人或法人或法人团体。

“作品” - 使用本数据库、衍生数据库或作为集合数据库的一部分的本数据库的全部或大部分内容（通过搜索或其他查询）而产生的作品（如图像、视听材料、文本或声音）。

“公开” - 指除您以外的人或不由您控制（通过拥有超过 50% 的所有权或有权指导他们的活动（比如与独立顾问签订合同））的人。

“再利用” - 指通过分发副本、出租、在线或其他形式的传输，向公众提供全部或大部分内容的任何形式。

“实质性” - 指在数量、质量或这两者组合方面的实质性。内容的非实质性部分的重复和系统提取或再利用可能相当于内容的实质性部分的提取或再利用。

“使用” - 作动词，指的是在原始媒体或任何其他媒体上进行受版权或数据库权利限制的任何行为；包括但不限于分发、复制、公开执行、公开显示和准备数据库的衍生作品，以及在技术上可能需要以不同的模式或格式使用数据库时修改数据库。

“您” - 指在本许可证下行使权利的人，该人之前未违反本许可证有关数据库的条款，或在之前违反本许可证的情况下，已获得许可方明确许可行使本许可证下的权利。

单数形式的词包括复数形式，反之亦然。

## 2.0 本许可证涵盖的内容

2.1.本文件的法律效力。此许可证：

a. 适用版权和类似权利的许可证；

b. 数据库权利的许可证；和

c. 您与许可方之间的合同约定。

2.2 涵盖的合法权利。本许可证涵盖数据库中的合法权利，包括：

a. 版权。数据库中的任何版权或类似权利。许可的版权包括数据库的任何单个元素，但不包括独立于此数据库的内容的版权。参见第 2.4 部分了解详情。版权法因司法管辖区而异，但可能涵盖：数据库模型或模式，即数据库的结构、安排和组织，还可能包括数据库表和表索引；数据输入和输出表；以及存储在数据库中的内容的字段名；

b. 数据库权利。数据库权利只延伸到全部或大部分内容的提取和再利用。即使没有对数据库的版权，也可以应用数据库权利。当内容从数据库中删除并以不会侵犯任何适用的版权的方式进行选择和排列时，数据库权利也可以适用；

c. 合同。这是您和许可方之间关于访问数据库的协议。反过来，您同意本许可证中概述的此访问的某些使用条件。

2.3 未涵盖的权利。

a. 本许可证不适用于制作或操作数据库所使用的计算机程序；

b. 本许可证不包括内容或数据库的任何专利；

c. 本许可证不包括与数据库相关的任何商标。

2.4 与数据库中内容的关系。本数据库中包含的内容的个别项目可能受到其他权利的保护，包括版权、专利、数据保护、隐私或人格权，本许可证不包括数据库中包含的个别内容的任何权利（除了数据库权利或合同）。例如，如果在图像（内容）数据库上使用，该许可证将不适用于单个图像的版权，这些图像可能有自己单独的许可证，或者一个单独的许可证覆盖图像的所有权利。

## 3.0 赋予的权利

3.1 根据本许可证的条款和条件，许可方授予您在任何适用的版权和数据库权利期间使用数据库的全球、免版税、非排他性、可终止的（但仅限于第 9 部分）许可证。这些权利明确包括商业用途，不排除任何努力领域。在相关司法管辖区的可能范围内，这些权利可以以所有媒介和形式行使，无论是现在已知的还是将来创造的。

授予的权利包括，例如：

a. 全部或大部分内容的提取和再利用；

b. 建立衍生数据库；

c. 建立集合数据库；

d. 以任何手段和任何形式，全部或部分建立临时或永久复制品，包括任何衍生数据库或作为集合数据库的一部分；

e. 以任何手段和形式向公众分发、传播、展示、出借、提供或履行全部或部分数据库（包括任何衍生数据库或作为集合数据库的一部分）。

3.2 强制许可证计划。为避免疑义：

a. 不可放弃的强制许可证计划。在通过任何法定或强制许可计划收取版税的权限不被豁免的司法管辖区，许可方保留为您对本许可授予的权限的任何行使收取此类使用费的专有权限；

b. 可放弃的强制许可证计划。在通过任何法定或强制许可计划收取版税的权限可被豁免的司法管辖区，许可方放弃为您对本许可授予的权限的任何行使收取此类使用费的专有权限；以及，

c. 自愿许可证计划。许可方放弃从您对本许可授予的权限的任何行使中收取许可使用费的权限，无论是个人使用，还是在许可方是管理自愿许可计划的收费协会成员的情况下。

3.3 保留以不同条款发布数据库或停止分发或提供数据库的权利。请注意，此数据库可以是多重许可的，因此您可以选择对此数据库使用其他许可证。除第 10.4 条另有规定外，所有未经许可方明示授予的权利加以保留。

## 4.0 使用条件

4.1 以上第 3 部分授予的权利是在您遵守以下使用条件的前提下明确作出的。这些是本许可证的重要条件，如果您不遵守这些条件，您将严重违反其条款。

4.2 通知如果您公开传送此数据库、任何衍生数据库或作为集合数据库的一部分的数据库，那么您必须：

a. 仅在本许可证的条款下这样做；

b. 在数据库或衍生数据库中包括本许可证或其统一资源标识符 (URI) 的副本，包括在数据库或衍生数据库和任何相关文件中；

c. 保存任何版权或数据库权利通知和与本许可证有关的通知；

d. 如果因为结构问题无法将所需的通知放到特定文件中，您必须将该通知添加到用户可能查找它的地方（例如相关目录中）。

4.3 使用输出（内容）的注意事项。创建和使用制作的作品不需要第 4.2 部分的注意事项。但是，如果您公开使用所制作的作品，则必须包括与所制作的作品相关联的通知，该通知经过合理计算，以使任何使用、查看、访问、与所制作的作品进行交互或以其他方式接触所制作的作品的知道内容是从数据库、衍生数据库或作为集合数据库的一部分的数据库中获得的，并且它在该许可证下可用。

a. 注意事项示例。以下文本将满足第 4.3 部分下的注意事项：

包含根据 ODC 属性许可证提供的 DATABASE NAME 信息。

DATABASE NAME 应替换为数据库名称和指向数据库位置的超链接。“ODC 归属许可证”应包含指向此许可证文本的 URI 的超链接。如果超链接是不可能的，您应该包括所需 URI 的纯文本与上面的注意事项。

4.4 对其他人的授权。您不能对数据库进行再授权。每当您以任何方式将数据库、全部或大部分内容或任何衍生数据库传递给其他人时，许可方将按照与本许可证相同的条款和条件向接受方提供该数据库的授权。您不负责强制第三方遵守本许可证，但您可以强制执行您对衍生数据库拥有的任何权利。您完全负责您或其他人在您的指示下对衍生数据库所做的任何修改。您不得对本许可证授予或确认的权限行使附加任何其他限制。

## 5.0 精神权利

5.1 精神权利。本部分涵盖精神权利，包括被确定为数据库作者的任何权利，或反对损害作者荣誉和名誉的待遇或任何其他贬损待遇的任何权利：

a. 对于允许放弃精神权利的司法管辖区，许可方根据第 10.4 部分规定的相关司法管辖区的法律，在最大可能的范围内放弃许可方在数据库中可能拥有的所有精神权利；

b. 如果在相关司法管辖区不可能放弃第 5.1a 部分规定的精神权利，许可方同意不对数据库主张任何精神权利，并根据第 10.4 部分规定的相关司法管辖区的法律，在最大可能的范围内放弃对精神权利的所有主张；和

c. 对于不允许根据第 5.1a 和 b 放弃或同意不主张精神权利的司法管辖区，作者可以保留其对数据库某些方面的精神权利。

请注意，一些司法管辖区不允许放弃精神权利，因此精神权利可能仍然存在于一些司法管辖区的数据库中。

## 6.0 公平交易、数据库例外和其他不受影响的权利

6.1 本许可证不影响您或任何其他人根据任何适用法律独立拥有的使用本数据库的任何权利，包括但不限于：

a. 数据库权利的例外情况，包括：为私人目的从非电子数据库中摘录内容，为教学或科研的说明目的摘录内容，以及为公共安全或行政或司法程序摘录或再利用。

b. 公平交易、合理使用或任何其他法律承认的对侵犯版权的限制或例外或其他适用法律。

6.2 本许可证不影响合法用户为任何目的摘录和重新使用本内容的非实质性部分（经定量或定性评估）的任何权利，包括创建衍生数据库（受对本内容的其他权利的约束，见第 2.4 部分）。然而，内容的非实质性部分的重复和系统提取或再利用可能相当于内容的实质性部分的提取或再利用。

## 7.0 保证和免责条款

7.1 本数据库由许可方“按原样”许可，无任何明示、默示或由法规、惯例、交易过程或贸易惯例引起的任何形式的保证。许可方明确否认任何和所有关于所有权、非侵权、准确性或完整性、是否存在错误、是否适合特定用途、适销性或其他方面的默示保证或条件。某些司法管辖区不允许排除默示保证，因此这些排除性规定并不一定适用于您。

## 8.0 责任限制

8.1 在法律不能排除或限制的任何责任的前提下，许可方对因本许可证项下的任何使用而对任何人造成的任何损失或损害（无论这些损失或损害是由您或其他任何人造成的，还是由许可方的任何过错造成的）不承担任何责任，并明确排除所有责任。这种责任的排除包括但不限于任何特殊的、附带的、结果性的、惩罚性的或惩戒性的损害，如收入损失、数据损失、预期利润损失和业务损失。即使许可方已被告知可能发生此类损害赔偿，这一排除也适用。

8.2 如果法律不能排除赔偿责任，则仅限于实际和直接的经济损失，但以证明许可方的疏忽所致为限。

## 9.0 终止您在本许可证下的权利

9.1 任何违反本许可证条款和条件的行为将立即自动终止本许可证，无需通知您。为避免疑义，根据本许可证从您处接收数据库、全部或大部分内容、衍生数据库或作为集合数据库一部分的数据库的人，如果他们的使用完全符合本许可证或根据本许可证第 4.8 部分授予的许可证，他们的许可证将不会被终止。若本许可条款因终止而失效时，第 1、2、7、8、9 与 10 条，不因本许可条款之终止而失效。

9.2 如果您没有违反本许可证的条款，许可方将不会终止您在本许可证项下的权利。

9.3 除非根据第 9.1 节终止，否则本许可证将在数据库中适用的权利期间授予您。

9.4 恢复权利。如果您停止任何违反本许可证条款和条件的行为，那么您在本许可证下的全部权利将被恢复：

a. 暂时，可永久终止，直至违约停止后第 60 天；

b. 永久，违约停止后第 60 天，除非许可方另有合理通知；或

c. 永久，如果许可方合理地通知您违反了本许可，这是您第一次从许可方收到违反本许可的通知，且您在收到通知后 30 天内纠正了违规行为。

9.5 尽管有上述规定，许可方保留以不同许可条款发布数据库或停止分发或提供数据库的权利。根据不同的许可条款释放数据库或停止分发数据库不会撤回本许可证（或根据本许可证条款已授予或要求授予的任何其他许可证），除非按照上述规定终止，否则本许可证将继续完全有效。

## 10.0 一般规定

10.1 如果本许可证的任何条款被认定为无效或不可执行，则不得影响本许可证其余条款和条件的有效性或可执行性，本许可证的每个其余条款应在法律允许的最大范围内有效和执行。

10.2 本许可证是双方就在此授予的对数据库的权利达成的全部协议。它取代了与数据库有关的任何早期谅解、协议或陈述。

10.3 如果您违反了本许可证的条款，您将无权依赖本许可证的条款或投诉许可方的任何违约行为。

10.4 法律选择。本许可证在寻求执行许可证条款的相关司法管辖区的法律下生效并受其管辖。如果在相关司法管辖区根据适用版权法授予的标准权利套件和数据库权利包括本许可证未授予的其他权利，则本许可证授予这些额外权利，以满足本许可证的条款。

# Unlicense

这是发布到公共领域的可自由支配的软件。任何人都可以以源代码形式或作为编译的二进制文件，以任何目的，商业或非商业性的方式，以任何方式，复制、修改、发布、使用、编译、销售或分发本软件。

在承认版权法的司法管辖区，本软件的作者将软件的任何版权限益全部归属于公有。我们做出此贡献是为了公众的利益，而非造福我们的继承人或继任者。我们做出此贡献的目的是永久放弃本人根据版权法律对此软件享有的所有现在和将来的权限。

软件按“原样”提供，不附带任何明示或默示的保证，包括但不限于对适销性、针对某特定用途的适用性以及非侵权的保证。在任何情况下，如果因软件或软件的使用或其他处理造成任何索赔、损害或其他责任，无论合同、侵权或其他责任，作者概不负责。

有关更多信息，请参阅 <http://unlicense.org/>

# zlib 许可证

Copyright (c) <年份> <版权所有人>

本软件按“原样”提供，不附带任何明示或暗示的保证。在任何情况下，如因使用本软件而受到任何损害，作者概不负责。

本许可证允许任何人将本软件用于任何目的，包括商业应用，允许按照以下限制对软件进行自由修改和再分发：

1.不得对本软件的原版进行错误陈述；您不得声称您编写了原版软件。如果您将本软件用于某款产品，最好能在产品文件中附带一份确认，但并非必须。

2.修改后的源代码版本必须明确标注为修改版，并且不得错误陈述为原版软件。

3.分发源代码时不得删除或修改此声明。