Internet Engineering Task Force (IETF)                           M. Luby
Request for Comments: 6330                         Qualcomm Incorporated
Category: Standards Track                                 A. Shokrollahi
ISSN: 2070-1721                                                     EPFL
                                                               M. Watson
                                                            Netflix Inc.
                                                          T. Stockhammer
                                                          Nomor Research
                                                               L. Minder
                                                   Qualcomm Incorporated
                                                             August 2011
        
Internet Engineering Task Force (IETF)                           M. Luby
Request for Comments: 6330                         Qualcomm Incorporated
Category: Standards Track                                 A. Shokrollahi
ISSN: 2070-1721                                                     EPFL
                                                               M. Watson
                                                            Netflix Inc.
                                                          T. Stockhammer
                                                          Nomor Research
                                                               L. Minder
                                                   Qualcomm Incorporated
                                                             August 2011
        

RaptorQ Forward Error Correction Scheme for Object Delivery

面向对象传输的RaptorQ前向纠错方案

Abstract

摘要

This document describes a Fully-Specified Forward Error Correction (FEC) scheme, corresponding to FEC Encoding ID 6, for the RaptorQ FEC code and its application to reliable delivery of data objects.

本文档描述了一种完全指定的前向纠错(FEC)方案,对应于FEC编码ID 6,用于RaptorQ FEC代码及其在数据对象可靠传递中的应用。

RaptorQ codes are a new family of codes that provide superior flexibility, support for larger source block sizes, and better coding efficiency than Raptor codes in RFC 5053. RaptorQ is also a fountain code, i.e., as many encoding symbols as needed can be generated on the fly by the encoder from the source symbols of a source block of data. The decoder is able to recover the source block from almost any set of encoding symbols of sufficient cardinality -- in most cases, a set of cardinality equal to the number of source symbols is sufficient; in rare cases, a set of cardinality slightly more than the number of source symbols is required.

RaptorQ码是一个新的码族,它比RFC 5053中的Raptor码具有更高的灵活性,支持更大的源块大小,并具有更好的编码效率。RaptorQ也是一种喷泉码,即编码器可以根据需要从数据源块的源符号动态生成任意多的编码符号。解码器能够从几乎任何一组具有足够基数的编码符号中恢复源块——在大多数情况下,一组等于源符号数量的基数就足够了;在极少数情况下,需要一组略多于源符号数的基数。

The RaptorQ code described here is a systematic code, meaning that all the source symbols are among the encoding symbols that can be generated.

这里描述的RaptorQ代码是一个系统代码,这意味着所有源符号都在可以生成的编码符号中。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6330.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6330.

Copyright Notice

版权公告

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2011 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  4
   3.  Formats and Codes  . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  FEC Payload IDs  . . . . . . . . . . . . . . . . . . . . .  5
     3.3.  FEC Object Transmission Information  . . . . . . . . . . .  5
       3.3.1.  Mandatory  . . . . . . . . . . . . . . . . . . . . . .  5
       3.3.2.  Common . . . . . . . . . . . . . . . . . . . . . . . .  5
       3.3.3.  Scheme-Specific  . . . . . . . . . . . . . . . . . . .  6
   4.  Procedures . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .  7
     4.2.  Content Delivery Protocol Requirements . . . . . . . . . .  7
     4.3.  Example Parameter Derivation Algorithm . . . . . . . . . .  7
     4.4.  Object Delivery  . . . . . . . . . . . . . . . . . . . . .  9
       4.4.1.  Source Block Construction  . . . . . . . . . . . . . .  9
       4.4.2.  Encoding Packet Construction . . . . . . . . . . . . . 11
       4.4.3.  Example Receiver Recovery Strategies . . . . . . . . . 12
   5.  RaptorQ FEC Code Specification . . . . . . . . . . . . . . . . 12
     5.1.  Background . . . . . . . . . . . . . . . . . . . . . . . . 12
       5.1.1.  Definitions  . . . . . . . . . . . . . . . . . . . . . 13
       5.1.2.  Symbols  . . . . . . . . . . . . . . . . . . . . . . . 14
     5.2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . 17
     5.3.  Systematic RaptorQ Encoder . . . . . . . . . . . . . . . . 18
       5.3.1.  Introduction . . . . . . . . . . . . . . . . . . . . . 18
       5.3.2.  Encoding Overview  . . . . . . . . . . . . . . . . . . 19
       5.3.3.  First Encoding Step: Intermediate Symbol Generation  . 21
       5.3.4.  Second Encoding Step: Encoding . . . . . . . . . . . . 27
       5.3.5.  Generators . . . . . . . . . . . . . . . . . . . . . . 27
     5.4.  Example FEC Decoder  . . . . . . . . . . . . . . . . . . . 30
       5.4.1.  General  . . . . . . . . . . . . . . . . . . . . . . . 30
       5.4.2.  Decoding an Extended Source Block  . . . . . . . . . . 31
     5.5.  Random Numbers . . . . . . . . . . . . . . . . . . . . . . 36
       5.5.1.  The Table V0 . . . . . . . . . . . . . . . . . . . . . 36
       5.5.2.  The Table V1 . . . . . . . . . . . . . . . . . . . . . 37
       5.5.3.  The Table V2 . . . . . . . . . . . . . . . . . . . . . 38
       5.5.4.  The Table V3 . . . . . . . . . . . . . . . . . . . . . 40
     5.6.  Systematic Indices and Other Parameters  . . . . . . . . . 41
     5.7.  Operating with Octets, Symbols, and Matrices . . . . . . . 62
       5.7.1.  General  . . . . . . . . . . . . . . . . . . . . . . . 62
       5.7.2.  Arithmetic Operations on Octets  . . . . . . . . . . . 62
       5.7.3.  The Table OCT_EXP  . . . . . . . . . . . . . . . . . . 63
       5.7.4.  The Table OCT_LOG  . . . . . . . . . . . . . . . . . . 64
       5.7.5.  Operations on Symbols  . . . . . . . . . . . . . . . . 65
       5.7.6.  Operations on Matrices . . . . . . . . . . . . . . . . 65
     5.8.  Requirements for a Compliant Decoder . . . . . . . . . . . 65
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 66
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  4
   3.  Formats and Codes  . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  FEC Payload IDs  . . . . . . . . . . . . . . . . . . . . .  5
     3.3.  FEC Object Transmission Information  . . . . . . . . . . .  5
       3.3.1.  Mandatory  . . . . . . . . . . . . . . . . . . . . . .  5
       3.3.2.  Common . . . . . . . . . . . . . . . . . . . . . . . .  5
       3.3.3.  Scheme-Specific  . . . . . . . . . . . . . . . . . . .  6
   4.  Procedures . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .  7
     4.2.  Content Delivery Protocol Requirements . . . . . . . . . .  7
     4.3.  Example Parameter Derivation Algorithm . . . . . . . . . .  7
     4.4.  Object Delivery  . . . . . . . . . . . . . . . . . . . . .  9
       4.4.1.  Source Block Construction  . . . . . . . . . . . . . .  9
       4.4.2.  Encoding Packet Construction . . . . . . . . . . . . . 11
       4.4.3.  Example Receiver Recovery Strategies . . . . . . . . . 12
   5.  RaptorQ FEC Code Specification . . . . . . . . . . . . . . . . 12
     5.1.  Background . . . . . . . . . . . . . . . . . . . . . . . . 12
       5.1.1.  Definitions  . . . . . . . . . . . . . . . . . . . . . 13
       5.1.2.  Symbols  . . . . . . . . . . . . . . . . . . . . . . . 14
     5.2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . 17
     5.3.  Systematic RaptorQ Encoder . . . . . . . . . . . . . . . . 18
       5.3.1.  Introduction . . . . . . . . . . . . . . . . . . . . . 18
       5.3.2.  Encoding Overview  . . . . . . . . . . . . . . . . . . 19
       5.3.3.  First Encoding Step: Intermediate Symbol Generation  . 21
       5.3.4.  Second Encoding Step: Encoding . . . . . . . . . . . . 27
       5.3.5.  Generators . . . . . . . . . . . . . . . . . . . . . . 27
     5.4.  Example FEC Decoder  . . . . . . . . . . . . . . . . . . . 30
       5.4.1.  General  . . . . . . . . . . . . . . . . . . . . . . . 30
       5.4.2.  Decoding an Extended Source Block  . . . . . . . . . . 31
     5.5.  Random Numbers . . . . . . . . . . . . . . . . . . . . . . 36
       5.5.1.  The Table V0 . . . . . . . . . . . . . . . . . . . . . 36
       5.5.2.  The Table V1 . . . . . . . . . . . . . . . . . . . . . 37
       5.5.3.  The Table V2 . . . . . . . . . . . . . . . . . . . . . 38
       5.5.4.  The Table V3 . . . . . . . . . . . . . . . . . . . . . 40
     5.6.  Systematic Indices and Other Parameters  . . . . . . . . . 41
     5.7.  Operating with Octets, Symbols, and Matrices . . . . . . . 62
       5.7.1.  General  . . . . . . . . . . . . . . . . . . . . . . . 62
       5.7.2.  Arithmetic Operations on Octets  . . . . . . . . . . . 62
       5.7.3.  The Table OCT_EXP  . . . . . . . . . . . . . . . . . . 63
       5.7.4.  The Table OCT_LOG  . . . . . . . . . . . . . . . . . . 64
       5.7.5.  Operations on Symbols  . . . . . . . . . . . . . . . . 65
       5.7.6.  Operations on Matrices . . . . . . . . . . . . . . . . 65
     5.8.  Requirements for a Compliant Decoder . . . . . . . . . . . 65
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 66
        
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 67
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 67
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 67
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 67
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 68
        
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 67
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 67
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 67
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 67
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 68
        
1. Introduction
1. 介绍

This document specifies an FEC scheme for the RaptorQ forward error correction code for object delivery applications. The concept of an FEC scheme is defined in RFC 5052 [RFC5052], and this document follows the format prescribed there and uses the terminology of that document. The RaptorQ code described herein is a next generation of the Raptor code described in RFC 5053 [RFC5053]. The RaptorQ code provides superior reliability, better coding efficiency, and support for larger source block sizes than the Raptor code of RFC 5053 [RFC5053]. These improvements simplify the usage of the RaptorQ code in an object delivery Content Delivery Protocol compared to RFC 5053 RFC 5053 [RFC5053]. A detailed mathematical design and analysis of the RaptorQ code together with extensive simulation results are provided in [RaptorCodes].

本文档为对象交付应用程序的RaptorQ前向纠错码指定FEC方案。FEC方案的概念在RFC 5052[RFC5052]中定义,本文件遵循其中规定的格式,并使用该文件的术语。本文描述的RaptorQ代码是RFC 5053[RFC5053]中描述的Raptor代码的下一代。RaptorQ代码提供了比RFC 5053[RFC5053]的Raptor代码更高的可靠性、更好的编码效率,并支持更大的源块大小。与RFC 5053 RFC 5053[RFC5053]相比,这些改进简化了对象交付内容交付协议中RaptorQ代码的使用。[RaptorCodes]中提供了RaptorQ代码的详细数学设计和分析以及广泛的模拟结果。

The RaptorQ FEC scheme is a Fully-Specified FEC scheme corresponding to FEC Encoding ID 6.

RaptorQ FEC方案是与FEC编码ID 6相对应的完全指定的FEC方案。

RaptorQ is a fountain code, i.e., as many encoding symbols as needed can be generated on the fly by the encoder from the source symbols of a block. The decoder is able to recover the source block from almost any set of encoding symbols of cardinality only slightly larger than the number of source symbols.

RaptorQ是一种源代码,即编码器可以根据需要从块的源符号动态生成任意多个编码符号。解码器能够从几乎任何一组基数仅略大于源符号数量的编码符号中恢复源块。

The code described in this document is a systematic code; that is, the original unmodified source symbols, as well as a number of repair symbols, can be sent from sender to receiver. For more background on the use of Forward Error Correction codes in reliable multicast, see [RFC3453].

本文件所述代码为系统代码;也就是说,原始的未修改源符号以及许多修复符号可以从发送方发送到接收方。有关在可靠多播中使用前向纠错码的更多背景信息,请参阅[RFC3453]。

2. Requirements Notation
2. 需求符号

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

3. Formats and Codes
3. 格式和代码
3.1. Introduction
3.1. 介绍

The octet order of all fields is network byte order, i.e., big-endian.

所有字段的八位字节顺序为网络字节顺序,即big-endian。

3.2. FEC Payload IDs
3.2. 有效载荷ID

The FEC Payload ID MUST be a 4-octet field defined as follows:

FEC有效负载ID必须是定义如下的4个八位字节字段:

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     SBN       |               Encoding Symbol ID              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     SBN       |               Encoding Symbol ID              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 1: FEC Payload ID Format

图1:FEC有效负载ID格式

o Source Block Number (SBN): 8-bit unsigned integer. A non-negative integer identifier for the source block that the encoding symbols within the packet relate to.

o 源块编号(SBN):8位无符号整数。数据包中的编码符号所涉及的源块的非负整数标识符。

o Encoding Symbol ID (ESI): 24-bit unsigned integer. A non-negative integer identifier for the encoding symbols within the packet.

o 编码符号ID(ESI):24位无符号整数。数据包内编码符号的非负整数标识符。

The interpretation of the Source Block Number and Encoding Symbol Identifier is defined in Section 4.

第4节定义了源块号和编码符号标识符的解释。

3.3. FEC Object Transmission Information
3.3. 对象传输信息
3.3.1. Mandatory
3.3.1. 强制性的

The value of the FEC Encoding ID MUST be 6, as assigned by IANA (see Section 7).

根据IANA的分配,FEC编码ID的值必须为6(见第7节)。

3.3.2. Common
3.3.2. 常见的

The Common FEC Object Transmission Information elements used by this FEC scheme are:

该FEC方案使用的公共FEC对象传输信息元素为:

o Transfer Length (F): 40-bit unsigned integer. A non-negative integer that is at most 946270874880. This is the transfer length of the object in units of octets.

o 传输长度(F):40位无符号整数。最大值为946270874880的非负整数。这是对象的传输长度,以八位字节为单位。

o Symbol Size (T): 16-bit unsigned integer. A positive integer that is less than 2^^16. This is the size of a symbol in units of octets.

o 符号大小(T):16位无符号整数。小于2^^16的正整数。这是以八位字节为单位的符号大小。

The encoded Common FEC Object Transmission Information (OTI) format is shown in Figure 2.

编码的公共FEC对象传输信息(OTI)格式如图2所示。

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Transfer Length (F)                      |
      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               |    Reserved   |           Symbol Size (T)     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Transfer Length (F)                      |
      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               |    Reserved   |           Symbol Size (T)     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 2: Encoded Common FEC OTI for RaptorQ FEC Scheme

图2:RaptorQ FEC方案的编码公共FEC OTI

NOTE: The limit of 946270874880 on the transfer length is a consequence of the limitation on the symbol size to 2^^16-1, the limitation on the number of symbols in a source block to 56403, and the limitation on the number of source blocks to 2^^8.

注:传输长度限制946270874880是由于符号大小限制为2^^16-1,源块中的符号数限制为56403,源块数限制为2^^8。

3.3.3. Scheme-Specific
3.3.3. 特定计划

The following parameters are carried in the Scheme-Specific FEC Object Transmission Information element for this FEC scheme:

在该FEC方案的方案特定FEC对象传输信息元素中携带以下参数:

o The number of source blocks (Z): 8-bit unsigned integer.

o 源块数(Z):8位无符号整数。

o The number of sub-blocks (N): 16-bit unsigned integer.

o 子块数(N):16位无符号整数。

o A symbol alignment parameter (Al): 8-bit unsigned integer.

o 符号对齐参数(Al):8位无符号整数。

These parameters are all positive integers. The encoded Scheme-specific Object Transmission Information is a 4-octet field consisting of the parameters Z, N, and Al as shown in Figure 3.

这些参数都是正整数。编码方案特定对象传输信息是由参数Z、N和Al组成的4-octet字段,如图3所示。

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |       Z       |              N                |       Al      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |       Z       |              N                |       Al      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 3: Encoded Scheme-Specific FEC Object Transmission Information

图3:编码方案特定FEC对象传输信息

The encoded FEC Object Transmission Information is a 12-octet field consisting of the concatenation of the encoded Common FEC Object Transmission Information and the encoded Scheme-specific FEC Object Transmission Information.

编码的FEC对象传输信息是由编码的公共FEC对象传输信息和编码的方案特定FEC对象传输信息的级联组成的12个八位组字段。

These three parameters define the source block partitioning as described in Section 4.4.1.2.

这三个参数定义了第4.4.1.2节所述的源块分区。

4. Procedures
4. 程序
4.1. Introduction
4.1. 介绍

For any undefined symbols or functions used in this section, in particular the functions "ceil" and "floor", refer to Section 5.1.

对于本节中使用的任何未定义符号或功能,尤其是功能“ceil”和“floor”,请参阅第5.1节。

4.2. Content Delivery Protocol Requirements
4.2. 内容交付协议要求

This section describes the information exchange between the RaptorQ FEC scheme and any Content Delivery Protocol (CDP) that makes use of the RaptorQ FEC scheme for object delivery.

本节描述RaptorQ FEC方案与任何使用RaptorQ FEC方案进行对象交付的内容交付协议(CDP)之间的信息交换。

The RaptorQ encoder scheme and RaptorQ decoder scheme for object delivery require the following information from the CDP:

用于对象交付的RaptorQ编码器方案和RaptorQ解码器方案需要来自CDP的以下信息:

o F: the transfer length of the object, in octets

o F:对象的传输长度,以八位字节为单位

o Al: the symbol alignment parameter

o Al:符号对齐参数

o T: the symbol size in octets, which MUST be a multiple of Al

o T:以八位字节为单位的符号大小,必须是Al的倍数

o Z: the number of source blocks

o Z:源块的数量

o N: the number of sub-blocks in each source block

o N:每个源块中的子块数

The RaptorQ encoder scheme for object delivery additionally requires:

用于对象交付的RaptorQ编码器方案还需要:

- the object to be encoded, which is F octets long

- 要编码的对象,长度为F个八位字节

The RaptorQ encoder scheme supplies the CDP with the following information for each packet to be sent:

RaptorQ编码器方案为CDP提供每个待发送数据包的以下信息:

o Source Block Number (SBN)

o 源块编号(SBN)

o Encoding Symbol ID (ESI)

o 编码符号ID(ESI)

o Encoding symbol(s)

o 编码符号

The CDP MUST communicate this information to the receiver.

CDP必须将此信息传达给接收器。

4.3. Example Parameter Derivation Algorithm
4.3. 示例参数推导算法

This section provides recommendations for the derivation of the three transport parameters, T, Z, and N. This recommendation is based on the following input parameters:

本节提供了推导三个传输参数T、Z和N的建议。该建议基于以下输入参数:

o F: the transfer length of the object, in octets

o F:对象的传输长度,以八位字节为单位

o WS: the maximum size block that is decodable in working memory, in octets

o WS:工作内存中可解码的最大大小块,以八位字节为单位

o P': the maximum payload size in octets, which is assumed to be a multiple of Al

o P”:以八位字节为单位的最大有效负载大小,假定为Al的倍数

o Al: the symbol alignment parameter, in octets

o Al:符号对齐参数,以八位字节为单位

o SS: a parameter where the desired lower bound on the sub-symbol size is SS*Al

o SS:子符号大小的期望下限为SS*Al的参数

o K'_max: the maximum number of source symbols per source block.

o K''u max:每个源块的最大源符号数。

Note: Section 5.1.2 defines K'_max to be 56403.

注:第5.1.2节将K''u最大值定义为56403。

Based on the above inputs, the transport parameters T, Z, and N are calculated as follows:

基于上述输入,传输参数T、Z和N的计算如下:

Let

允许

o T = P'

o T=P'

o Kt = ceil(F/T)

o Kt=ceil(F/T)

o N_max = floor(T/(SS*Al))

o N_max=地板(T/(SS*Al))

o for all n=1, ..., N_max

o 对于所有n=1,…,n_max

* KL(n) is the maximum K' value in Table 2 in Section 5.6 such that

* KL(n)是第5.6节表2中的最大K'值,以便

            K' <= WS/(Al*(ceil(T/(Al*n))))
        
            K' <= WS/(Al*(ceil(T/(Al*n))))
        

o Z = ceil(Kt/KL(N_max))

o Z=ceil(Kt/KL(N_最大值))

o N is the minimum n=1, ..., N_max such that ceil(Kt/Z) <= KL(n)

o N是最小N=1,…,N_max,使ceil(Kt/Z)<=KL(N)

It is RECOMMENDED that each packet contains exactly one symbol. However, receivers SHALL support the reception of packets that contain multiple symbols.

建议每个数据包只包含一个符号。但是,接收器应支持接收包含多个符号的数据包。

The value Kt is the total number of symbols required to represent the source data of the object.

值Kt是表示对象源数据所需的符号总数。

The algorithm above and that defined in Section 4.4.1.2 ensure that the sub-symbol sizes are a multiple of the symbol alignment parameter, Al. This is useful because the sum operations used for encoding and decoding are generally performed several octets at a

上述算法和第4.4.1.2节中定义的算法确保子符号大小是符号对齐参数Al的倍数。这是有用的,因为用于编码和解码的求和操作通常在一次执行几个八位字节

time, for example, at least 4 octets at a time on a 32-bit processor. Thus, the encoding and decoding can be performed faster if the sub-symbol sizes are a multiple of this number of octets.

时间,例如,在32位处理器上一次至少4个八位字节。因此,如果子符号大小是这个八位字节数的倍数,则可以更快地执行编码和解码。

The recommended setting for the input parameter Al is 4.

输入参数Al的建议设置为4。

The parameter WS can be used to generate encoded data that can be decoded efficiently with limited working memory at the decoder. Note that the actual maximum decoder memory requirement for a given value of WS depends on the implementation, but it is possible to implement decoding using working memory only slightly larger than WS.

参数WS可用于生成编码数据,该编码数据可在解码器处使用有限的工作内存进行有效解码。请注意,给定值WS的实际最大解码器内存需求取决于实现,但可以仅使用略大于WS的工作内存来实现解码。

4.4. Object Delivery
4.4. 对象传递
4.4.1. Source Block Construction
4.4.1. 源块构造
4.4.1.1. General
4.4.1.1. 全体的

In order to apply the RaptorQ encoder to a source object, the object may be broken into Z >= 1 blocks, known as source blocks. The RaptorQ encoder is applied independently to each source block. Each source block is identified by a unique Source Block Number (SBN), where the first source block has SBN zero, the second has SBN one, etc. Each source block is divided into a number, K, of source symbols of size T octets each. Each source symbol is identified by a unique Encoding Symbol Identifier (ESI), where the first source symbol of a source block has ESI zero, the second has ESI one, etc.

为了将RaptorQ编码器应用于源对象,可以将该对象分解为Z>=1个块,称为源块。RaptorQ编码器独立应用于每个源块。每个源块由唯一的源块编号(SBN)标识,其中第一个源块的SBN为零,第二个源块的SBN为一,等等。每个源块被划分为若干个K,每个K的源符号大小为T个八位字节。每个源符号由唯一编码符号标识符(ESI)标识,其中源块的第一个源符号具有ESI 0,第二个源符号具有ESI 1,等等。

Each source block with K source symbols is divided into N >= 1 sub-blocks, which are small enough to be decoded in the working memory. Each sub-block is divided into K sub-symbols of size T'.

具有K个源符号的每个源块被划分为N>=1个子块,这些子块足够小,可以在工作存储器中解码。每个子块被划分为大小为T'的K个子符号。

Note that the value of K is not necessarily the same for each source block of an object, and the value of T' may not necessarily be the same for each sub-block of a source block. However, the symbol size T is the same for all source blocks of an object, and the number of symbols K is the same for every sub-block of a source block. Exact partitioning of the object into source blocks and sub-blocks is described in Section 4.4.1.2 below.

注意,对于对象的每个源块,K的值不一定相同,并且对于源块的每个子块,T’的值不一定相同。然而,对于对象的所有源块,符号大小T是相同的,并且对于源块的每个子块,符号的数目K是相同的。下文第4.4.1.2节描述了将对象精确划分为源块和子块的过程。

4.4.1.2. Source Block and Sub-Block Partitioning
4.4.1.2. 源块和子块分区

The construction of source blocks and sub-blocks is determined based on five input parameters -- F, Al, T, Z, and N -- and a function Partition[]. The five input parameters are defined as follows:

源块和子块的构造是基于五个输入参数——F、Al、T、Z和N——以及函数分区[]确定的。五个输入参数定义如下:

o F: the transfer length of the object, in octets

o F:对象的传输长度,以八位字节为单位

o Al: a symbol alignment parameter, in octets

o Al:符号对齐参数,以八位字节为单位

o T: the symbol size, in octets, which MUST be a multiple of Al

o T:符号大小,以八位字节为单位,必须是Al的倍数

o Z: the number of source blocks

o Z:源块的数量

o N: the number of sub-blocks in each source block

o N:每个源块中的子块数

These parameters MUST be set so that ceil(ceil(F/T)/Z) <= K'_max. Recommendations for derivation of these parameters are provided in Section 4.3.

必须设置这些参数,以便ceil(ceil(F/T)/Z)<=K''u max。第4.3节提供了推导这些参数的建议。

The function Partition[I,J] derives parameters for partitioning a block of size I into J approximately equal-sized blocks. More specifically, it partitions I into JL blocks of length IL and JS blocks of length IS. The output of Partition[I, J] is the sequence (IL, IS, JL, JS), where IL = ceil(I/J), IS = floor(I/J), JL = I - IS * J, and JS = J - JL.

函数Partition[I,J]导出用于将大小为I的块划分为大小大致相等的J块的参数。更具体地说,它将I划分为长度为IL的JL块和长度为IS的JS块。分区[I,J]的输出是序列(IL,is,JL,JS),其中IL=ceil(I/J),is=floor(I/J),JL=I-is*J,JS=J-JL。

The source object MUST be partitioned into source blocks and sub-blocks as follows:

源对象必须按如下方式划分为源块和子块:

Let

允许

o Kt = ceil(F/T),

o Kt=ceil(F/T),

o (KL, KS, ZL, ZS) = Partition[Kt, Z],

o (KL,KS,ZL,ZS)=分区[Kt,Z],

o (TL, TS, NL, NS) = Partition[T/Al, N].

o (TL,TS,NL,NS)=分区[T/Al,N]。

Then, the object MUST be partitioned into Z = ZL + ZS contiguous source blocks, the first ZL source blocks each having KL*T octets, i.e., KL source symbols of T octets each, and the remaining ZS source blocks each having KS*T octets, i.e., KS source symbols of T octets each.

然后,必须将对象划分为Z=ZL+ZS连续源块,第一个ZL源块每个具有KL*T个八位字节,即每个具有T个八位字节的KL源符号,其余的ZS源块每个具有KS*T个八位字节,即每个具有T个八位字节的KS源符号。

If Kt*T > F, then, for encoding purposes, the last symbol of the last source block MUST be padded at the end with Kt*T-F zero octets.

如果Kt*T>F,则出于编码目的,最后一个源块的最后一个符号必须在末尾用Kt*T-F零八位字节填充。

Next, each source block with K source symbols MUST be divided into N = NL + NS contiguous sub-blocks, the first NL sub-blocks each consisting of K contiguous sub-symbols of size of TL*Al octets and the remaining NS sub-blocks each consisting of K contiguous sub-symbols of size of TS*Al octets. The symbol alignment parameter Al ensures that sub-symbols are always a multiple of Al octets.

接下来,具有K个源符号的每个源块必须划分为N=NL+NS个连续子块,第一个NL子块每个由K个大小为TL×Al八位字节的连续子符号组成,其余NS子块每个由大小为TS×Al八位字节的K个连续子符号组成。符号对齐参数Al确保子符号始终是Al八位字节的倍数。

Finally, the mth symbol of a source block consists of the concatenation of the mth sub-symbol from each of the N sub-blocks. Note that this implies that when N > 1, a symbol is NOT a contiguous portion of the object.

最后,源块的第m个符号包括来自N个子块中的每一个子块的第m个子符号的串联。注意,这意味着当N>1时,符号不是对象的连续部分。

4.4.2. Encoding Packet Construction
4.4.2. 编码包构造

Each encoding packet contains the following information:

每个编码包包含以下信息:

o Source Block Number (SBN)

o 源块编号(SBN)

o Encoding Symbol ID (ESI)

o 编码符号ID(ESI)

o encoding symbol(s)

o 编码符号

Each source block is encoded independently of the others. Each encoding packet contains encoding symbols generated from the one source block identified by the SBN carried in the encoding packet. Source blocks are numbered consecutively from zero.

每个源块独立于其他源块进行编码。每个编码分组包含从由编码分组中携带的SBN标识的一个源块生成的编码符号。源块从零开始连续编号。

Encoding Symbol ID values from 0 to K-1 identify the source symbols of a source block in sequential order, where K is the number of source symbols in the source block. Encoding Symbol IDs K onwards identify repair symbols generated from the source symbols using the RaptorQ encoder.

从0到K-1的编码符号ID值按顺序标识源块的源符号,其中K是源块中的源符号数。编码符号IDs K向前标识使用RaptorQ编码器从源符号生成的修复符号。

Each encoding packet either contains only source symbols (source packet) or contains only repair symbols (repair packet). A packet may contain any number of symbols from the same source block. In the case that the last source symbol in a source packet includes padding octets added for FEC encoding purposes, then these octets need not be included in the packet. Otherwise, each packet MUST contain only whole symbols.

每个编码包要么只包含源符号(源包),要么只包含修复符号(修复包)。数据包可以包含来自同一源块的任意数量的符号。在源分组中的最后一个源符号包括为FEC编码目的而添加的填充八位字节的情况下,则这些八位字节不需要包括在分组中。否则,每个数据包必须只包含整个符号。

The Encoding Symbol ID, X, carried in each source packet is the Encoding Symbol ID of the first source symbol carried in that packet. The subsequent source symbols in the packet have Encoding Symbol IDs X+1 to X+G-1 in sequential order, where G is the number of symbols in the packet.

每个源分组中携带的编码符号ID X是该分组中携带的第一个源符号的编码符号ID。分组中的后续源符号具有按顺序排列的编码符号id X+1到X+G-1,其中G是分组中的符号数。

Similarly, the Encoding Symbol ID, X, placed into a repair packet is the Encoding Symbol ID of the first repair symbol in the repair packet, and the subsequent repair symbols in the packet have Encoding Symbol IDs X+1 to X+G-1 in sequential order, where G is the number of symbols in the packet.

类似地,放置在修复分组中的编码符号ID X是修复分组中的第一修复符号的编码符号ID,并且分组中的后续修复符号按顺序具有编码符号ID X+1到X+G-1,其中G是分组中的符号的数目。

Note that it is not necessary for the receiver to know the total number of repair packets.

注意,接收机不必知道修复包的总数。

4.4.3. Example Receiver Recovery Strategies
4.4.3. 示例接收机恢复策略

A receiver can use the received encoding symbols for each source block of an object to recover the source symbols for that source block independently of all other source blocks.

接收机可以使用对象的每个源块的接收到的编码符号来独立于所有其他源块恢复该源块的源符号。

If there is one sub-block per source block, i.e., N = 1, then the portion of the data in the original object in its original order associated with a source block consists of the concatenation of the source symbols of a source block in consecutive ESI order.

如果每个源块有一个子块,即N=1,则原始对象中与源块相关联的原始顺序的数据部分由源块的源符号以连续的ESI顺序串联而成。

If there are multiple sub-blocks per source block, i.e., if N > 1, then the portion of the data in the original object in its original order associated with a source block consists of the concatenation of the sub-blocks associated with the source block, where sub-symbols within each sub-block are in consecutive ESI order. In this case, there are different receiver source block recovery strategies worth considering depending on the available amount of Random Access Memory (RAM) at the receiver, as outlined below.

如果每个源块有多个子块,即,如果N>1,则原始对象中与源块相关联的原始顺序的数据部分包括与源块相关联的子块的串联,其中每个子块中的子符号以连续的ESI顺序。在这种情况下,根据接收机处的随机存取存储器(RAM)的可用量,有不同的接收机源块恢复策略值得考虑,如下所述。

One strategy is to recover the source symbols of a source block using the decoding procedures applied to the received symbols for the source block to recover the source symbols as described in Section 5, and then to reorder the sub-symbols of the source symbols so that all consecutive sub-symbols of the first sub-block are first, followed by all consecutive sub-symbols of the second sub-block, etc., followed by all consecutive sub-symbols of the Nth sub-block. This strategy is especially applicable if the receiver has enough RAM to decode an entire source block.

一种策略是使用应用于源块的接收符号的解码过程来恢复源块的源符号,以恢复第5节中所述的源符号,然后对源符号的子符号重新排序,使得第一子块的所有连续子符号都是第一个,后跟第二子块的所有连续子符号等,后跟第n个子块的所有连续子符号。如果接收器有足够的RAM解码整个源块,则此策略尤其适用。

Another strategy is to separately recover the sub-blocks of a source block. For example, a receiver may demultiplex and store sub-symbols associated with each sub-block separately as packets containing encoding symbols arrive, and then use the stored sub-symbols received for a sub-block to recover that sub-block using the decoding procedures described in Section 5. This strategy is especially applicable if the receiver has enough RAM to decode only one sub-block at a time.

另一种策略是分别恢复源块的子块。例如,当包含编码符号的分组到达时,接收机可以将与每个子块相关联的子符号分别解复用和存储,然后使用为子块接收的存储的子符号,使用第5节中描述的解码过程来恢复该子块。如果接收机有足够的RAM一次仅解码一个子块,则该策略尤其适用。

5. RaptorQ FEC Code Specification
5. RaptorQ FEC代码规范
5.1. Background
5.1. 出身背景

For the purpose of the RaptorQ FEC code specification in this section, the following definitions, symbols, and abbreviations apply. A basic understanding of linear algebra, matrix operations, and finite fields is assumed in this section. In particular, matrix multiplication and matrix inversion operations over a mixture of the

就本节RaptorQ FEC代码规范而言,以下定义、符号和缩写适用。本节假设对线性代数、矩阵运算和有限域有基本了解。特别是,矩阵乘法和矩阵求逆运算是

finite fields GF[2] and GF[256] are used. A basic familiarity with sparse linear equations, and efficient implementations of algorithms that take advantage of sparse linear equations, is also quite beneficial to an implementer of this specification.

使用有限域GF[2]和GF[256]。对稀疏线性方程组的基本熟悉,以及对利用稀疏线性方程组的算法的有效实现,对本规范的实现者来说也是非常有益的。

5.1.1. Definitions
5.1.1. 定义

o Source block: a block of K source symbols that are considered together for RaptorQ encoding and decoding purposes.

o 源块:为RaptorQ编码和解码目的而一起考虑的K个源符号块。

o Extended Source Block: a block of K' source symbols, where K' >= K, constructed from a source block and zero or more padding symbols.

o 扩展源块:由K'个源符号组成的块,其中K'>=K,由源块和零个或多个填充符号构成。

o Symbol: a unit of data. The size, in octets, of a symbol is known as the symbol size. The symbol size is always a positive integer.

o 符号:一种数据单位。符号的大小(以八位字节为单位)称为符号大小。符号大小始终为正整数。

o Source symbol: the smallest unit of data used during the encoding process. All source symbols within a source block have the same size.

o 源符号:编码过程中使用的最小数据单位。源块中的所有源符号具有相同的大小。

o Padding symbol: a symbol with all zero bits that is added to the source block to form the extended source block.

o 填充符号:将所有零位添加到源块以形成扩展源块的符号。

o Encoding symbol: a symbol that can be sent as part of the encoding of a source block. The encoding symbols of a source block consist of the source symbols of the source block and the repair symbols generated from the source block. Repair symbols generated from a source block have the same size as the source symbols of that source block.

o 编码符号:可以作为源块编码的一部分发送的符号。源块的编码符号包括源块的源符号和从源块生成的修复符号。从源块生成的修复符号的大小与该源块的源符号的大小相同。

o Repair symbol: the encoding symbols of a source block that are not source symbols. The repair symbols are generated based on the source symbols of a source block.

o 修复符号:非源符号的源块编码符号。修复符号基于源块的源符号生成。

o Intermediate symbols: symbols generated from the source symbols using an inverse encoding process based on pre-coding relationships. The repair symbols are then generated directly from the intermediate symbols. The encoding symbols do not include the intermediate symbols, i.e., intermediate symbols are not sent as part of the encoding of a source block. The intermediate symbols are partitioned into LT symbols and PI symbols for the purposes of the encoding process.

o 中间符号:使用基于预编码关系的逆编码过程从源符号生成的符号。然后直接从中间符号生成修复符号。编码符号不包括中间符号,即,中间符号不作为源块编码的一部分发送。为了编码过程的目的,将中间符号划分为LT符号和PI符号。

o LT symbols: a process similar to that described in [LTCodes] is used to generate part of the contribution to each generated encoding symbol from the portion of the intermediate symbols designated as LT symbols.

o LT符号:类似于[LTCODE]中所述的过程用于从指定为LT符号的中间符号部分生成对每个生成的编码符号的部分贡献。

o PI symbols: a process even simpler than that described in [LTCodes] is used to generate the other part of the contribution to each generated encoding symbol from the portion of the intermediate symbols designated as PI symbols. In the decoding algorithm suggested in Section 5.4, the PI symbols are inactivated at the start, i.e., are placed into the matrix U at the beginning of the first phase of the decoding algorithm. Because the symbols corresponding to the columns of U are sometimes called the "inactivated" symbols, and since the PI symbols are inactivated at the beginning, they are considered "permanently inactivated".

o PI符号:使用比[LTCODE]中描述的过程更简单的过程,从指定为PI符号的中间符号部分生成对每个生成编码符号的贡献的另一部分。在第5.4节建议的解码算法中,PI符号在解码算法的第一阶段开始时被禁用,即,在解码算法的第一阶段开始时被放入矩阵U中。由于与U列相对应的符号有时称为“非激活”符号,并且由于PI符号在开始时是非激活的,因此它们被视为“永久非激活”。

o HDPC symbols: there is a small subset of the intermediate symbols that are HDPC symbols. Each HDPC symbol has a pre-coding relationship with a large fraction of the other intermediate symbols. HDPC means "High Density Parity Check".

o HDPC符号:中间符号中有一小部分是HDPC符号。每个HDPC符号与大部分其他中间符号具有预编码关系。HDPC表示“高密度奇偶校验”。

o LDPC symbols: there is a moderate-sized subset of the intermediate symbols that are LDPC symbols. Each LDPC symbol has a pre-coding relationship with a small fraction of the other intermediate symbols. LDPC means "Low Density Parity Check".

o LDPC符号:中间符号有一个中等大小的子集,即LDPC符号。每个LDPC符号与其他中间符号的一小部分具有预编码关系。LDPC意味着“低密度奇偶校验”。

o Systematic code: a code in which all source symbols are included as part of the encoding symbols of a source block. The RaptorQ code as described herein is a systematic code.

o 系统代码:一种代码,其中所有源符号都包含在源块的编码符号中。本文所述的RaptorQ代码是一个系统代码。

o Encoding Symbol ID (ESI): information that uniquely identifies each encoding symbol associated with a source block for sending and receiving purposes.

o 编码符号ID(ESI):唯一标识与源块关联的每个编码符号的信息,用于发送和接收目的。

o Internal Symbol ID (ISI): information that uniquely identifies each symbol associated with an extended source block for encoding and decoding purposes.

o 内部符号ID(ISI):唯一标识与扩展源块关联的每个符号的信息,用于编码和解码。

o Arithmetic operations on octets and symbols and matrices: the operations that are used to produce encoding symbols from source symbols and vice versa. See Section 5.7.

o 八位字节、符号和矩阵的算术运算:用于从源符号生成编码符号的运算,反之亦然。见第5.7节。

5.1.2. Symbols
5.1.2. 象征

i, j, u, v, h, d, a, b, d1, a1, b1, v, m, x, y represent values or variables of one type or another, depending on the context.

i、 j、u、v、h、d、a、b、d1、a1、b1、v、m、x、y表示一种或另一种类型的值或变量,具体取决于上下文。

X denotes a non-negative integer value that is either an ISI value or an ESI value, depending on the context.

X表示一个非负整数值,该数值是ISI值或ESI值,具体取决于上下文。

ceil(x) denotes the smallest integer that is greater than or equal to x, where x is a real value.

ceil(x)表示大于或等于x的最小整数,其中x是实值。

floor(x) denotes the largest integer that is less than or equal to x, where x is a real value.

floor(x)表示小于或等于x的最大整数,其中x是实值。

min(x,y) denotes the minimum value of the values x and y, and in general the minimum value of all the argument values.

min(x,y)表示值x和y的最小值,通常表示所有参数值的最小值。

max(x,y) denotes the maximum value of the values x and y, and in general the maximum value of all the argument values.

max(x,y)表示值x和y的最大值,通常表示所有参数值的最大值。

i % j denotes i modulo j.

i%j表示i模j。

i + j denotes the sum of i and j. If i and j are octets or symbols, this designates the arithmetic on octets or symbols, respectively, as defined in Section 5.7. If i and j are integers, then it denotes the usual integer addition.

i+j表示i和j之和。如果i和j是八位字节或符号,则分别表示第5.7节中定义的八位字节或符号的算术运算。如果i和j是整数,则表示通常的整数加法。

i * j denotes the product of i and j. If i and j are octets, this designates the arithmetic on octets, as defined in Section 5.7. If i is an octet and j is a symbol, this denotes the multiplication of a symbol by an octet, as also defined in Section 5.7. Finally, if i and j are integers, i * j denotes the usual product of integers.

i*j表示i和j的乘积。如果i和j是八位字节,则表示第5.7节中定义的八位字节算术。如果i是八位字节,j是符号,则表示符号与八位字节的乘法,如第5.7节所定义。最后,如果i和j是整数,i*j表示通常的整数乘积。

a ^^ b denotes the operation a raised to the power b. If a is an octet and b is a non-negative integer, this is understood to mean a*a*...*a (b terms), with '*' being the octet product as defined in Section 5.7.

a^^b表示将操作a提升到幂b。如果a为八位字节,b为非负整数,则表示a*a*..*a(b术语),其中“*”为第5.7节中定义的八位字节乘积。

u ^ v denotes, for equal-length bit strings u and v, the bitwise exclusive-or of u and v.

对于等长位串u和v,u^v表示u和v的按位异或。

Transpose[A] denotes the transposed matrix of matrix A. In this specification, all matrices have entries that are octets.

转置[A]表示矩阵A的转置矩阵。在本规范中,所有矩阵的条目均为八位字节。

A^^-1 denotes the inverse matrix of matrix A. In this specification, all the matrices have octets as entries, so it is understood that the operations of the matrix entries are to be done as stated in Section 5.7 and A^^-1 is the matrix inverse of A with respect to octet arithmetic.

A^^-1表示矩阵A的逆矩阵。在本规范中,所有矩阵都有八位字节作为条目,因此可以理解,矩阵条目的运算将按照第5.7节的规定进行,A^^-1是关于八位字节算术的矩阵A的逆矩阵。

K denotes the number of symbols in a single source block.

K表示单个源块中的符号数。

K' denotes the number of source plus padding symbols in an extended source block. For the majority of this specification, the padding symbols are considered to be additional source symbols.

K'表示扩展源块中源加填充符号的数量。对于本规范的大多数内容,填充符号被视为附加源符号。

K'_max denotes the maximum number of source symbols that can be in a single source block. Set to 56403.

K〃u max表示单个源块中可以包含的最大源符号数。设置为56403。

L denotes the number of intermediate symbols for a single extended source block.

L表示单个扩展源块的中间符号数。

S denotes the number of LDPC symbols for a single extended source block. These are LT symbols. For each value of K' shown in Table 2 in Section 5.6, the corresponding value of S is a prime number.

S表示单个扩展源块的LDPC符号数。这些是LT符号。对于第5.6节表2中所示的每个K'值,S的对应值为素数。

H denotes the number of HDPC symbols for a single extended source block. These are PI symbols.

H表示单个扩展源块的HDPC符号数。这些是圆周率符号。

B denotes the number of intermediate symbols that are LT symbols excluding the LDPC symbols.

B表示除LDPC符号之外的LT符号的中间符号的数目。

W denotes the number of intermediate symbols that are LT symbols. For each value of K' in Table 2 shown in Section 5.6, the corresponding value of W is a prime number.

W表示作为LT符号的中间符号的数量。对于第5.6节所示的表2中的每个K'值,W的对应值是一个素数。

P denotes the number of intermediate symbols that are PI symbols. These contain all HDPC symbols.

P表示作为PI符号的中间符号的数量。这些包含所有HDPC符号。

P1 denotes the smallest prime number greater than or equal to P.

P1表示大于或等于P的最小素数。

U denotes the number of non-HDPC intermediate symbols that are PI symbols.

U表示作为PI符号的非HDPC中间符号的数量。

C denotes an array of intermediate symbols, C[0], C[1], C[2], ..., C[L-1].

C表示中间符号的数组,C[0],C[1],C[2],…,C[L-1]。

C' denotes an array of the symbols of the extended source block, where C'[0], C'[1], C'[2], ..., C'[K-1] are the source symbols of the source block and C'[K], C'[K+1], ..., C'[K'-1] are padding symbols.

C'表示扩展源块的符号数组,其中C'[0]、C'[1]、C'[2]、…、C'[K-1]是源块的源符号,C'[K]、C'[K+1]、…、C'[K'-1]是填充符号。

V0, V1, V2, V3 denote four arrays of 32-bit unsigned integers, V0[0], V0[1], ..., V0[255]; V1[0], V1[1], ..., V1[255]; V2[0], V2[1], ..., V2[255]; and V3[0], V3[1], ..., V3[255] as shown in Section 5.5.

V0,V1,V2,V3表示四个32位无符号整数数组,V0[0],V0[1],…,V0[255];V1[0],V1[1],…,V1[255];V2[0],V2[1],…,V2[255];和V3[0]、V3[1]、…、V3[255],如第5.5节所示。

Rand[y, i, m] denotes a pseudo-random number generator.

Rand[y,i,m]表示伪随机数生成器。

Deg[v] denotes a degree generator.

度[v]表示度生成器。

Enc[K', C ,(d, a, b, d1, a1, b1)] denotes an encoding symbol generator.

Enc[K',C,(d,a,b,d1,a1,b1)]表示编码符号生成器。

Tuple[K', X] denotes a tuple generator function.

Tuple[K',X]表示一个Tuple生成器函数。

T denotes the symbol size in octets.

T表示符号大小(以八位字节为单位)。

J(K') denotes the systematic index associated with K'.

J(K')表示与K'相关的系统指数。

G denotes any generator matrix.

G表示任何生成器矩阵。

I_S denotes the S x S identity matrix.

I_S表示S x S单位矩阵。

5.2. Overview
5.2. 概述

This section defines the systematic RaptorQ FEC code.

本节定义了系统RaptorQ FEC代码。

Symbols are the fundamental data units of the encoding and decoding process. For each source block, all symbols are the same size, referred to as the symbol size T. The atomic operations performed on symbols for both encoding and decoding are the arithmetic operations defined in Section 5.7.

符号是编码和解码过程的基本数据单元。对于每个源块,所有符号都具有相同的大小,称为符号大小T。对符号执行的编码和解码的原子运算是第5.7节中定义的算术运算。

The basic encoder is described in Section 5.3. The encoder first derives a block of intermediate symbols from the source symbols of a source block. This intermediate block has the property that both source and repair symbols can be generated from it using the same process. The encoder produces repair symbols from the intermediate block using an efficient process, where each such repair symbol is the exclusive-or of a small number of intermediate symbols from the block. Source symbols can also be reproduced from the intermediate block using the same process. The encoding symbols are the combination of the source and repair symbols.

第5.3节描述了基本编码器。编码器首先从源块的源符号导出中间符号块。此中间块的特性是,可以使用相同的过程从其生成源符号和修复符号。编码器使用有效的过程从中间块产生修复符号,其中每个这样的修复符号是来自块的少量中间符号的异或。还可以使用相同的过程从中间块再现源符号。编码符号是源符号和修复符号的组合。

An example of a decoder is described in Section 5.4. The process for producing source and repair symbols from the intermediate block is designed so that the intermediate block can be recovered from any sufficiently large set of encoding symbols, independent of the mix of source and repair symbols in the set. Once the intermediate block is recovered, missing source symbols of the source block can be recovered using the encoding process.

第5.4节描述了解码器的示例。从中间块产生源和修复符号的过程被设计为使得可以从任何足够大的编码符号集合中恢复中间块,而与集合中的源和修复符号的混合无关。一旦恢复了中间块,就可以使用编码过程来恢复源块丢失的源符号。

Requirements for a RaptorQ-compliant decoder are provided in Section 5.8. A number of decoding algorithms are possible to achieve these requirements. An efficient decoding algorithm to achieve these requirements is provided in Section 5.4.

第5.8节提供了RaptorQ兼容解码器的要求。许多解码算法可以实现这些要求。第5.4节提供了实现这些要求的有效解码算法。

The construction of the intermediate and repair symbols is based in part on a pseudo-random number generator described in Section 5.3. This generator is based on a fixed set of 1024 random numbers that must be available to both sender and receiver. These numbers are

中间符号和维修符号的构造部分基于第5.3节所述的伪随机数生成器。此生成器基于一组固定的1024个随机数,发送方和接收方都必须使用这些随机数。这些数字是

provided in Section 5.5. Encoding and decoding operations for RaptorQ use operations on octets. Section 5.7 describes how to perform these operations.

第5.5节提供。RaptorQ的编码和解码操作使用八位组上的操作。第5.7节描述了如何执行这些操作。

Finally, the construction of the intermediate symbols from the source symbols is governed by "systematic indices", values of which are provided in Section 5.6 for specific extended source block sizes between 6 and K'_max = 56403 source symbols. Thus, the RaptorQ code supports source blocks with between 1 and 56403 source symbols.

最后,源符号中间符号的构造受“系统索引”的控制,第5.6节中提供了6到K〃u max=56403源符号之间特定扩展源块大小的系统索引值。因此,RaptorQ代码支持具有1到56403个源符号的源块。

5.3. Systematic RaptorQ Encoder
5.3. 系统RaptorQ编码器
5.3.1. Introduction
5.3.1. 介绍

For a given source block of K source symbols, for encoding and decoding purposes, the source block is augmented with K'-K additional padding symbols, where K' is the smallest value that is at least K in the systematic index Table 2 of Section 5.6. The reason for padding out a source block to a multiple of K' is to enable faster encoding and decoding and to minimize the amount of table information that needs to be stored in the encoder and decoder.

对于K个源符号的给定源块,出于编码和解码目的,源块增加了K'-K个额外填充符号,其中K'是第5.6节系统索引表2中至少为K的最小值。将源块填充为K’的倍数的原因是为了实现更快的编码和解码,并最小化需要存储在编码器和解码器中的表信息量。

   For purposes of transmitting and receiving data, the value of K is
   used to determine the number of source symbols in a source block, and
   thus K needs to be known at the sender and the receiver.  In this
   case, the sender and receiver can compute K' from K and the K'-K
   padding symbols can be automatically added to the source block
   without any additional communication.  The encoding symbol ID (ESI)
   is used by a sender and receiver to identify the encoding symbols of
   a source block, where the encoding symbols of a source block consist
   of the source symbols and the repair symbols associated with the
   source block.  For a source block with K source symbols, the ESIs for
   the source symbols are 0, 1, 2, ..., K-1, and the ESIs for the repair
   symbols are K, K+1, K+2, ....  Using the ESI for identifying encoding
   symbols in transport ensures that the ESI values continue
   consecutively between the source and repair symbols.
        
   For purposes of transmitting and receiving data, the value of K is
   used to determine the number of source symbols in a source block, and
   thus K needs to be known at the sender and the receiver.  In this
   case, the sender and receiver can compute K' from K and the K'-K
   padding symbols can be automatically added to the source block
   without any additional communication.  The encoding symbol ID (ESI)
   is used by a sender and receiver to identify the encoding symbols of
   a source block, where the encoding symbols of a source block consist
   of the source symbols and the repair symbols associated with the
   source block.  For a source block with K source symbols, the ESIs for
   the source symbols are 0, 1, 2, ..., K-1, and the ESIs for the repair
   symbols are K, K+1, K+2, ....  Using the ESI for identifying encoding
   symbols in transport ensures that the ESI values continue
   consecutively between the source and repair symbols.
        
   For purposes of encoding and decoding data, the value of K' derived
   from K is used as the number of source symbols of the extended source
   block upon which encoding and decoding operations are performed,
   where the K' source symbols consist of the original K source symbols
   and an additional K'-K padding symbols.  The Internal Symbol ID (ISI)
   is used by the encoder and decoder to identify the symbols associated
   with the extended source block, i.e., for generating encoding symbols
   and for decoding.  For a source block with K original source symbols,
   the ISIs for the original source symbols are 0, 1, 2, ..., K-1, the
   ISIs for the K'-K padding symbols are K, K+1, K+2, ..., K'-1, and the
   ISIs for the repair symbols are K', K'+1, K'+2, ....  Using the ISI
        
   For purposes of encoding and decoding data, the value of K' derived
   from K is used as the number of source symbols of the extended source
   block upon which encoding and decoding operations are performed,
   where the K' source symbols consist of the original K source symbols
   and an additional K'-K padding symbols.  The Internal Symbol ID (ISI)
   is used by the encoder and decoder to identify the symbols associated
   with the extended source block, i.e., for generating encoding symbols
   and for decoding.  For a source block with K original source symbols,
   the ISIs for the original source symbols are 0, 1, 2, ..., K-1, the
   ISIs for the K'-K padding symbols are K, K+1, K+2, ..., K'-1, and the
   ISIs for the repair symbols are K', K'+1, K'+2, ....  Using the ISI
        

for encoding and decoding allows the padding symbols of the extended source block to be treated the same way as other source symbols of the extended source block. Also, it ensures that a given prefix of repair symbols are generated in a consistent way for a given number K' of source symbols in the extended source block, independent of K.

对于编码和解码,允许以与扩展源块的其他源符号相同的方式处理扩展源块的填充符号。此外,它还确保以一致的方式为扩展源块中给定数量的K’源符号生成给定的修复符号前缀,与K无关。

The relationship between the ESIs and the ISIs is simple: the ESIs and the ISIs for the original K source symbols are the same, the K'-K padding symbols have an ISI but do not have a corresponding ESI (since they are symbols that are neither sent nor received), and a repair symbol ISI is simply the repair symbol ESI plus K'-K. The translation between ESIs (used to identify encoding symbols sent and received) and the corresponding ISIs (used for encoding and decoding), as well as determining the proper padding of the extended source block with padding symbols (used for encoding and decoding), is the internal responsibility of the RaptorQ encoder/decoder.

ESI和ISI之间的关系很简单:原始K源符号的ESI和ISI相同,K'-K填充符号具有ISI,但没有相应的ESI(因为它们是既不发送也不接收的符号),修复符号ISI简单地是修复符号ESI加上K'-K。ESI(用于识别发送和接收的编码符号)和相应ISI(用于编码和解码)之间的转换,以及使用填充符号(用于编码和解码)确定扩展源块的适当填充,是RaptorQ编码器/解码器的内部责任。

5.3.2. Encoding Overview
5.3.2. 编码概述

The systematic RaptorQ encoder is used to generate any number of repair symbols from a source block that consists of K source symbols placed into an extended source block C'. Figure 4 shows the encoding overview.

系统RaptorQ编码器用于从源块生成任意数量的修复符号,该源块由放入扩展源块C'中的K个源符号组成。图4显示了编码概述。

The first step of encoding is to construct an extended source block by adding zero or more padding symbols such that the total number of symbols, K', is one of the values listed in Section 5.6. Each padding symbol consists of T octets where the value of each octet is zero. K' MUST be selected as the smallest value of K' from the table of Section 5.6 that is greater than or equal to K.

编码的第一步是通过添加零个或多个填充符号来构造扩展源块,从而使符号总数K'为第5.6节中列出的值之一。每个填充符号由T个八位字节组成,其中每个八位字节的值为零。必须从第5.6节表格中选择K'作为大于或等于K的最小值。

         -----------------------------------------------------------+
         |                                                          |
         |    +-----------+    +--------------+    +-------------+  |
      C' |    |           | C' | Intermediate | C  |             |  |
     ----+--->|  Padding  |--->|    Symbol    |--->|   Encoding  |--+-->
      K  |    |           | K' |  Generation  | L  |             |  |
         |    +-----------+    +--------------+    +-------------+  |
         |           |                             (d,a,b, ^        |
         |           |                            d1,a1,b1)|        |
         |           |                              +------------+  |
         |           |              K'              |   Tuple    |  |
         |           +----------------------------->|            |  |
         |                                          | Generation |  |
         |                                          +------------+  |
         |                                                 ^        |
         +-------------------------------------------------+--------+
                                                           |
                                                         ISI X
        
         -----------------------------------------------------------+
         |                                                          |
         |    +-----------+    +--------------+    +-------------+  |
      C' |    |           | C' | Intermediate | C  |             |  |
     ----+--->|  Padding  |--->|    Symbol    |--->|   Encoding  |--+-->
      K  |    |           | K' |  Generation  | L  |             |  |
         |    +-----------+    +--------------+    +-------------+  |
         |           |                             (d,a,b, ^        |
         |           |                            d1,a1,b1)|        |
         |           |                              +------------+  |
         |           |              K'              |   Tuple    |  |
         |           +----------------------------->|            |  |
         |                                          | Generation |  |
         |                                          +------------+  |
         |                                                 ^        |
         +-------------------------------------------------+--------+
                                                           |
                                                         ISI X
        

Figure 4: Encoding Overview

图4:编码概述

Let C'[0], ..., C'[K-1] denote the K source symbols.

设C'[0],…,C'[K-1]表示K个源符号。

Let C'[K], ..., C'[K'-1] denote the K'-K padding symbols, which are all set to zero bits. Then, C'[0], ..., C'[K'-1] are the symbols of the extended source block upon which encoding and decoding are performed.

让C'[K],…,C'[K'-1]表示K'-K填充符号,它们都设置为零位。然后,C'[0]、…、C'[K'-1]是在其上执行编码和解码的扩展源块的符号。

In the remainder of this description, these padding symbols will be considered as additional source symbols and referred to as such. However, these padding symbols are not part of the encoding symbols, i.e., they are not sent as part of the encoding. At a receiver, the value of K' can be computed based on K, then the receiver can insert K'-K padding symbols at the end of a source block of K' source symbols and recover the remaining K source symbols of the source block from received encoding symbols.

在本说明的其余部分中,这些填充符号将被视为附加源符号并被称为附加源符号。然而,这些填充符号不是编码符号的一部分,即,它们不作为编码的一部分发送。在接收器处,可以基于K计算K'的值,然后接收器可以在K'源符号的源块的末端插入K'-K填充符号,并从接收到的编码符号恢复源块的剩余K个源符号。

The second step of encoding is to generate a number, L > K', of intermediate symbols from the K' source symbols. In this step, K' source tuples (d[0], a[0], b[0], d1[0], a1[0], b1[0]), ..., (d[K'-1], a[K'-1], b[K'-1], d1[K'-1], a1[K'-1], b1[K'-1]) are generated using the Tuple[] generator as described in Section 5.3.5.4. The K' source tuples and the ISIs associated with the K' source symbols are used to determine L intermediate symbols C[0], ..., C[L-1] from the source symbols using an inverse encoding process. This process can be realized by a RaptorQ decoding process.

编码的第二步是从K'源符号生成中间符号的数量L>K'。在这一步中,使用第5.3.5.4节所述的元组[]生成器生成K'源元组(d[0],a[0],b[0],d1[0],a1[0],a1[0],b1[0]),…,(d[K'-1],a[K'-1],b[K'-1],d1[K'-1],a1[K'-1],b1[K'-1])。K'源元组和与K'源符号相关联的isi用于使用逆编码过程从源符号确定L个中间符号C[0]、…、C[L-1]。该过程可以通过RaptorQ解码过程来实现。

Certain "pre-coding relationships" must hold within the L intermediate symbols. Section 5.3.3.3 describes these relationships. Section 5.3.3.4 describes how the intermediate symbols are generated from the source symbols.

某些“预编码关系”必须在L中间符号中保持。第5.3.3.3节描述了这些关系。第5.3.3.4节描述了如何从源符号生成中间符号。

Once the intermediate symbols have been generated, repair symbols can be produced. For a repair symbol with ISI X > K', the tuple of non-negative integers (d, a, b, d1, a1, b1) can be generated, using the Tuple[] generator as described in Section 5.3.5.4. Then, the (d, a, b, d1, a1, b1) tuple and the ISI X are used to generate the corresponding repair symbol from the intermediate symbols using the Enc[] generator described in Section 5.3.5.3. The corresponding ESI for this repair symbol is then X-(K'-K). Note that source symbols of the extended source block can also be generated using the same process, i.e., for any X < K', the symbol generated using this process has the same value as C'[X].

生成中间符号后,即可生成维修符号。对于ISI X>K'的修复符号,可使用第5.3.5.4节所述的元组[]生成器生成非负整数(d、a、b、d1、a1、b1)的元组。然后,使用第5.3.5.3节所述的Enc[]生成器,使用(d、a、b、d1、a1、b1)元组和ISI X从中间符号生成相应的修复符号。该维修符号对应的ESI为X-(K'-K)。注意,扩展源块的源符号也可以使用相同的过程生成,即,对于任何X<K',使用该过程生成的符号具有与C'[X]相同的值。

5.3.3. First Encoding Step: Intermediate Symbol Generation
5.3.3. 第一编码步骤:中间符号生成
5.3.3.1. General
5.3.3.1. 全体的

This encoding step is a pre-coding step to generate the L intermediate symbols C[0], ..., C[L-1] from the source symbols C'[0], ..., C'[K'-1], where L > K' is defined in Section 5.3.3.3. The intermediate symbols are uniquely defined by two sets of constraints:

该编码步骤是一个预编码步骤,用于从源符号C'[0]、…、C'[K'-1]生成L个中间符号C[0]、…、C[L-1],其中L>K'在第5.3.3.3节中定义。中间符号由两组约束唯一定义:

1. The intermediate symbols are related to the source symbols by a set of source symbol tuples and by the ISIs of the source symbols. The generation of the source symbol tuples is defined in Section 5.3.3.2 using the Tuple[] generator as described in Section 5.3.5.4.

1. 中间符号通过一组源符号元组和源符号的isi与源符号相关。第5.3.3.2节使用第5.3.5.4节所述的元组[]生成器定义了源符号元组的生成。

2. A number of pre-coding relationships hold within the intermediate symbols themselves. These are defined in Section 5.3.3.3.

2. 许多预编码关系在中间符号本身内保持。这些在第5.3.3.3节中定义。

The generation of the L intermediate symbols is then defined in Section 5.3.3.4.

第5.3.3.4节定义了L中间符号的生成。

5.3.3.2. Source Symbol Tuples
5.3.3.2. 源符号元组

Each of the K' source symbols is associated with a source symbol tuple (d[X], a[X], b[X], d1[X], a1[X], b1[X]) for 0 <= X < K'. The source symbol tuples are determined using the Tuple[] generator defined in Section 5.3.5.4 as:

K’源符号中的每一个与源符号元组(d[X]、a[X]、b[X]、d1[X]、a1[X]、b1[X])相关联,用于0<=X<K’。源符号元组使用第5.3.5.4节中定义的元组[]生成器确定为:

      For each X, 0 <= X < K'
        
      For each X, 0 <= X < K'
        

(d[X], a[X], b[X], d1[X], a1[X], b1[X]) = Tuple[K, X]

(d[X],a[X],b[X],d1[X],a1[X],b1[X])=元组[K,X]

5.3.3.3. Pre-Coding Relationships
5.3.3.3. 预编码关系

The pre-coding relationships amongst the L intermediate symbols are defined by requiring that a set of S+H linear combinations of the intermediate symbols evaluate to zero. There are S LDPC and H HDPC symbols, and thus L = K'+S+H. Another partition of the L intermediate symbols is into two sets, one set of W LT symbols and another set of P PI symbols, and thus it is also the case that L = W+P. The P PI symbols are treated differently than the W LT symbols in the encoding process. The P PI symbols consist of the H HDPC symbols together with a set of U = P-H of the other K' intermediate symbols. The W LT symbols consist of the S LDPC symbols together with W-S of the other K' intermediate symbols. The values of these parameters are determined from K' as described below, where H(K'), S(K'), and W(K') are derived from Table 2 in Section 5.6.

通过要求中间符号的一组S+H线性组合求值为零来定义L个中间符号之间的预编码关系。有S个LDPC和H个HDPC符号,因此L=K'+S+H。L个中间符号的另一个划分为两组,一组W LT符号和另一组P PI符号,因此L=W+P的情况也是如此。P PI符号在编码过程中的处理方式与W LT符号不同。P PI符号包括H HDPC符号以及一组U=P-H的其他K’中间符号。W-LT符号包括S个LDPC符号以及其他K′中间符号的W-S。这些参数的值由下文所述的K'确定,其中H(K')、S(K')和W(K')来自第5.6节中的表2。

Let

允许

o S = S(K')

o S=S(K′)

o H = H(K')

o H=H(K′)

o W = W(K')

o W=W(K′)

o L = K' + S + H

o L=K'+S+H

o P = L - W

o P=L-W

o P1 denote the smallest prime number greater than or equal to P.

o P1表示大于或等于P的最小素数。

o U = P - H

o U=P-H

o B = W - S

o B=W-S

o C[0], ..., C[B-1] denote the intermediate symbols that are LT symbols but not LDPC symbols.

o C[0],…,C[B-1]表示作为LT符号而不是LDPC符号的中间符号。

o C[B], ..., C[B+S-1] denote the S LDPC symbols that are also LT symbols.

o C[B],…,C[B+S-1]表示也是LT符号的S LDPC符号。

o C[W], ..., C[W+U-1] denote the intermediate symbols that are PI symbols but not HDPC symbols.

o C[W],…,C[W+U-1]表示作为PI符号而不是HDPC符号的中间符号。

o C[L-H], ..., C[L-1] denote the H HDPC symbols that are also PI symbols.

o C[L-H],…,C[L-1]表示也是PI符号的H HDPC符号。

The first set of pre-coding relations, called LDPC relations, is described below and requires that at the end of this process the set of symbols D[0] , ..., D[S-1] are all zero:

第一组预编码关系(称为LDPC关系)如下所述,并要求在该过程结束时,符号集D[0]、…、D[S-1]均为零:

o Initialize the symbols D[0] = C[B], ..., D[S-1] = C[B+S-1].

o 初始化符号D[0]=C[B],…,D[S-1]=C[B+S-1]。

o For i = 0, ..., B-1 do

o 对于i=0,…,B-1 do

* a = 1 + floor(i/S)

* a=1+楼层(i/S)

* b = i % S

* b=i%S

* D[b] = D[b] + C[i]

* D[b]=D[b]+C[i]

* b = (b + a) % S

* b=(b+a)%S

* D[b] = D[b] + C[i]

* D[b]=D[b]+C[i]

* b = (b + a) % S

* b=(b+a)%S

* D[b] = D[b] + C[i]

* D[b]=D[b]+C[i]

o For i = 0, ..., S-1 do

o 对于i=0,…,S-1 do

* a = i % P

* a=i%P

* b = (i+1) % P

* b=(i+1)%P

* D[i] = D[i] + C[W+a] + C[W+b]

* D[i]=D[i]+C[W+a]+C[W+b]

Recall that the addition of symbols is to be carried out as specified in Section 5.7.

回想一下,应按照第5.7节的规定添加符号。

Note that the LDPC relations as defined in the algorithm above are linear, so there exists an S x B matrix G_LDPC,1 and an S x P matrix G_LDPC,2 such that

注意,上述算法中定义的LDPC关系是线性的,因此存在sxb矩阵G_LDPC,1和sxp矩阵G_LDPC,2,使得

      G_LDPC,1 * Transpose[(C[0], ..., C[B-1])] + G_LDPC,2 *
      Transpose(C[W], ..., C[W+P-1]) + Transpose[(C[B], ..., C[B+S-1])]
      = 0
        
      G_LDPC,1 * Transpose[(C[0], ..., C[B-1])] + G_LDPC,2 *
      Transpose(C[W], ..., C[W+P-1]) + Transpose[(C[B], ..., C[B+S-1])]
      = 0
        

(The matrix G_LDPC,1 is defined by the first loop in the above algorithm, and G_LDPC,2 can be deduced from the second loop.)

(矩阵G_LDPC,1由上述算法中的第一个循环定义,G_LDPC,2可由第二个循环推导得出。)

The second set of relations among the intermediate symbols C[0], ..., C[L-1] are the HDPC relations and they are defined as follows:

中间符号C[0]、…、C[L-1]之间的第二组关系是HDPC关系,它们的定义如下:

Let

允许

o alpha denote the octet represented by integer 2 as defined in Section 5.7.

o alpha表示第5.7节中定义的整数2表示的八位字节。

o MT denote an H x (K' + S) matrix of octets, where for j=0, ..., K'+S-2, the entry MT[i,j] is the octet represented by the integer 1 if i= Rand[j+1,6,H] or i = (Rand[j+1,6,H] + Rand[j+1,7,H-1] + 1) % H, and MT[i,j] is the zero element for all other values of i, and for j=K'+S-1, MT[i,j] = alpha^^i for i=0, ..., H-1.

o MT表示八位字节的hx(K'+S)矩阵,其中对于j=0,…,K'+S-2,如果i=Rand[j+1,6,H]或i=(Rand[j+1,6,H]+Rand[j+1,7,H-1]+1)%H,则条目MT[i,j]是i的所有其他值的零元素,对于j=K'+S-1,MT[i,j]=alpha^^i表示i=0,…,H-1。

o GAMMA denote a (K'+S) x (K'+S) matrix of octets, where

o GAMMA表示八位字节的(K'+S)x(K'+S)矩阵,其中

GAMMA[i,j] =

伽马[i,j]=

alpha ^^ (i-j) for i >= j,

α^^(i-j)表示i>=j,

0 otherwise.

否则为0。

Then, the relationship between the first K'+S intermediate symbols C[0], ..., C[K'+S-1] and the H HDPC symbols C[K'+S], ..., C[K'+S+H-1] is given by:

然后,第一个K'+S中间符号C[0]、…、C[K'+S-1]和H HDPC符号C[K'+S]、…、C[K'+S+H-1]之间的关系由下式给出:

Transpose[C[K'+S], ..., C[K'+S+H-1]] + MT * GAMMA * Transpose[C[0], ..., C[K'+S-1]] = 0,

转置[C[K'+S],…,C[K'+S+H-1]+MT*伽马*转置[C[0],…,C[K'+S-1]=0,

where '*' represents standard matrix multiplication utilizing the octet multiplication to define the multiplication between a matrix of octets and a matrix of symbols (in particular, the column vector of symbols), and '+' denotes addition over octet vectors.

其中,“*”表示标准矩阵乘法,利用八位字节乘法定义八位字节矩阵和符号矩阵(尤其是符号列向量)之间的乘法,“+”表示八位字节向量上的加法。

5.3.3.4. Intermediate Symbols
5.3.3.4. 中间符号
5.3.3.4.1. Definition
5.3.3.4.1. 释义

Given the K' source symbols C'[0], C'[1], ..., C'[K'-1] the L intermediate symbols C[0], C[1], ..., C[L-1] are the uniquely defined symbol values that satisfy the following conditions:

给定K'源符号C'[0]、C'[1]、…、C'[K'-1],L个中间符号C[0]、C[1]、…、C[L-1]是唯一定义的符号值,满足以下条件:

1. The K' source symbols C'[0], C'[1], ..., C'[K'-1] satisfy the K' constraints

1. K'源符号C'[0]、C'[1]、…、C'[K'-1]满足K'约束

C'[X] = Enc[K', (C[0], ..., C[L-1]), (d[X], a[X], b[X], d1[X], a1[X], b1[X])], for all X, 0 <= X < K',

C'[X]=Enc[K',(C[0],…,C[L-1]),(d[X],a[X],b[X],d1[X],a1[X],b1[X]),对于所有X,0<=X<K',

where (d[X], a[X], b[X], d1[X], a1[X], b1[X])) = Tuple[K',X], Tuple[] is defined in Section 5.3.5.4, and Enc[] is described in Section 5.3.5.3.

其中(d[X]、a[X]、b[X]、d1[X]、a1[X]、b1[X])=元组[K',X],第5.3.5.4节定义了元组[],第5.3.5.3节描述了Enc[]。

2. The L intermediate symbols C[0], C[1], ..., C[L-1] satisfy the pre-coding relationships defined in Section 5.3.3.3.

2. L中间符号C[0],C[1],…,C[L-1]满足第5.3.3.3节中定义的预编码关系。

5.3.3.4.2. Example Method for Calculation of Intermediate Symbols
5.3.3.4.2. 计算中间符号的示例方法

This section describes a possible method for calculation of the L intermediate symbols C[0], C[1], ..., C[L-1] satisfying the constraints in Section 5.3.3.4.1.

本节描述了计算满足第5.3.3.4.1节约束条件的L个中间符号C[0]、C[1]、…、C[L-1]的可能方法。

The L intermediate symbols can be calculated as follows:

L中间符号可按如下方式计算:

Let

允许

o C denote the column vector of the L intermediate symbols, C[0], C[1], ..., C[L-1].

o C表示L个中间符号的列向量,C[0],C[1],…,C[L-1]。

o D denote the column vector consisting of S+H zero symbols followed by the K' source symbols C'[0], C'[1], ..., C'[K'-1].

o D表示由S+H零符号后跟K'源符号C'[0],C'[1],…,C'[K'-1]组成的列向量。

Then, the above constraints define an L x L matrix A of octets such that:

然后,上述约束定义了八位字节的L x L矩阵A,以便:

A*C = D

A*C=D

The matrix A can be constructed as follows:

矩阵A可以如下构造:

Let

允许

o G_LDPC,1 and G_LDPC,2 be S x B and S x P matrices as defined in Section 5.3.3.3.

o G_LDPC,1和G_LDPC,2为第5.3.3节中定义的S x B和S x P矩阵。

o G_HDPC be the H x (K'+S) matrix such that

o G_HDPC是hx(K'+S)矩阵,使得

G_HDPC * Transpose(C[0], ..., C[K'+S-1]) = Transpose(C[K'+S], ..., C[L-1]),

G_HDPC*转置(C[0],…,C[K'+S-1])=转置(C[K'+S],…,C[L-1]),

i.e., G_HDPC = MT*GAMMA

i、 例如,G_HDPC=MT*GAMMA

o I_S be the S x S identity matrix

o I_S是S x S单位矩阵

o I_H be the H x H identity matrix

o I_H是H×H单位矩阵

o G_ENC be the K' x L matrix such that

o G_ENC是K'xl矩阵,因此

G_ENC * Transpose[(C[0], ..., C[L-1])] = Transpose[(C'[0],C'[1], ...,C'[K'-1])],

G_ENC*转座[(C[0],…,C[L-1])]=转座[(C'[0],C'[1],…,C'[K'-1]),

i.e., G_ENC[i,j] = 1 if and only if C[j] is included in the symbols that are summed to produce Enc[K', (C[0], ..., C[L-1]), (d[i], a[i], b[i], d1[i], a1[i], b1[i])] and G_ENC[i,j] = 0 otherwise.

i、 例如,G_ENC[i,j]=1当且仅当C[j]被包括在被求和以产生ENC[K'、(C[0]、…、C[L-1]、(d[i]、a[i]、b[i]、d1[i]、a1[i]、b1[i])和G_ENC[i,j]=0的符号中,否则。

Then

然后

o The first S rows of A are equal to G_LDPC,1 | I_S | G_LDPC,2.

o A的前S行等于G|LDPC,1 | I|S | G|LDPC,2。

o The next H rows of A are equal to G_HDPC | I_H.

o A的下H行等于G|HDPC | I|H。

o The remaining K' rows of A are equal to G_ENC.

o A的其余K'行等于G_ENC。

The matrix A is depicted in Figure 5 below:

矩阵A如下图5所示:

                       B               S         U         H
            +-----------------------+-------+------------------+
            |                       |       |                  |
          S |        G_LDPC,1       |  I_S  |      G_LDPC,2    |
            |                       |       |                  |
            +-----------------------+-------+----------+-------+
            |                                          |       |
          H |                G_HDPC                    |  I_H  |
            |                                          |       |
            +------------------------------------------+-------+
            |                                                  |
            |                                                  |
         K' |                      G_ENC                       |
            |                                                  |
            |                                                  |
            +--------------------------------------------------+
        
                       B               S         U         H
            +-----------------------+-------+------------------+
            |                       |       |                  |
          S |        G_LDPC,1       |  I_S  |      G_LDPC,2    |
            |                       |       |                  |
            +-----------------------+-------+----------+-------+
            |                                          |       |
          H |                G_HDPC                    |  I_H  |
            |                                          |       |
            +------------------------------------------+-------+
            |                                                  |
            |                                                  |
         K' |                      G_ENC                       |
            |                                                  |
            |                                                  |
            +--------------------------------------------------+
        

Figure 5: The Matrix A

图5:矩阵A

The intermediate symbols can then be calculated as:

然后,可以将中间符号计算为:

      C = (A^^-1)*D
        
      C = (A^^-1)*D
        

The source tuples are generated such that for any K' matrix A has full rank and is therefore invertible. This calculation can be realized by applying a RaptorQ decoding process to the K' source symbols C'[0], C'[1], ..., C'[K'-1] to produce the L intermediate symbols C[0], C[1], ..., C[L-1].

生成源元组时,对于任何K'矩阵,A都具有满秩,因此是可逆的。该计算可通过对K′源符号C′[0]、C′[1]、…、C′[K'-1]应用RaptorQ解码过程来实现,以产生L个中间符号C[0]、C[1]、…、C[L-1]。

To efficiently generate the intermediate symbols from the source symbols, it is recommended that an efficient decoder implementation such as that described in Section 5.4 be used.

为了从源符号有效地生成中间符号,建议使用第5.4节所述的高效解码器实现。

5.3.4. Second Encoding Step: Encoding
5.3.4. 第二编码步骤:编码

In the second encoding step, the repair symbol with ISI X (X >= K') is generated by applying the generator Enc[K', (C[0], C[1], ..., C[L-1]), (d, a, b, d1, a1, b1)] defined in Section 5.3.5.3 to the L intermediate symbols C[0], C[1], ..., C[L-1] using the tuple (d, a, b, d1, a1, b1)=Tuple[K',X].

在第二编码步骤中,通过使用元组(d,a,b,d1,a1,b1)=元组[K',X]将第5.3.5.3节中定义的生成器Enc[K',(C[0],C[1],…,C[L-1]),(d,a,b,d1,a1,b1)]应用于L个中间符号C[0],C[1],…,C[L-1],生成具有ISI X(X>=K')的修复符号。

5.3.5. Generators
5.3.5. 发电机
5.3.5.1. Random Number Generator
5.3.5.1. 随机数发生器

The random number generator Rand[y, i, m] is defined as follows, where y is a non-negative integer, i is a non-negative integer less than 256, and m is a positive integer, and the value produced is an integer between 0 and m-1. Let V0, V1, V2, and V3 be the arrays provided in Section 5.5.

随机数生成器Rand[y,i,m]定义如下,其中y是非负整数,i是小于256的非负整数,m是正整数,并且产生的值是介于0和m-1之间的整数。设V0、V1、V2和V3为第5.5节中提供的阵列。

Let

允许

o x0 = (y + i) mod 2^^8

o x0=(y+i)模2^^8

o x1 = (floor(y / 2^^8) + i) mod 2^^8

o x1=(楼层(y/2^^8)+i)模块2^^8

o x2 = (floor(y / 2^^16) + i) mod 2^^8

o x2=(楼层(y/2^^16)+i)模块2^^8

o x3 = (floor(y / 2^^24) + i) mod 2^^8

o x3=(楼层(y/2^^24)+i)模块2^^8

Then

然后

      Rand[y, i, m] = (V0[x0] ^ V1[x1] ^ V2[x2] ^ V3[x3]) % m
        
      Rand[y, i, m] = (V0[x0] ^ V1[x1] ^ V2[x2] ^ V3[x3]) % m
        
5.3.5.2. Degree Generator
5.3.5.2. 度发生器

The degree generator Deg[v] is defined as follows, where v is a non-negative integer that is less than 2^^20 = 1048576. Given v, find index d in Table 1 such that f[d-1] <= v < f[d], and set Deg[v] = min(d, W-2). Recall that W is derived from K' as described in Section 5.3.3.3.

度生成器Deg[v]定义如下,其中v是小于2^^20=1048576的非负整数。给定v,在表1中找到索引d,使f[d-1]<=v<f[d],并设置Deg[v]=min(d,W-2)。回想一下,如第5.3.3.3节所述,W源自K’。

                 +---------+---------+---------+---------+
                 | Index d | f[d]    | Index d | f[d]    |
                 +---------+---------+---------+---------+
                 | 0       | 0       | 1       | 5243    |
                 +---------+---------+---------+---------+
                 | 2       | 529531  | 3       | 704294  |
                 +---------+---------+---------+---------+
                 | 4       | 791675  | 5       | 844104  |
                 +---------+---------+---------+---------+
                 | 6       | 879057  | 7       | 904023  |
                 +---------+---------+---------+---------+
                 | 8       | 922747  | 9       | 937311  |
                 +---------+---------+---------+---------+
                 | 10      | 948962  | 11      | 958494  |
                 +---------+---------+---------+---------+
                 | 12      | 966438  | 13      | 973160  |
                 +---------+---------+---------+---------+
                 | 14      | 978921  | 15      | 983914  |
                 +---------+---------+---------+---------+
                 | 16      | 988283  | 17      | 992138  |
                 +---------+---------+---------+---------+
                 | 18      | 995565  | 19      | 998631  |
                 +---------+---------+---------+---------+
                 | 20      | 1001391 | 21      | 1003887 |
                 +---------+---------+---------+---------+
                 | 22      | 1006157 | 23      | 1008229 |
                 +---------+---------+---------+---------+
                 | 24      | 1010129 | 25      | 1011876 |
                 +---------+---------+---------+---------+
                 | 26      | 1013490 | 27      | 1014983 |
                 +---------+---------+---------+---------+
                 | 28      | 1016370 | 29      | 1017662 |
                 +---------+---------+---------+---------+
                 | 30      | 1048576 |         |         |
                 +---------+---------+---------+---------+
        
                 +---------+---------+---------+---------+
                 | Index d | f[d]    | Index d | f[d]    |
                 +---------+---------+---------+---------+
                 | 0       | 0       | 1       | 5243    |
                 +---------+---------+---------+---------+
                 | 2       | 529531  | 3       | 704294  |
                 +---------+---------+---------+---------+
                 | 4       | 791675  | 5       | 844104  |
                 +---------+---------+---------+---------+
                 | 6       | 879057  | 7       | 904023  |
                 +---------+---------+---------+---------+
                 | 8       | 922747  | 9       | 937311  |
                 +---------+---------+---------+---------+
                 | 10      | 948962  | 11      | 958494  |
                 +---------+---------+---------+---------+
                 | 12      | 966438  | 13      | 973160  |
                 +---------+---------+---------+---------+
                 | 14      | 978921  | 15      | 983914  |
                 +---------+---------+---------+---------+
                 | 16      | 988283  | 17      | 992138  |
                 +---------+---------+---------+---------+
                 | 18      | 995565  | 19      | 998631  |
                 +---------+---------+---------+---------+
                 | 20      | 1001391 | 21      | 1003887 |
                 +---------+---------+---------+---------+
                 | 22      | 1006157 | 23      | 1008229 |
                 +---------+---------+---------+---------+
                 | 24      | 1010129 | 25      | 1011876 |
                 +---------+---------+---------+---------+
                 | 26      | 1013490 | 27      | 1014983 |
                 +---------+---------+---------+---------+
                 | 28      | 1016370 | 29      | 1017662 |
                 +---------+---------+---------+---------+
                 | 30      | 1048576 |         |         |
                 +---------+---------+---------+---------+
        

Table 1: Defines the Degree Distribution for Encoding Symbols

表1:定义编码符号的度分布

5.3.5.3. Encoding Symbol Generator
5.3.5.3. 编码符号发生器

The encoding symbol generator Enc[K', (C[0], C[1], ..., C[L-1]), (d, a, b, d1, a1, b1)] takes the following inputs:

编码符号生成器Enc[K',(C[0],C[1],…,C[L-1]),(d,a,b,d1,a1,b1)]采用以下输入:

o K' is the number of source symbols for the extended source block. Let L, W, B, S, P, and P1 be derived from K' as described in Section 5.3.3.3.

o K’是扩展源块的源符号数。如第5.3.3.3节所述,由K'导出L、W、B、S、P和P1。

o (C[0], C[1], ..., C[L-1]) is the array of L intermediate symbols (sub-symbols) generated as described in Section 5.3.3.4.

o (C[0],C[1],…,C[L-1])是按第5.3.3.4节所述生成的L个中间符号(子符号)的数组。

o (d, a, b, d1, a1, b1) is a source tuple determined from ISI X using the Tuple[] generator defined in Section 5.3.5.4, whereby

o (d,a,b,d1,a1,b1)是使用第5.3.5.4节中定义的tuple[]生成器根据ISI X确定的源元组,其中

* d is a positive integer denoting an encoding symbol LT degree

* d是表示编码符号LT度的正整数

* a is a positive integer between 1 and W-1 inclusive

* a是介于1和W-1(含)之间的正整数

* b is a non-negative integer between 0 and W-1 inclusive

* b是介于0和W-1(含0和W-1)之间的非负整数

* d1 is a positive integer that has value either 2 or 3 denoting an encoding symbol PI degree

* d1是一个正整数,其值为2或3,表示编码符号PI度

* a1 is a positive integer between 1 and P1-1 inclusive

* a1是介于1和P1-1(含1)之间的正整数

* b1 is a non-negative integer between 0 and P1-1 inclusive

* b1是介于0和P1-1(含)之间的非负整数

The encoding symbol generator produces a single encoding symbol as output (referred to as result), according to the following algorithm:

编码符号生成器根据以下算法生成单个编码符号作为输出(称为结果):

o result = C[b]

o 结果=C[b]

o For j = 1, ..., d-1 do

o 对于j=1,…,d-1 do

* b = (b + a) % W

* b=(b+a)%W

* result = result + C[b]

* 结果=结果+C[b]

o While (b1 >= P) do b1 = (b1+a1) % P1

o 而(b1>=P)do b1=(b1+a1)%P1

o result = result + C[W+b1]

o 结果=结果+C[W+b1]

o For j = 1, ..., d1-1 do

o 对于j=1,…,d1-1 do

* b1 = (b1 + a1) % P1

* b1=(b1+a1)%P1

* While (b1 >= P) do b1 = (b1+a1) % P1

* 而(b1>=P)do b1=(b1+a1)%P1

* result = result + C[W+b1]

* 结果=结果+C[W+b1]

o Return result

o 返回结果

5.3.5.4. Tuple Generator
5.3.5.4. 元组生成器

The tuple generator Tuple[K',X] takes the following inputs:

元组生成器元组[K',X]采用以下输入:

o K': the number of source symbols in the extended source block

o K”:扩展源块中的源符号数

o X: an ISI

o X:ISI

Let

允许

o L be determined from K' as described in Section 5.3.3.3

o L根据第5.3.3.3节中所述的K'确定

o J = J(K') be the systematic index associated with K', as defined in Table 2 in Section 5.6

o J=J(K')是第5.6节表2中定义的与K'相关的系统指数

The output of the tuple generator is a tuple, (d, a, b, d1, a1, b1), determined as follows:

元组生成器的输出是元组(d、a、b、d1、a1、b1),确定如下:

o A = 53591 + J*997

o A=53591+J*997

o if (A % 2 == 0) { A = A + 1 }

o 如果(A%2==0){A=A+1}

o B = 10267*(J+1)

o B=10267*(J+1)

o y = (B + X*A) % 2^^32

o y=(B+X*A)%2^^32

o v = Rand[y, 0, 2^^20]

o v=兰特[y,0,2^^20]

o d = Deg[v]

o d=度[v]

o a = 1 + Rand[y, 1, W-1]

o a=1+Rand[y,1,W-1]

o b = Rand[y, 2, W]

o b=兰特[y,2,W]

o If (d < 4) { d1 = 2 + Rand[X, 3, 2] } else { d1 = 2 }

o 如果(d<4){d1=2+Rand[X,3,2]}其他{d1=2}

o a1 = 1 + Rand[X, 4, P1-1]

o a1=1+Rand[X,4,P1-1]

o b1 = Rand[X, 5, P1]

o b1=兰特[X,5,P1]

5.4. Example FEC Decoder
5.4. 示例FEC解码器
5.4.1. General
5.4.1. 全体的

This section describes an efficient decoding algorithm for the RaptorQ code introduced in this specification. Note that each received encoding symbol is a known linear combination of the intermediate symbols. So, each received encoding symbol provides a

本节描述本规范中介绍的RaptorQ码的高效解码算法。注意,每个接收到的编码符号是中间符号的已知线性组合。因此,每个接收到的编码符号提供一个

linear equation among the intermediate symbols, which, together with the known linear pre-coding relationships amongst the intermediate symbols, gives a system of linear equations. Thus, any algorithm for solving systems of linear equations can successfully decode the intermediate symbols and hence the source symbols. However, the algorithm chosen has a major effect on the computational efficiency of the decoding.

中间符号之间的线性方程,连同中间符号之间的已知线性预编码关系,给出了线性方程组。因此,任何求解线性方程组的算法都可以成功地解码中间符号,从而解码源符号。然而,所选择的算法对解码的计算效率有重大影响。

5.4.2. Decoding an Extended Source Block
5.4.2. 解码扩展源块
5.4.2.1. General
5.4.2.1. 全体的

It is assumed that the decoder knows the structure of the source block it is to decode, including the symbol size, T, and the number K of symbols in the source block and the number K' of source symbols in the extended source block.

假设解码器知道其要解码的源块的结构,包括符号大小T、源块中的符号数K和扩展源块中的源符号数K′。

From the algorithms described in Section 5.3, the RaptorQ decoder can calculate the total number L = K'+S+H of intermediate symbols and determine how they were generated from the extended source block to be decoded. In this description, it is assumed that the received encoding symbols for the extended source block to be decoded are passed to the decoder. Furthermore, for each such encoding symbol, it is assumed that the number and set of intermediate symbols whose sum is equal to the encoding symbol are passed to the decoder. In the case of source symbols, including padding symbols, the source symbol tuples described in Section 5.3.3.2 indicate the number and set of intermediate symbols that sum to give each source symbol.

根据第5.3节中描述的算法,RaptorQ解码器可以计算中间符号的总数L=K'+S+H,并确定它们是如何从要解码的扩展源块生成的。在该描述中,假设将要解码的扩展源块的接收编码符号传递给解码器。此外,对于每个这样的编码符号,假定其和等于编码符号的中间符号的数目和集合被传递到解码器。在源符号(包括填充符号)的情况下,第5.3.3.2节中描述的源符号元组表示中间符号的数量和集合,这些中间符号的总和表示每个源符号。

Let N >= K' be the number of received encoding symbols to be used for decoding, including padding symbols for an extended source block, and let M = S+H+N. Then, with the notation of Section 5.3.3.4.2, we have A*C = D.

设N>=K'为用于解码的接收编码符号的数量,包括扩展源块的填充符号,设M=S+H+N。然后,根据第5.3.3.4.2节的符号,我们得到A*C=D。

Decoding an extended source block is equivalent to decoding C from known A and D. It is clear that C can be decoded if and only if the rank of A is L. Once C has been decoded, missing source symbols can be obtained by using the source symbol tuples to determine the number and set of intermediate symbols that must be summed to obtain each missing source symbol.

解码扩展源块相当于从已知A和D解码C。很明显,C可以被解码,当且仅当A的秩为L。一旦C被解码,通过使用源符号元组确定中间符号的数量和集合,可以获得缺失的源符号,中间符号的数量和集合必须求和才能获得每个缺失的源符号。

The first step in decoding C is to form a decoding schedule. In this step, A is converted using Gaussian elimination (using row operations and row and column reorderings) and after discarding M - L rows, into the L x L identity matrix. The decoding schedule consists of the sequence of row operations and row and column reorderings during the Gaussian elimination process, and it only depends on A and not on D.

解码C的第一步是形成解码时间表。在这一步中,使用高斯消去法(使用行操作以及行和列重新排序)将A转换为L x L单位矩阵,然后丢弃M-L行。解码调度包括高斯消去过程中的行操作序列和行和列重新排序,它只依赖于A而不依赖于D。

The decoding of C from D can take place concurrently with the forming of the decoding schedule, or the decoding can take place afterwards based on the decoding schedule.

来自D的C的解码可以与解码时间表的形成同时进行,或者可以基于解码时间表之后进行解码。

The correspondence between the decoding schedule and the decoding of C is as follows. Let c[0] = 0, c[1] = 1, ..., c[L-1] = L-1 and d[0] = 0, d[1] = 1, ..., d[M-1] = M-1 initially.

解码时间表和C的解码之间的对应关系如下。首先设c[0]=0,c[1]=1,…,c[L-1]=L-1和d[0]=0,d[1]=1,…,d[M-1]=M-1。

o Each time a multiple, beta, of row i of A is added to row i' in the decoding schedule, then in the decoding process the symbol beta*D[d[i]] is added to symbol D[d[i']].

o 每次将a的行i的倍数β添加到解码时间表中的行i′,则在解码过程中,将符号β*D[D[i]]添加到符号D[D[i']。

o Each time a row i of A is multiplied by an octet beta, then in the decoding process the symbol D[d[i]] is also multiplied by beta.

o 每次a的行i乘以八位字节beta,则在解码过程中,符号D[D[i]]也乘以beta。

o Each time row i is exchanged with row i' in the decoding schedule, then in the decoding process the value of d[i] is exchanged with the value of d[i'].

o 每次在解码调度中将行i与行i′交换时,则在解码过程中,将d[i]的值与d[i']的值交换。

o Each time column j is exchanged with column j' in the decoding schedule, then in the decoding process the value of c[j] is exchanged with the value of c[j'].

o 每次在解码调度中j列与j'列交换时,然后在解码过程中c[j]的值与c[j']的值交换。

From this correspondence, it is clear that the total number of operations on symbols in the decoding of the extended source block is the number of row operations (not exchanges) in the Gaussian elimination. Since A is the L x L identity matrix after the Gaussian elimination and after discarding the last M - L rows, it is clear at the end of successful decoding that the L symbols D[d[0]], D[d[1]], ..., D[d[L-1]] are the values of the L symbols C[c[0]], C[c[1]], ..., C[c[L-1]].

从该对应关系可以清楚地看出,在扩展源块的解码中对符号的操作总数是高斯消去中的行操作(而不是交换)的数目。由于A是高斯消去后和丢弃最后M-L行后的lxl单位矩阵,因此在成功解码结束时,很明显L符号D[D[0]]、D[D[1]]、…、D[D[L-1]]是L符号C[C[0]]、C[C[1]、…、C[C[L-1]]的值。

The order in which Gaussian elimination is performed to form the decoding schedule has no bearing on whether or not the decoding is successful. However, the speed of the decoding depends heavily on the order in which Gaussian elimination is performed. (Furthermore, maintaining a sparse representation of A is crucial, although this is not described here.) The remainder of this section describes an order in which Gaussian elimination could be performed that is relatively efficient.

执行高斯消去以形成解码调度的顺序与解码是否成功无关。然而,解码的速度在很大程度上取决于高斯消去的执行顺序。(此外,保持a的稀疏表示是至关重要的,尽管这里没有描述。)本节剩余部分描述了可以执行相对有效的高斯消去的顺序。

5.4.2.2. First Phase
5.4.2.2. 第一阶段

In the first phase of the Gaussian elimination, the matrix A is conceptually partitioned into submatrices and, additionally, a matrix X is created. This matrix has as many rows and columns as A, and it will be a lower triangular matrix throughout the first phase. At the beginning of this phase, the matrix A is copied into the matrix X.

在高斯消去法的第一阶段,矩阵A在概念上被划分为子矩阵,此外,矩阵X被创建。该矩阵的行数和列数与A相同,在整个第一阶段,它将是一个下三角矩阵。在该阶段开始时,矩阵A被复制到矩阵X中。

The submatrix sizes are parameterized by non-negative integers i and u, which are initialized to 0 and P, the number of PI symbols, respectively. The submatrices of A are:

子矩阵大小由非负整数i和u参数化,它们分别初始化为0和P,即PI符号的数量。A的子矩阵是:

1. The submatrix I defined by the intersection of the first i rows and first i columns. This is the identity matrix at the end of each step in the phase.

1. 由前I行和前I列的交点定义的子矩阵I。这是阶段中每个步骤结束时的单位矩阵。

2. The submatrix defined by the intersection of the first i rows and all but the first i columns and last u columns. All entries of this submatrix are zero.

2. 由第一个i行与除第一个i列和最后一个u列以外的所有列的交点定义的子矩阵。此子矩阵的所有条目均为零。

3. The submatrix defined by the intersection of the first i columns and all but the first i rows. All entries of this submatrix are zero.

3. 由前i列和除前i行以外的所有行的交点定义的子矩阵。此子矩阵的所有条目均为零。

4. The submatrix U defined by the intersection of all the rows and the last u columns.

4. 由所有行和最后U列的交点定义的子矩阵U。

5. The submatrix V formed by the intersection of all but the first i columns and the last u columns and all but the first i rows.

5. 子矩阵V由除第一个i列和最后一个u列以外的所有列与除第一个i行以外的所有行的交点构成。

Figure 6 illustrates the submatrices of A. At the beginning of the first phase, V consists of the first L-P columns of A, and U consists of the last P columns corresponding to the PI symbols. In each step, a row of A is chosen.

图6显示了A的子矩阵。在第一阶段开始时,V由A的第一个L-P列组成,U由对应于PI符号的最后一个P列组成。在每个步骤中,选择一行a。

               +-----------+-----------------+---------+
               |           |                 |         |
               |     I     |    All Zeros    |         |
               |           |                 |         |
               +-----------+-----------------+    U    |
               |           |                 |         |
               |           |                 |         |
               | All Zeros |       V         |         |
               |           |                 |         |
               |           |                 |         |
               +-----------+-----------------+---------+
        
               +-----------+-----------------+---------+
               |           |                 |         |
               |     I     |    All Zeros    |         |
               |           |                 |         |
               +-----------+-----------------+    U    |
               |           |                 |         |
               |           |                 |         |
               | All Zeros |       V         |         |
               |           |                 |         |
               |           |                 |         |
               +-----------+-----------------+---------+
        

Figure 6: Submatrices of A in the First Phase

图6:第一阶段A的子矩阵

The following graph defined by the structure of V is used in determining which row of A is chosen. The columns that intersect V are the nodes in the graph, and the rows that have exactly 2 nonzero entries in V and are not HDPC rows are the edges of the graph that connect the two columns (nodes) in the positions of the two ones. A component in this graph is a maximal set of nodes (columns) and edges

由V结构定义的下图用于确定选择A的哪一行。与V相交的列是图形中的节点,在V中正好有2个非零条目且不是HDPC行的行是图形的边,它们将两列(节点)连接在两列(节点)的位置上。此图中的一个组件是节点(列)和边的最大集合

(rows) such that there is a path between each pair of nodes/edges in the graph. The size of a component is the number of nodes (columns) in the component.

(行)以使图形中的每对节点/边之间存在路径。组件的大小是组件中节点(列)的数量。

There are at most L steps in the first phase. The phase ends successfully when i + u = L, i.e., when V and the all zeros submatrix above V have disappeared, and A consists of I, the all zeros submatrix below I, and U. The phase ends unsuccessfully in decoding failure if at some step before V disappears there is no nonzero row in V to choose in that step. In each step, a row of A is chosen as follows:

第一阶段最多有L个步骤。当i+u=L时,即当V和V上方的全零子矩阵消失,且A由i、i下方的全零子矩阵和u组成时,相位成功结束。如果在V消失之前的某个步骤中,V中没有可选择的非零行,则相位在解码失败时失败结束。在每个步骤中,选择一行a,如下所示:

o If all entries of V are zero, then no row is chosen and decoding fails.

o 如果V的所有条目都为零,则不选择任何行,解码失败。

o Let r be the minimum integer such that at least one row of A has exactly r nonzeros in V.

o 设r为最小整数,使得A的至少一行在V中正好有r个非零。

* If r != 2, then choose a row with exactly r nonzeros in V with minimum original degree among all such rows, except that HDPC rows should not be chosen until all non-HDPC rows have been processed.

* 如果r!=2,然后在所有这些行中选择一行,该行在V中正好有r个非零且原始度数最小,除非在处理所有非HDPC行之前不应选择HDPC行。

* If r = 2 and there is a row with exactly 2 ones in V, then choose any row with exactly 2 ones in V that is part of a maximum size component in the graph described above that is defined by V.

* 如果r=2且V中有一行正好有2个,则选择V中正好有2个的任何行,该行是上述图形中由V定义的最大尺寸组件的一部分。

* If r = 2 and there is no row with exactly 2 ones in V, then choose any row with exactly 2 nonzeros in V.

* 如果r=2且V中没有正好有2个1的行,则选择V中正好有2个非零的任何行。

After the row is chosen in this step, the first row of A that intersects V is exchanged with the chosen row so that the chosen row is the first row that intersects V. The columns of A among those that intersect V are reordered so that one of the r nonzeros in the chosen row appears in the first column of V and so that the remaining r-1 nonzeros appear in the last columns of V. The same row and column operations are also performed on the matrix X. Then, an appropriate multiple of the chosen row is added to all the other rows of A below the chosen row that have a nonzero entry in the first column of V. Specifically, if a row below the chosen row has entry beta in the first column of V, and the chosen row has entry alpha in the first column of V, then beta/alpha multiplied by the chosen row is added to this row to leave a zero value in the first column of V. Finally, i is incremented by 1 and u is incremented by r-1, which completes the step.

在此步骤中选择行后,与V相交的A的第一行与所选行交换,使所选行成为与V相交的第一行。与V相交的A列中的A列被重新排序,使所选行中的r非零之一出现在V的第一列中,并使其余的r-1非零出现在V的最后一列中同样的行和列操作也在矩阵X上执行。然后,将所选行的适当倍数添加到所选行下A的所有其他行中,这些行在V的第一列中具有非零条目。具体而言,如果所选行下的行在V的第一列中具有条目beta,选择的行在V的第一列中有条目alpha,然后将beta/alpha乘以选择的行添加到此行,以在V的第一列中保留零值。最后,i增加1,u增加r-1,这完成了该步骤。

Note that efficiency can be improved if the row operations identified above are not actually performed until the affected row is itself chosen during the decoding process. This avoids processing of row operations for rows that are not eventually used in the decoding process, and in particular this avoids those rows for which beta!=1 until they are actually required. Furthermore, the row operations required for the HDPC rows may be performed for all such rows in one process, by using the algorithm described in Section 5.3.3.3.

注意,如果在解码过程中直到受影响的行本身被选择之后才实际执行上面识别的行操作,则可以提高效率。这避免了对最终未在解码过程中使用的行进行行操作的处理,特别是避免了对那些beta=1直到实际需要。此外,通过使用第5.3.3.3节中描述的算法,可在一个过程中对所有此类行执行HDPC行所需的行操作。

5.4.2.3. Second Phase
5.4.2.3. 第二阶段

At this point, all the entries of X outside the first i rows and i columns are discarded, so that X has lower triangular form. The last i rows and columns of X are discarded, so that X now has i rows and i columns. The submatrix U is further partitioned into the first i rows, U_upper, and the remaining M - i rows, U_lower. Gaussian elimination is performed in the second phase on U_lower either to determine that its rank is less than u (decoding failure) or to convert it into a matrix where the first u rows is the identity matrix (success of the second phase). Call this u x u identity matrix I_u. The M - L rows of A that intersect U_lower - I_u are discarded. After this phase, A has L rows and L columns.

此时,第一个i行和i列之外的X的所有条目都被丢弃,因此X具有下三角形式。X的最后i行和列被丢弃,因此X现在有i行和i列。子矩阵U被进一步划分为第一个i行(U_上部)和剩余的M-i行(U_下部)。在第二阶段对U_lower执行高斯消去,以确定其秩小于U(解码失败),或将其转换为矩阵,其中第一U行为单位矩阵(第二阶段成功)。称之为u x u单位矩阵I_。与U_lower-I_相交的A的M-L行将被丢弃。在此阶段之后,A有L行和L列。

5.4.2.4. Third Phase
5.4.2.4. 第三阶段

After the second phase, the only portion of A that needs to be zeroed out to finish converting A into the L x L identity matrix is U_upper. The number of rows i of the submatrix U_upper is generally much larger than the number of columns u of U_upper. Moreover, at this time, the matrix U_upper is typically dense, i.e., the number of nonzero entries of this matrix is large. To reduce this matrix to a sparse form, the sequence of operations performed to obtain the matrix U_lower needs to be inverted. To this end, the matrix X is multiplied with the submatrix of A consisting of the first i rows of A. After this operation, the submatrix of A consisting of the intersection of the first i rows and columns equals to X, whereas the matrix U_upper is transformed to a sparse form.

在第二阶段之后,A的唯一需要调零的部分是U_upper,以完成A到Lxl单位矩阵的转换。子矩阵U_upper的行i的数量通常比U_upper的列U的数量大得多。此外,此时,矩阵U_upper通常是稠密的,即,该矩阵的非零条目的数量很大。为了将该矩阵简化为稀疏形式,需要反转为获得矩阵U_lower而执行的操作序列。为此,矩阵X与由A的前i行组成的A的子矩阵相乘。在此操作后,由前i行和列的交集组成的A的子矩阵等于X,而矩阵U_upper则转换为稀疏形式。

5.4.2.5. Fourth Phase
5.4.2.5. 第四阶段

For each of the first i rows of U_upper, do the following: if the row has a nonzero entry at position j, and if the value of that nonzero entry is b, then add to this row b times row j of I_u. After this step, the submatrix of A consisting of the intersection of the first i rows and columns is equal to X, the submatrix U_upper consists of zeros, the submatrix consisting of the intersection of the last u rows and the first i columns consists of zeros, and the submatrix consisting of the last u rows and columns is the matrix I_u.

对于U_upper的前i行中的每一行,执行以下操作:如果该行在位置j处有一个非零条目,并且如果该非零条目的值为b,则将该行的b乘以i_的行j。在此步骤之后,由前i行和列的交集组成的A的子矩阵等于X,子矩阵U_上由零组成,由最后U行和前i列的交集组成的子矩阵由零组成,由最后U行和列组成的子矩阵是矩阵i_。

5.4.2.6. Fifth Phase
5.4.2.6. 第五阶段

For j from 1 to i, perform the following operations:

对于从1到i的j,执行以下操作:

1. If A[j,j] is not one, then divide row j of A by A[j,j].

1. 如果A[j,j]不是一,则将A的第j行除以A[j,j]。

2. For l from 1 to j-1, if A[j,l] is nonzero, then add A[j,l] multiplied with row l of A to row j of A.

2. 对于从1到j-1的l,如果A[j,l]非零,则将A[j,l]与A的行l相乘后添加到A的行j。

After this phase, A is the L x L identity matrix and a complete decoding schedule has been successfully formed. Then, the corresponding decoding consisting of summing known encoding symbols can be executed to recover the intermediate symbols based on the decoding schedule. The tuples associated with all source symbols are computed according to Section 5.3.3.2. The tuples for received source symbols are used in the decoding. The tuples for missing source symbols are used to determine which intermediate symbols need to be summed to recover the missing source symbols.

在此阶段之后,A是lxl单位矩阵,并且成功地形成了完整的解码时间表。然后,可以执行由求和已知编码符号组成的相应解码,以基于解码调度恢复中间符号。根据第5.3.3.2节计算与所有源符号相关的元组。解码中使用接收到的源符号的元组。缺失源符号的元组用于确定需要对哪些中间符号求和以恢复缺失源符号。

5.5. Random Numbers
5.5. 随机数

The four arrays V0, V1, V2, and V3 used in Section 5.3.5.1 are provided below. There are 256 entries in each of the four arrays. The indexing into each array starts at 0, and the entries are 32-bit unsigned integers.

下面提供了第5.3.5.1节中使用的四个阵列V0、V1、V2和V3。四个数组中的每一个都有256个条目。每个数组的索引从0开始,条目是32位无符号整数。

5.5.1. The Table V0
5.5.1. 表V0

251291136, 3952231631, 3370958628, 4070167936, 123631495, 3351110283, 3218676425, 2011642291, 774603218, 2402805061, 1004366930, 1843948209, 428891132, 3746331984, 1591258008, 3067016507, 1433388735, 504005498, 2032657933, 3419319784, 2805686246, 3102436986, 3808671154, 2501582075, 3978944421, 246043949, 4016898363, 649743608, 1974987508, 2651273766, 2357956801, 689605112, 715807172, 2722736134, 191939188, 3535520147, 3277019569, 1470435941, 3763101702, 3232409631, 122701163, 3920852693, 782246947, 372121310, 2995604341, 2045698575, 2332962102, 4005368743, 218596347, 3415381967, 4207612806, 861117671, 3676575285, 2581671944, 3312220480, 681232419, 307306866, 4112503940, 1158111502, 709227802, 2724140433, 4201101115, 4215970289, 4048876515, 3031661061, 1909085522, 510985033, 1361682810, 129243379, 3142379587, 2569842483, 3033268270, 1658118006, 932109358, 1982290045, 2983082771, 3007670818, 3448104768, 683749698, 778296777, 1399125101, 1939403708, 1692176003, 3868299200, 1422476658, 593093658, 1878973865, 2526292949, 1591602827, 3986158854, 3964389521, 2695031039, 1942050155, 424618399, 1347204291, 2669179716, 2434425874, 2540801947, 1384069776, 4123580443,

251291136, 3952231631, 3370958628, 4070167936, 123631495, 3351110283, 3218676425, 2011642291, 774603218, 2402805061, 1004366930, 1843948209, 428891132, 3746331984, 1591258008, 3067016507, 1433388735, 504005498, 2032657933, 3419319784, 2805686246, 3102436986, 3808671154, 2501582075, 3978944421, 246043949, 4016898363, 649743608, 1974987508, 2651273766, 2357956801, 689605112, 715807172, 2722736134, 191939188, 3535520147, 3277019569, 1470435941, 3763101702, 3232409631, 122701163, 3920852693, 782246947, 372121310, 2995604341, 2045698575, 2332962102, 4005368743, 218596347, 3415381967, 4207612806, 861117671, 3676575285, 2581671944, 3312220480, 681232419, 307306866, 4112503940, 1158111502, 709227802, 2724140433, 4201101115, 4215970289, 4048876515, 3031661061, 1909085522, 510985033, 1361682810, 129243379, 3142379587, 2569842483, 3033268270, 1658118006, 932109358, 1982290045, 2983082771, 3007670818, 3448104768, 683749698, 778296777, 1399125101, 1939403708, 1692176003, 3868299200, 1422476658, 593093658, 1878973865, 2526292949, 1591602827, 3986158854, 3964389521, 2695031039, 1942050155, 424618399, 1347204291, 2669179716, 2434425874, 2540801947, 1384069776, 4123580443,

1523670218, 2708475297, 1046771089, 2229796016, 1255426612, 4213663089, 1521339547, 3041843489, 420130494, 10677091, 515623176, 3457502702, 2115821274, 2720124766, 3242576090, 854310108, 425973987, 325832382, 1796851292, 2462744411, 1976681690, 1408671665, 1228817808, 3917210003, 263976645, 2593736473, 2471651269, 4291353919, 650792940, 1191583883, 3046561335, 2466530435, 2545983082, 969168436, 2019348792, 2268075521, 1169345068, 3250240009, 3963499681, 2560755113, 911182396, 760842409, 3569308693, 2687243553, 381854665, 2613828404, 2761078866, 1456668111, 883760091, 3294951678, 1604598575, 1985308198, 1014570543, 2724959607, 3062518035, 3115293053, 138853680, 4160398285, 3322241130, 2068983570, 2247491078, 3669524410, 1575146607, 828029864, 3732001371, 3422026452, 3370954177, 4006626915, 543812220, 1243116171, 3928372514, 2791443445, 4081325272, 2280435605, 885616073, 616452097, 3188863436, 2780382310, 2340014831, 1208439576, 258356309, 3837963200, 2075009450, 3214181212, 3303882142, 880813252, 1355575717, 207231484, 2420803184, 358923368, 1617557768, 3272161958, 1771154147, 2842106362, 1751209208, 1421030790, 658316681, 194065839, 3241510581, 38625260, 301875395, 4176141739, 297312930, 2137802113, 1502984205, 3669376622, 3728477036, 234652930, 2213589897, 2734638932, 1129721478, 3187422815, 2859178611, 3284308411, 3819792700, 3557526733, 451874476, 1740576081, 3592838701, 1709429513, 3702918379, 3533351328, 1641660745, 179350258, 2380520112, 3936163904, 3685256204, 3156252216, 1854258901, 2861641019, 3176611298, 834787554, 331353807, 517858103, 3010168884, 4012642001, 2217188075, 3756943137, 3077882590, 2054995199, 3081443129, 3895398812, 1141097543, 2376261053, 2626898255, 2554703076, 401233789, 1460049922, 678083952, 1064990737, 940909784, 1673396780, 528881783, 1712547446, 3629685652, 1358307511

1523670218, 2708475297, 1046771089, 2229796016, 1255426612, 4213663089, 1521339547, 3041843489, 420130494, 10677091, 515623176, 3457502702, 2115821274, 2720124766, 3242576090, 854310108, 425973987, 325832382, 1796851292, 2462744411, 1976681690, 1408671665, 1228817808, 3917210003, 263976645, 2593736473, 2471651269, 4291353919, 650792940, 1191583883, 3046561335, 2466530435, 2545983082, 969168436, 2019348792, 2268075521, 1169345068, 3250240009, 3963499681, 2560755113, 911182396, 760842409, 3569308693, 2687243553, 381854665, 2613828404, 2761078866, 1456668111, 883760091, 3294951678, 1604598575, 1985308198, 1014570543, 2724959607, 3062518035, 3115293053, 138853680, 4160398285, 3322241130, 2068983570, 2247491078, 3669524410, 1575146607, 828029864, 3732001371, 3422026452, 3370954177, 4006626915, 543812220, 1243116171, 3928372514, 2791443445, 4081325272, 2280435605, 885616073, 616452097, 3188863436, 2780382310, 2340014831, 1208439576, 258356309, 3837963200, 2075009450, 3214181212, 3303882142, 880813252, 1355575717, 207231484, 2420803184, 358923368, 1617557768, 3272161958, 1771154147, 2842106362, 1751209208, 1421030790, 658316681, 194065839, 3241510581, 38625260, 301875395, 4176141739, 297312930, 2137802113, 1502984205, 3669376622, 3728477036, 234652930, 2213589897, 2734638932, 1129721478, 3187422815, 2859178611, 3284308411, 3819792700, 3557526733, 451874476, 1740576081, 3592838701, 1709429513, 3702918379, 3533351328, 1641660745, 179350258, 2380520112, 3936163904, 3685256204, 3156252216, 1854258901, 2861641019, 3176611298, 834787554, 331353807, 517858103, 3010168884, 4012642001, 2217188075, 3756943137, 3077882590, 2054995199, 3081443129, 3895398812, 1141097543, 2376261053, 2626898255, 2554703076, 401233789, 1460049922, 678083952, 1064990737, 940909784, 1673396780, 528881783, 1712547446, 3629685652, 1358307511

5.5.2. The Table V1
5.5.2. 表V1

807385413, 2043073223, 3336749796, 1302105833, 2278607931, 541015020, 1684564270, 372709334, 3508252125, 1768346005, 1270451292, 2603029534, 2049387273, 3891424859, 2152948345, 4114760273, 915180310, 3754787998, 700503826, 2131559305, 1308908630, 224437350, 4065424007, 3638665944, 1679385496, 3431345226, 1779595665, 3068494238, 1424062773, 1033448464, 4050396853, 3302235057, 420600373, 2868446243, 311689386, 259047959, 4057180909, 1575367248, 4151214153, 110249784, 3006865921, 4293710613, 3501256572, 998007483, 499288295, 1205710710, 2997199489, 640417429, 3044194711, 486690751, 2686640734, 2394526209, 2521660077, 49993987, 3843885867, 4201106668, 415906198, 19296841, 2402488407, 2137119134, 1744097284, 579965637, 2037662632, 852173610, 2681403713,

807385413, 2043073223, 3336749796, 1302105833, 2278607931, 541015020, 1684564270, 372709334, 3508252125, 1768346005, 1270451292, 2603029534, 2049387273, 3891424859, 2152948345, 4114760273, 915180310, 3754787998, 700503826, 2131559305, 1308908630, 224437350, 4065424007, 3638665944, 1679385496, 3431345226, 1779595665, 3068494238, 1424062773, 1033448464, 4050396853, 3302235057, 420600373, 2868446243, 311689386, 259047959, 4057180909, 1575367248, 4151214153, 110249784, 3006865921, 4293710613, 3501256572, 998007483, 499288295, 1205710710, 2997199489, 640417429, 3044194711, 486690751, 2686640734, 2394526209, 2521660077, 49993987, 3843885867, 4201106668, 415906198, 19296841, 2402488407, 2137119134, 1744097284, 579965637, 2037662632, 852173610, 2681403713,

1047144830, 2982173936, 910285038, 4187576520, 2589870048, 989448887, 3292758024, 506322719, 176010738, 1865471968, 2619324712, 564829442, 1996870325, 339697593, 4071072948, 3618966336, 2111320126, 1093955153, 957978696, 892010560, 1854601078, 1873407527, 2498544695, 2694156259, 1927339682, 1650555729, 183933047, 3061444337, 2067387204, 228962564, 3904109414, 1595995433, 1780701372, 2463145963, 307281463, 3237929991, 3852995239, 2398693510, 3754138664, 522074127, 146352474, 4104915256, 3029415884, 3545667983, 332038910, 976628269, 3123492423, 3041418372, 2258059298, 2139377204, 3243642973, 3226247917, 3674004636, 2698992189, 3453843574, 1963216666, 3509855005, 2358481858, 747331248, 1957348676, 1097574450, 2435697214, 3870972145, 1888833893, 2914085525, 4161315584, 1273113343, 3269644828, 3681293816, 412536684, 1156034077, 3823026442, 1066971017, 3598330293, 1979273937, 2079029895, 1195045909, 1071986421, 2712821515, 3377754595, 2184151095, 750918864, 2585729879, 4249895712, 1832579367, 1192240192, 946734366, 31230688, 3174399083, 3549375728, 1642430184, 1904857554, 861877404, 3277825584, 4267074718, 3122860549, 666423581, 644189126, 226475395, 307789415, 1196105631, 3191691839, 782852669, 1608507813, 1847685900, 4069766876, 3931548641, 2526471011, 766865139, 2115084288, 4259411376, 3323683436, 568512177, 3736601419, 1800276898, 4012458395, 1823982, 27980198, 2023839966, 869505096, 431161506, 1024804023, 1853869307, 3393537983, 1500703614, 3019471560, 1351086955, 3096933631, 3034634988, 2544598006, 1230942551, 3362230798, 159984793, 491590373, 3993872886, 3681855622, 903593547, 3535062472, 1799803217, 772984149, 895863112, 1899036275, 4187322100, 101856048, 234650315, 3183125617, 3190039692, 525584357, 1286834489, 455810374, 1869181575, 922673938, 3877430102, 3422391938, 1414347295, 1971054608, 3061798054, 830555096, 2822905141, 167033190, 1079139428, 4210126723, 3593797804, 429192890, 372093950, 1779187770, 3312189287, 204349348, 452421568, 2800540462, 3733109044, 1235082423, 1765319556, 3174729780, 3762994475, 3171962488, 442160826, 198349622, 45942637, 1324086311, 2901868599, 678860040, 3812229107, 19936821, 1119590141, 3640121682, 3545931032, 2102949142, 2828208598, 3603378023, 4135048896

1047144830, 2982173936, 910285038, 4187576520, 2589870048, 989448887, 3292758024, 506322719, 176010738, 1865471968, 2619324712, 564829442, 1996870325, 339697593, 4071072948, 3618966336, 2111320126, 1093955153, 957978696, 892010560, 1854601078, 1873407527, 2498544695, 2694156259, 1927339682, 1650555729, 183933047, 3061444337, 2067387204, 228962564, 3904109414, 1595995433, 1780701372, 2463145963, 307281463, 3237929991, 3852995239, 2398693510, 3754138664, 522074127, 146352474, 4104915256, 3029415884, 3545667983, 332038910, 976628269, 3123492423, 3041418372, 2258059298, 2139377204, 3243642973, 3226247917, 3674004636, 2698992189, 3453843574, 1963216666, 3509855005, 2358481858, 747331248, 1957348676, 1097574450, 2435697214, 3870972145, 1888833893, 2914085525, 4161315584, 1273113343, 3269644828, 3681293816, 412536684, 1156034077, 3823026442, 1066971017, 3598330293, 1979273937, 2079029895, 1195045909, 1071986421, 2712821515, 3377754595, 2184151095, 750918864, 2585729879, 4249895712, 1832579367, 1192240192, 946734366, 31230688, 3174399083, 3549375728, 1642430184, 1904857554, 861877404, 3277825584, 4267074718, 3122860549, 666423581, 644189126, 226475395, 307789415, 1196105631, 3191691839, 782852669, 1608507813, 1847685900, 4069766876, 3931548641, 2526471011, 766865139, 2115084288, 4259411376, 3323683436, 568512177, 3736601419, 1800276898, 4012458395, 1823982, 27980198, 2023839966, 869505096, 431161506, 1024804023, 1853869307, 3393537983, 1500703614, 3019471560, 1351086955, 3096933631, 3034634988, 2544598006, 1230942551, 3362230798, 159984793, 491590373, 3993872886, 3681855622, 903593547, 3535062472, 1799803217, 772984149, 895863112, 1899036275, 4187322100, 101856048, 234650315, 3183125617, 3190039692, 525584357, 1286834489, 455810374, 1869181575, 922673938, 3877430102, 3422391938, 1414347295, 1971054608, 3061798054, 830555096, 2822905141, 167033190, 1079139428, 4210126723, 3593797804, 429192890, 372093950, 1779187770, 3312189287, 204349348, 452421568, 2800540462, 3733109044, 1235082423, 1765319556, 3174729780, 3762994475, 3171962488, 442160826, 198349622, 45942637, 1324086311, 2901868599, 678860040, 3812229107, 19936821, 1119590141, 3640121682, 3545931032, 2102949142, 2828208598, 3603378023, 4135048896

5.5.3. The Table V2
5.5.3. 表V2

1629829892, 282540176, 2794583710, 496504798, 2990494426, 3070701851, 2575963183, 4094823972, 2775723650, 4079480416, 176028725, 2246241423, 3732217647, 2196843075, 1306949278, 4170992780, 4039345809, 3209664269, 3387499533, 293063229, 3660290503, 2648440860, 2531406539, 3537879412, 773374739, 4184691853, 1804207821, 3347126643, 3479377103, 3970515774,

1629829892, 282540176, 2794583710, 496504798, 2990494426, 3070701851, 2575963183, 4094823972, 2775723650, 4079480416, 176028725, 2246241423, 3732217647, 2196843075, 1306949278, 4170992780, 4039345809, 3209664269, 3387499533, 293063229, 3660290503, 2648440860, 2531406539, 3537879412, 773374739, 4184691853, 1804207821, 3347126643, 3479377103, 3970515774,

1891731298, 2368003842, 3537588307, 2969158410, 4230745262, 831906319, 2935838131, 264029468, 120852739, 3200326460, 355445271, 2296305141, 1566296040, 1760127056, 20073893, 3427103620, 2866979760, 2359075957, 2025314291, 1725696734, 3346087406, 2690756527, 99815156, 4248519977, 2253762642, 3274144518, 598024568, 3299672435, 556579346, 4121041856, 2896948975, 3620123492, 918453629, 3249461198, 2231414958, 3803272287, 3657597946, 2588911389, 242262274, 1725007475, 2026427718, 46776484, 2873281403, 2919275846, 3177933051, 1918859160, 2517854537, 1857818511, 3234262050, 479353687, 200201308, 2801945841, 1621715769, 483977159, 423502325, 3689396064, 1850168397, 3359959416, 3459831930, 841488699, 3570506095, 930267420, 1564520841, 2505122797, 593824107, 1116572080, 819179184, 3139123629, 1414339336, 1076360795, 512403845, 177759256, 1701060666, 2239736419, 515179302, 2935012727, 3821357612, 1376520851, 2700745271, 966853647, 1041862223, 715860553, 171592961, 1607044257, 1227236688, 3647136358, 1417559141, 4087067551, 2241705880, 4194136288, 1439041934, 20464430, 119668151, 2021257232, 2551262694, 1381539058, 4082839035, 498179069, 311508499, 3580908637, 2889149671, 142719814, 1232184754, 3356662582, 2973775623, 1469897084, 1728205304, 1415793613, 50111003, 3133413359, 4074115275, 2710540611, 2700083070, 2457757663, 2612845330, 3775943755, 2469309260, 2560142753, 3020996369, 1691667711, 4219602776, 1687672168, 1017921622, 2307642321, 368711460, 3282925988, 213208029, 4150757489, 3443211944, 2846101972, 4106826684, 4272438675, 2199416468, 3710621281, 497564971, 285138276, 765042313, 916220877, 3402623607, 2768784621, 1722849097, 3386397442, 487920061, 3569027007, 3424544196, 217781973, 2356938519, 3252429414, 145109750, 2692588106, 2454747135, 1299493354, 4120241887, 2088917094, 932304329, 1442609203, 952586974, 3509186750, 753369054, 854421006, 1954046388, 2708927882, 4047539230, 3048925996, 1667505809, 805166441, 1182069088, 4265546268, 4215029527, 3374748959, 373532666, 2454243090, 2371530493, 3651087521, 2619878153, 1651809518, 1553646893, 1227452842, 703887512, 3696674163, 2552507603, 2635912901, 895130484, 3287782244, 3098973502, 990078774, 3780326506, 2290845203, 41729428, 1949580860, 2283959805, 1036946170, 1694887523, 4880696, 466000198, 2765355283, 3318686998, 1266458025, 3919578154, 3545413527, 2627009988, 3744680394, 1696890173, 3250684705, 4142417708, 915739411, 3308488877, 1289361460, 2942552331, 1169105979, 3342228712, 698560958, 1356041230, 2401944293, 107705232, 3701895363, 903928723, 3646581385, 844950914, 1944371367, 3863894844, 2946773319, 1972431613, 1706989237, 29917467, 3497665928

1891731298, 2368003842, 3537588307, 2969158410, 4230745262, 831906319, 2935838131, 264029468, 120852739, 3200326460, 355445271, 2296305141, 1566296040, 1760127056, 20073893, 3427103620, 2866979760, 2359075957, 2025314291, 1725696734, 3346087406, 2690756527, 99815156, 4248519977, 2253762642, 3274144518, 598024568, 3299672435, 556579346, 4121041856, 2896948975, 3620123492, 918453629, 3249461198, 2231414958, 3803272287, 3657597946, 2588911389, 242262274, 1725007475, 2026427718, 46776484, 2873281403, 2919275846, 3177933051, 1918859160, 2517854537, 1857818511, 3234262050, 479353687, 200201308, 2801945841, 1621715769, 483977159, 423502325, 3689396064, 1850168397, 3359959416, 3459831930, 841488699, 3570506095, 930267420, 1564520841, 2505122797, 593824107, 1116572080, 819179184, 3139123629, 1414339336, 1076360795, 512403845, 177759256, 1701060666, 2239736419, 515179302, 2935012727, 3821357612, 1376520851, 2700745271, 966853647, 1041862223, 715860553, 171592961, 1607044257, 1227236688, 3647136358, 1417559141, 4087067551, 2241705880, 4194136288, 1439041934, 20464430, 119668151, 2021257232, 2551262694, 1381539058, 4082839035, 498179069, 311508499, 3580908637, 2889149671, 142719814, 1232184754, 3356662582, 2973775623, 1469897084, 1728205304, 1415793613, 50111003, 3133413359, 4074115275, 2710540611, 2700083070, 2457757663, 2612845330, 3775943755, 2469309260, 2560142753, 3020996369, 1691667711, 4219602776, 1687672168, 1017921622, 2307642321, 368711460, 3282925988, 213208029, 4150757489, 3443211944, 2846101972, 4106826684, 4272438675, 2199416468, 3710621281, 497564971, 285138276, 765042313, 916220877, 3402623607, 2768784621, 1722849097, 3386397442, 487920061, 3569027007, 3424544196, 217781973, 2356938519, 3252429414, 145109750, 2692588106, 2454747135, 1299493354, 4120241887, 2088917094, 932304329, 1442609203, 952586974, 3509186750, 753369054, 854421006, 1954046388, 2708927882, 4047539230, 3048925996, 1667505809, 805166441, 1182069088, 4265546268, 4215029527, 3374748959, 373532666, 2454243090, 2371530493, 3651087521, 2619878153, 1651809518, 1553646893, 1227452842, 703887512, 3696674163, 2552507603, 2635912901, 895130484, 3287782244, 3098973502, 990078774, 3780326506, 2290845203, 41729428, 1949580860, 2283959805, 1036946170, 1694887523, 4880696, 466000198, 2765355283, 3318686998, 1266458025, 3919578154, 3545413527, 2627009988, 3744680394, 1696890173, 3250684705, 4142417708, 915739411, 3308488877, 1289361460, 2942552331, 1169105979, 3342228712, 698560958, 1356041230, 2401944293, 107705232, 3701895363, 903928723, 3646581385, 844950914, 1944371367, 3863894844, 2946773319, 1972431613, 1706989237, 29917467, 3497665928

5.5.4. The Table V3
5.5.4. 表V3

1191369816, 744902811, 2539772235, 3213192037, 3286061266, 1200571165, 2463281260, 754888894, 714651270, 1968220972, 3628497775, 1277626456, 1493398934, 364289757, 2055487592, 3913468088, 2930259465, 902504567, 3967050355, 2056499403, 692132390, 186386657, 832834706, 859795816, 1283120926, 2253183716, 3003475205, 1755803552, 2239315142, 4271056352, 2184848469, 769228092, 1249230754, 1193269205, 2660094102, 642979613, 1687087994, 2726106182, 446402913, 4122186606, 3771347282, 37667136, 192775425, 3578702187, 1952659096, 3989584400, 3069013882, 2900516158, 4045316336, 3057163251, 1702104819, 4116613420, 3575472384, 2674023117, 1409126723, 3215095429, 1430726429, 2544497368, 1029565676, 1855801827, 4262184627, 1854326881, 2906728593, 3277836557, 2787697002, 2787333385, 3105430738, 2477073192, 748038573, 1088396515, 1611204853, 201964005, 3745818380, 3654683549, 3816120877, 3915783622, 2563198722, 1181149055, 33158084, 3723047845, 3790270906, 3832415204, 2959617497, 372900708, 1286738499, 1932439099, 3677748309, 2454711182, 2757856469, 2134027055, 2780052465, 3190347618, 3758510138, 3626329451, 1120743107, 1623585693, 1389834102, 2719230375, 3038609003, 462617590, 260254189, 3706349764, 2556762744, 2874272296, 2502399286, 4216263978, 2683431180, 2168560535, 3561507175, 668095726, 680412330, 3726693946, 4180630637, 3335170953, 942140968, 2711851085, 2059233412, 4265696278, 3204373534, 232855056, 881788313, 2258252172, 2043595984, 3758795150, 3615341325, 2138837681, 1351208537, 2923692473, 3402482785, 2105383425, 2346772751, 499245323, 3417846006, 2366116814, 2543090583, 1828551634, 3148696244, 3853884867, 1364737681, 2200687771, 2689775688, 232720625, 4071657318, 2671968983, 3531415031, 1212852141, 867923311, 3740109711, 1923146533, 3237071777, 3100729255, 3247856816, 906742566, 4047640575, 4007211572, 3495700105, 1171285262, 2835682655, 1634301229, 3115169925, 2289874706, 2252450179, 944880097, 371933491, 1649074501, 2208617414, 2524305981, 2496569844, 2667037160, 1257550794, 3399219045, 3194894295, 1643249887, 342911473, 891025733, 3146861835, 3789181526, 938847812, 1854580183, 2112653794, 2960702988, 1238603378, 2205280635, 1666784014, 2520274614, 3355493726, 2310872278, 3153920489, 2745882591, 1200203158, 3033612415, 2311650167, 1048129133, 4206710184, 4209176741, 2640950279, 2096382177, 4116899089, 3631017851, 4104488173, 1857650503, 3801102932, 445806934, 3055654640, 897898279, 3234007399, 1325494930, 2982247189, 1619020475, 2720040856, 885096170, 3485255499, 2983202469, 3891011124, 546522756, 1524439205, 2644317889, 2170076800, 2969618716, 961183518, 1081831074, 1037015347, 3289016286, 2331748669, 620887395, 303042654, 3990027945, 1562756376, 3413341792, 2059647769,

1191369816, 744902811, 2539772235, 3213192037, 3286061266, 1200571165, 2463281260, 754888894, 714651270, 1968220972, 3628497775, 1277626456, 1493398934, 364289757, 2055487592, 3913468088, 2930259465, 902504567, 3967050355, 2056499403, 692132390, 186386657, 832834706, 859795816, 1283120926, 2253183716, 3003475205, 1755803552, 2239315142, 4271056352, 2184848469, 769228092, 1249230754, 1193269205, 2660094102, 642979613, 1687087994, 2726106182, 446402913, 4122186606, 3771347282, 37667136, 192775425, 3578702187, 1952659096, 3989584400, 3069013882, 2900516158, 4045316336, 3057163251, 1702104819, 4116613420, 3575472384, 2674023117, 1409126723, 3215095429, 1430726429, 2544497368, 1029565676, 1855801827, 4262184627, 1854326881, 2906728593, 3277836557, 2787697002, 2787333385, 3105430738, 2477073192, 748038573, 1088396515, 1611204853, 201964005, 3745818380, 3654683549, 3816120877, 3915783622, 2563198722, 1181149055, 33158084, 3723047845, 3790270906, 3832415204, 2959617497, 372900708, 1286738499, 1932439099, 3677748309, 2454711182, 2757856469, 2134027055, 2780052465, 3190347618, 3758510138, 3626329451, 1120743107, 1623585693, 1389834102, 2719230375, 3038609003, 462617590, 260254189, 3706349764, 2556762744, 2874272296, 2502399286, 4216263978, 2683431180, 2168560535, 3561507175, 668095726, 680412330, 3726693946, 4180630637, 3335170953, 942140968, 2711851085, 2059233412, 4265696278, 3204373534, 232855056, 881788313, 2258252172, 2043595984, 3758795150, 3615341325, 2138837681, 1351208537, 2923692473, 3402482785, 2105383425, 2346772751, 499245323, 3417846006, 2366116814, 2543090583, 1828551634, 3148696244, 3853884867, 1364737681, 2200687771, 2689775688, 232720625, 4071657318, 2671968983, 3531415031, 1212852141, 867923311, 3740109711, 1923146533, 3237071777, 3100729255, 3247856816, 906742566, 4047640575, 4007211572, 3495700105, 1171285262, 2835682655, 1634301229, 3115169925, 2289874706, 2252450179, 944880097, 371933491, 1649074501, 2208617414, 2524305981, 2496569844, 2667037160, 1257550794, 3399219045, 3194894295, 1643249887, 342911473, 891025733, 3146861835, 3789181526, 938847812, 1854580183, 2112653794, 2960702988, 1238603378, 2205280635, 1666784014, 2520274614, 3355493726, 2310872278, 3153920489, 2745882591, 1200203158, 3033612415, 2311650167, 1048129133, 4206710184, 4209176741, 2640950279, 2096382177, 4116899089, 3631017851, 4104488173, 1857650503, 3801102932, 445806934, 3055654640, 897898279, 3234007399, 1325494930, 2982247189, 1619020475, 2720040856, 885096170, 3485255499, 2983202469, 3891011124, 546522756, 1524439205, 2644317889, 2170076800, 2969618716, 961183518, 1081831074, 1037015347, 3289016286, 2331748669, 620887395, 303042654, 3990027945, 1562756376, 3413341792, 2059647769,

2823844432, 674595301, 2457639984, 4076754716, 2447737904, 1583323324, 625627134, 3076006391, 345777990, 1684954145, 879227329, 3436182180, 1522273219, 3802543817, 1456017040, 1897819847, 2970081129, 1382576028, 3820044861, 1044428167, 612252599, 3340478395, 2150613904, 3397625662, 3573635640, 3432275192

2823844432, 674595301, 2457639984, 4076754716, 2447737904, 1583323324, 625627134, 3076006391, 345777990, 1684954145, 879227329, 3436182180, 1522273219, 3802543817, 1456017040, 1897819847, 2970081129, 1382576028, 3820044861, 1044428167, 612252599, 3340478395, 2150613904, 3397625662, 3573635640, 3432275192

5.6. Systematic Indices and Other Parameters
5.6. 系统指数和其他参数

Table 2 below specifies the supported values of K'. The table also specifies for each supported value of K' the systematic index J(K'), the number H(K') of HDPC symbols, the number S(K') of LDPC symbols, and the number W(K') of LT symbols. For each value of K', the corresponding values of S(K') and W(K') are prime numbers.

下表2规定了K'的支持值。该表还为K'的每个支持值指定了系统索引J(K')、HDPC符号的数量H(K')、LDPC符号的数量S(K')和LT符号的数量W(K')。对于K'的每个值,S(K')和W(K')的对应值是素数。

The systematic index J(K') is designed to have the property that the set of source symbol tuples (d[0], a[0], b[0], d1[0], a1[0], b1[0]), ..., (d[K'-1], a[K'-1], b[K'-1], d1[K'-1], a1[K'-1], b1[K'-1]) are such that the L intermediate symbols are uniquely defined, i.e., the matrix A in Figure 6 has full rank and is therefore invertible.

系统索引J(K')被设计为具有这样的特性:源符号元组集(d[0]、a[0]、b[0]、d1[0]、a1[0]、b1[0]、…、(d[K'-1]、a[K'-1]、b[K'-1]、d1[K'-1]、b1[K'-1])使得L个中间符号被唯一地定义,即,图6中的矩阵a具有满秩并且因此是可逆的。

                 +-------+-------+-------+-------+-------+
                 | K'    | J(K') | S(K') | H(K') | W(K') |
                 +-------+-------+-------+-------+-------+
                 | 10    | 254   | 7     | 10    | 17    |
                 +-------+-------+-------+-------+-------+
                 | 12    | 630   | 7     | 10    | 19    |
                 +-------+-------+-------+-------+-------+
                 | 18    | 682   | 11    | 10    | 29    |
                 +-------+-------+-------+-------+-------+
                 | 20    | 293   | 11    | 10    | 31    |
                 +-------+-------+-------+-------+-------+
                 | 26    | 80    | 11    | 10    | 37    |
                 +-------+-------+-------+-------+-------+
                 | 30    | 566   | 11    | 10    | 41    |
                 +-------+-------+-------+-------+-------+
                 | 32    | 860   | 11    | 10    | 43    |
                 +-------+-------+-------+-------+-------+
                 | 36    | 267   | 11    | 10    | 47    |
                 +-------+-------+-------+-------+-------+
                 | 42    | 822   | 11    | 10    | 53    |
                 +-------+-------+-------+-------+-------+
                 | 46    | 506   | 13    | 10    | 59    |
                 +-------+-------+-------+-------+-------+
                 | 48    | 589   | 13    | 10    | 61    |
                 +-------+-------+-------+-------+-------+
                 | 49    | 87    | 13    | 10    | 61    |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | K'    | J(K') | S(K') | H(K') | W(K') |
                 +-------+-------+-------+-------+-------+
                 | 10    | 254   | 7     | 10    | 17    |
                 +-------+-------+-------+-------+-------+
                 | 12    | 630   | 7     | 10    | 19    |
                 +-------+-------+-------+-------+-------+
                 | 18    | 682   | 11    | 10    | 29    |
                 +-------+-------+-------+-------+-------+
                 | 20    | 293   | 11    | 10    | 31    |
                 +-------+-------+-------+-------+-------+
                 | 26    | 80    | 11    | 10    | 37    |
                 +-------+-------+-------+-------+-------+
                 | 30    | 566   | 11    | 10    | 41    |
                 +-------+-------+-------+-------+-------+
                 | 32    | 860   | 11    | 10    | 43    |
                 +-------+-------+-------+-------+-------+
                 | 36    | 267   | 11    | 10    | 47    |
                 +-------+-------+-------+-------+-------+
                 | 42    | 822   | 11    | 10    | 53    |
                 +-------+-------+-------+-------+-------+
                 | 46    | 506   | 13    | 10    | 59    |
                 +-------+-------+-------+-------+-------+
                 | 48    | 589   | 13    | 10    | 61    |
                 +-------+-------+-------+-------+-------+
                 | 49    | 87    | 13    | 10    | 61    |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 55    | 520   | 13    | 10    | 67    |
                 +-------+-------+-------+-------+-------+
                 | 60    | 159   | 13    | 10    | 71    |
                 +-------+-------+-------+-------+-------+
                 | 62    | 235   | 13    | 10    | 73    |
                 +-------+-------+-------+-------+-------+
                 | 69    | 157   | 13    | 10    | 79    |
                 +-------+-------+-------+-------+-------+
                 | 75    | 502   | 17    | 10    | 89    |
                 +-------+-------+-------+-------+-------+
                 | 84    | 334   | 17    | 10    | 97    |
                 +-------+-------+-------+-------+-------+
                 | 88    | 583   | 17    | 10    | 101   |
                 +-------+-------+-------+-------+-------+
                 | 91    | 66    | 17    | 10    | 103   |
                 +-------+-------+-------+-------+-------+
                 | 95    | 352   | 17    | 10    | 107   |
                 +-------+-------+-------+-------+-------+
                 | 97    | 365   | 17    | 10    | 109   |
                 +-------+-------+-------+-------+-------+
                 | 101   | 562   | 17    | 10    | 113   |
                 +-------+-------+-------+-------+-------+
                 | 114   | 5     | 19    | 10    | 127   |
                 +-------+-------+-------+-------+-------+
                 | 119   | 603   | 19    | 10    | 131   |
                 +-------+-------+-------+-------+-------+
                 | 125   | 721   | 19    | 10    | 137   |
                 +-------+-------+-------+-------+-------+
                 | 127   | 28    | 19    | 10    | 139   |
                 +-------+-------+-------+-------+-------+
                 | 138   | 660   | 19    | 10    | 149   |
                 +-------+-------+-------+-------+-------+
                 | 140   | 829   | 19    | 10    | 151   |
                 +-------+-------+-------+-------+-------+
                 | 149   | 900   | 23    | 10    | 163   |
                 +-------+-------+-------+-------+-------+
                 | 153   | 930   | 23    | 10    | 167   |
                 +-------+-------+-------+-------+-------+
                 | 160   | 814   | 23    | 10    | 173   |
                 +-------+-------+-------+-------+-------+
                 | 166   | 661   | 23    | 10    | 179   |
                 +-------+-------+-------+-------+-------+
                 | 168   | 693   | 23    | 10    | 181   |
                 +-------+-------+-------+-------+-------+
                 | 179   | 780   | 23    | 10    | 191   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 55    | 520   | 13    | 10    | 67    |
                 +-------+-------+-------+-------+-------+
                 | 60    | 159   | 13    | 10    | 71    |
                 +-------+-------+-------+-------+-------+
                 | 62    | 235   | 13    | 10    | 73    |
                 +-------+-------+-------+-------+-------+
                 | 69    | 157   | 13    | 10    | 79    |
                 +-------+-------+-------+-------+-------+
                 | 75    | 502   | 17    | 10    | 89    |
                 +-------+-------+-------+-------+-------+
                 | 84    | 334   | 17    | 10    | 97    |
                 +-------+-------+-------+-------+-------+
                 | 88    | 583   | 17    | 10    | 101   |
                 +-------+-------+-------+-------+-------+
                 | 91    | 66    | 17    | 10    | 103   |
                 +-------+-------+-------+-------+-------+
                 | 95    | 352   | 17    | 10    | 107   |
                 +-------+-------+-------+-------+-------+
                 | 97    | 365   | 17    | 10    | 109   |
                 +-------+-------+-------+-------+-------+
                 | 101   | 562   | 17    | 10    | 113   |
                 +-------+-------+-------+-------+-------+
                 | 114   | 5     | 19    | 10    | 127   |
                 +-------+-------+-------+-------+-------+
                 | 119   | 603   | 19    | 10    | 131   |
                 +-------+-------+-------+-------+-------+
                 | 125   | 721   | 19    | 10    | 137   |
                 +-------+-------+-------+-------+-------+
                 | 127   | 28    | 19    | 10    | 139   |
                 +-------+-------+-------+-------+-------+
                 | 138   | 660   | 19    | 10    | 149   |
                 +-------+-------+-------+-------+-------+
                 | 140   | 829   | 19    | 10    | 151   |
                 +-------+-------+-------+-------+-------+
                 | 149   | 900   | 23    | 10    | 163   |
                 +-------+-------+-------+-------+-------+
                 | 153   | 930   | 23    | 10    | 167   |
                 +-------+-------+-------+-------+-------+
                 | 160   | 814   | 23    | 10    | 173   |
                 +-------+-------+-------+-------+-------+
                 | 166   | 661   | 23    | 10    | 179   |
                 +-------+-------+-------+-------+-------+
                 | 168   | 693   | 23    | 10    | 181   |
                 +-------+-------+-------+-------+-------+
                 | 179   | 780   | 23    | 10    | 191   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 181   | 605   | 23    | 10    | 193   |
                 +-------+-------+-------+-------+-------+
                 | 185   | 551   | 23    | 10    | 197   |
                 +-------+-------+-------+-------+-------+
                 | 187   | 777   | 23    | 10    | 199   |
                 +-------+-------+-------+-------+-------+
                 | 200   | 491   | 23    | 10    | 211   |
                 +-------+-------+-------+-------+-------+
                 | 213   | 396   | 23    | 10    | 223   |
                 +-------+-------+-------+-------+-------+
                 | 217   | 764   | 29    | 10    | 233   |
                 +-------+-------+-------+-------+-------+
                 | 225   | 843   | 29    | 10    | 241   |
                 +-------+-------+-------+-------+-------+
                 | 236   | 646   | 29    | 10    | 251   |
                 +-------+-------+-------+-------+-------+
                 | 242   | 557   | 29    | 10    | 257   |
                 +-------+-------+-------+-------+-------+
                 | 248   | 608   | 29    | 10    | 263   |
                 +-------+-------+-------+-------+-------+
                 | 257   | 265   | 29    | 10    | 271   |
                 +-------+-------+-------+-------+-------+
                 | 263   | 505   | 29    | 10    | 277   |
                 +-------+-------+-------+-------+-------+
                 | 269   | 722   | 29    | 10    | 283   |
                 +-------+-------+-------+-------+-------+
                 | 280   | 263   | 29    | 10    | 293   |
                 +-------+-------+-------+-------+-------+
                 | 295   | 999   | 29    | 10    | 307   |
                 +-------+-------+-------+-------+-------+
                 | 301   | 874   | 29    | 10    | 313   |
                 +-------+-------+-------+-------+-------+
                 | 305   | 160   | 29    | 10    | 317   |
                 +-------+-------+-------+-------+-------+
                 | 324   | 575   | 31    | 10    | 337   |
                 +-------+-------+-------+-------+-------+
                 | 337   | 210   | 31    | 10    | 349   |
                 +-------+-------+-------+-------+-------+
                 | 341   | 513   | 31    | 10    | 353   |
                 +-------+-------+-------+-------+-------+
                 | 347   | 503   | 31    | 10    | 359   |
                 +-------+-------+-------+-------+-------+
                 | 355   | 558   | 31    | 10    | 367   |
                 +-------+-------+-------+-------+-------+
                 | 362   | 932   | 31    | 10    | 373   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 181   | 605   | 23    | 10    | 193   |
                 +-------+-------+-------+-------+-------+
                 | 185   | 551   | 23    | 10    | 197   |
                 +-------+-------+-------+-------+-------+
                 | 187   | 777   | 23    | 10    | 199   |
                 +-------+-------+-------+-------+-------+
                 | 200   | 491   | 23    | 10    | 211   |
                 +-------+-------+-------+-------+-------+
                 | 213   | 396   | 23    | 10    | 223   |
                 +-------+-------+-------+-------+-------+
                 | 217   | 764   | 29    | 10    | 233   |
                 +-------+-------+-------+-------+-------+
                 | 225   | 843   | 29    | 10    | 241   |
                 +-------+-------+-------+-------+-------+
                 | 236   | 646   | 29    | 10    | 251   |
                 +-------+-------+-------+-------+-------+
                 | 242   | 557   | 29    | 10    | 257   |
                 +-------+-------+-------+-------+-------+
                 | 248   | 608   | 29    | 10    | 263   |
                 +-------+-------+-------+-------+-------+
                 | 257   | 265   | 29    | 10    | 271   |
                 +-------+-------+-------+-------+-------+
                 | 263   | 505   | 29    | 10    | 277   |
                 +-------+-------+-------+-------+-------+
                 | 269   | 722   | 29    | 10    | 283   |
                 +-------+-------+-------+-------+-------+
                 | 280   | 263   | 29    | 10    | 293   |
                 +-------+-------+-------+-------+-------+
                 | 295   | 999   | 29    | 10    | 307   |
                 +-------+-------+-------+-------+-------+
                 | 301   | 874   | 29    | 10    | 313   |
                 +-------+-------+-------+-------+-------+
                 | 305   | 160   | 29    | 10    | 317   |
                 +-------+-------+-------+-------+-------+
                 | 324   | 575   | 31    | 10    | 337   |
                 +-------+-------+-------+-------+-------+
                 | 337   | 210   | 31    | 10    | 349   |
                 +-------+-------+-------+-------+-------+
                 | 341   | 513   | 31    | 10    | 353   |
                 +-------+-------+-------+-------+-------+
                 | 347   | 503   | 31    | 10    | 359   |
                 +-------+-------+-------+-------+-------+
                 | 355   | 558   | 31    | 10    | 367   |
                 +-------+-------+-------+-------+-------+
                 | 362   | 932   | 31    | 10    | 373   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 368   | 404   | 31    | 10    | 379   |
                 +-------+-------+-------+-------+-------+
                 | 372   | 520   | 37    | 10    | 389   |
                 +-------+-------+-------+-------+-------+
                 | 380   | 846   | 37    | 10    | 397   |
                 +-------+-------+-------+-------+-------+
                 | 385   | 485   | 37    | 10    | 401   |
                 +-------+-------+-------+-------+-------+
                 | 393   | 728   | 37    | 10    | 409   |
                 +-------+-------+-------+-------+-------+
                 | 405   | 554   | 37    | 10    | 421   |
                 +-------+-------+-------+-------+-------+
                 | 418   | 471   | 37    | 10    | 433   |
                 +-------+-------+-------+-------+-------+
                 | 428   | 641   | 37    | 10    | 443   |
                 +-------+-------+-------+-------+-------+
                 | 434   | 732   | 37    | 10    | 449   |
                 +-------+-------+-------+-------+-------+
                 | 447   | 193   | 37    | 10    | 461   |
                 +-------+-------+-------+-------+-------+
                 | 453   | 934   | 37    | 10    | 467   |
                 +-------+-------+-------+-------+-------+
                 | 466   | 864   | 37    | 10    | 479   |
                 +-------+-------+-------+-------+-------+
                 | 478   | 790   | 37    | 10    | 491   |
                 +-------+-------+-------+-------+-------+
                 | 486   | 912   | 37    | 10    | 499   |
                 +-------+-------+-------+-------+-------+
                 | 491   | 617   | 37    | 10    | 503   |
                 +-------+-------+-------+-------+-------+
                 | 497   | 587   | 37    | 10    | 509   |
                 +-------+-------+-------+-------+-------+
                 | 511   | 800   | 37    | 10    | 523   |
                 +-------+-------+-------+-------+-------+
                 | 526   | 923   | 41    | 10    | 541   |
                 +-------+-------+-------+-------+-------+
                 | 532   | 998   | 41    | 10    | 547   |
                 +-------+-------+-------+-------+-------+
                 | 542   | 92    | 41    | 10    | 557   |
                 +-------+-------+-------+-------+-------+
                 | 549   | 497   | 41    | 10    | 563   |
                 +-------+-------+-------+-------+-------+
                 | 557   | 559   | 41    | 10    | 571   |
                 +-------+-------+-------+-------+-------+
                 | 563   | 667   | 41    | 10    | 577   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 368   | 404   | 31    | 10    | 379   |
                 +-------+-------+-------+-------+-------+
                 | 372   | 520   | 37    | 10    | 389   |
                 +-------+-------+-------+-------+-------+
                 | 380   | 846   | 37    | 10    | 397   |
                 +-------+-------+-------+-------+-------+
                 | 385   | 485   | 37    | 10    | 401   |
                 +-------+-------+-------+-------+-------+
                 | 393   | 728   | 37    | 10    | 409   |
                 +-------+-------+-------+-------+-------+
                 | 405   | 554   | 37    | 10    | 421   |
                 +-------+-------+-------+-------+-------+
                 | 418   | 471   | 37    | 10    | 433   |
                 +-------+-------+-------+-------+-------+
                 | 428   | 641   | 37    | 10    | 443   |
                 +-------+-------+-------+-------+-------+
                 | 434   | 732   | 37    | 10    | 449   |
                 +-------+-------+-------+-------+-------+
                 | 447   | 193   | 37    | 10    | 461   |
                 +-------+-------+-------+-------+-------+
                 | 453   | 934   | 37    | 10    | 467   |
                 +-------+-------+-------+-------+-------+
                 | 466   | 864   | 37    | 10    | 479   |
                 +-------+-------+-------+-------+-------+
                 | 478   | 790   | 37    | 10    | 491   |
                 +-------+-------+-------+-------+-------+
                 | 486   | 912   | 37    | 10    | 499   |
                 +-------+-------+-------+-------+-------+
                 | 491   | 617   | 37    | 10    | 503   |
                 +-------+-------+-------+-------+-------+
                 | 497   | 587   | 37    | 10    | 509   |
                 +-------+-------+-------+-------+-------+
                 | 511   | 800   | 37    | 10    | 523   |
                 +-------+-------+-------+-------+-------+
                 | 526   | 923   | 41    | 10    | 541   |
                 +-------+-------+-------+-------+-------+
                 | 532   | 998   | 41    | 10    | 547   |
                 +-------+-------+-------+-------+-------+
                 | 542   | 92    | 41    | 10    | 557   |
                 +-------+-------+-------+-------+-------+
                 | 549   | 497   | 41    | 10    | 563   |
                 +-------+-------+-------+-------+-------+
                 | 557   | 559   | 41    | 10    | 571   |
                 +-------+-------+-------+-------+-------+
                 | 563   | 667   | 41    | 10    | 577   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 573   | 912   | 41    | 10    | 587   |
                 +-------+-------+-------+-------+-------+
                 | 580   | 262   | 41    | 10    | 593   |
                 +-------+-------+-------+-------+-------+
                 | 588   | 152   | 41    | 10    | 601   |
                 +-------+-------+-------+-------+-------+
                 | 594   | 526   | 41    | 10    | 607   |
                 +-------+-------+-------+-------+-------+
                 | 600   | 268   | 41    | 10    | 613   |
                 +-------+-------+-------+-------+-------+
                 | 606   | 212   | 41    | 10    | 619   |
                 +-------+-------+-------+-------+-------+
                 | 619   | 45    | 41    | 10    | 631   |
                 +-------+-------+-------+-------+-------+
                 | 633   | 898   | 43    | 10    | 647   |
                 +-------+-------+-------+-------+-------+
                 | 640   | 527   | 43    | 10    | 653   |
                 +-------+-------+-------+-------+-------+
                 | 648   | 558   | 43    | 10    | 661   |
                 +-------+-------+-------+-------+-------+
                 | 666   | 460   | 47    | 10    | 683   |
                 +-------+-------+-------+-------+-------+
                 | 675   | 5     | 47    | 10    | 691   |
                 +-------+-------+-------+-------+-------+
                 | 685   | 895   | 47    | 10    | 701   |
                 +-------+-------+-------+-------+-------+
                 | 693   | 996   | 47    | 10    | 709   |
                 +-------+-------+-------+-------+-------+
                 | 703   | 282   | 47    | 10    | 719   |
                 +-------+-------+-------+-------+-------+
                 | 718   | 513   | 47    | 10    | 733   |
                 +-------+-------+-------+-------+-------+
                 | 728   | 865   | 47    | 10    | 743   |
                 +-------+-------+-------+-------+-------+
                 | 736   | 870   | 47    | 10    | 751   |
                 +-------+-------+-------+-------+-------+
                 | 747   | 239   | 47    | 10    | 761   |
                 +-------+-------+-------+-------+-------+
                 | 759   | 452   | 47    | 10    | 773   |
                 +-------+-------+-------+-------+-------+
                 | 778   | 862   | 53    | 10    | 797   |
                 +-------+-------+-------+-------+-------+
                 | 792   | 852   | 53    | 10    | 811   |
                 +-------+-------+-------+-------+-------+
                 | 802   | 643   | 53    | 10    | 821   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 573   | 912   | 41    | 10    | 587   |
                 +-------+-------+-------+-------+-------+
                 | 580   | 262   | 41    | 10    | 593   |
                 +-------+-------+-------+-------+-------+
                 | 588   | 152   | 41    | 10    | 601   |
                 +-------+-------+-------+-------+-------+
                 | 594   | 526   | 41    | 10    | 607   |
                 +-------+-------+-------+-------+-------+
                 | 600   | 268   | 41    | 10    | 613   |
                 +-------+-------+-------+-------+-------+
                 | 606   | 212   | 41    | 10    | 619   |
                 +-------+-------+-------+-------+-------+
                 | 619   | 45    | 41    | 10    | 631   |
                 +-------+-------+-------+-------+-------+
                 | 633   | 898   | 43    | 10    | 647   |
                 +-------+-------+-------+-------+-------+
                 | 640   | 527   | 43    | 10    | 653   |
                 +-------+-------+-------+-------+-------+
                 | 648   | 558   | 43    | 10    | 661   |
                 +-------+-------+-------+-------+-------+
                 | 666   | 460   | 47    | 10    | 683   |
                 +-------+-------+-------+-------+-------+
                 | 675   | 5     | 47    | 10    | 691   |
                 +-------+-------+-------+-------+-------+
                 | 685   | 895   | 47    | 10    | 701   |
                 +-------+-------+-------+-------+-------+
                 | 693   | 996   | 47    | 10    | 709   |
                 +-------+-------+-------+-------+-------+
                 | 703   | 282   | 47    | 10    | 719   |
                 +-------+-------+-------+-------+-------+
                 | 718   | 513   | 47    | 10    | 733   |
                 +-------+-------+-------+-------+-------+
                 | 728   | 865   | 47    | 10    | 743   |
                 +-------+-------+-------+-------+-------+
                 | 736   | 870   | 47    | 10    | 751   |
                 +-------+-------+-------+-------+-------+
                 | 747   | 239   | 47    | 10    | 761   |
                 +-------+-------+-------+-------+-------+
                 | 759   | 452   | 47    | 10    | 773   |
                 +-------+-------+-------+-------+-------+
                 | 778   | 862   | 53    | 10    | 797   |
                 +-------+-------+-------+-------+-------+
                 | 792   | 852   | 53    | 10    | 811   |
                 +-------+-------+-------+-------+-------+
                 | 802   | 643   | 53    | 10    | 821   |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 811   | 543   | 53    | 10    | 829   |
                 +-------+-------+-------+-------+-------+
                 | 821   | 447   | 53    | 10    | 839   |
                 +-------+-------+-------+-------+-------+
                 | 835   | 321   | 53    | 10    | 853   |
                 +-------+-------+-------+-------+-------+
                 | 845   | 287   | 53    | 10    | 863   |
                 +-------+-------+-------+-------+-------+
                 | 860   | 12    | 53    | 10    | 877   |
                 +-------+-------+-------+-------+-------+
                 | 870   | 251   | 53    | 10    | 887   |
                 +-------+-------+-------+-------+-------+
                 | 891   | 30    | 53    | 10    | 907   |
                 +-------+-------+-------+-------+-------+
                 | 903   | 621   | 53    | 10    | 919   |
                 +-------+-------+-------+-------+-------+
                 | 913   | 555   | 53    | 10    | 929   |
                 +-------+-------+-------+-------+-------+
                 | 926   | 127   | 53    | 10    | 941   |
                 +-------+-------+-------+-------+-------+
                 | 938   | 400   | 53    | 10    | 953   |
                 +-------+-------+-------+-------+-------+
                 | 950   | 91    | 59    | 10    | 971   |
                 +-------+-------+-------+-------+-------+
                 | 963   | 916   | 59    | 10    | 983   |
                 +-------+-------+-------+-------+-------+
                 | 977   | 935   | 59    | 10    | 997   |
                 +-------+-------+-------+-------+-------+
                 | 989   | 691   | 59    | 10    | 1009  |
                 +-------+-------+-------+-------+-------+
                 | 1002  | 299   | 59    | 10    | 1021  |
                 +-------+-------+-------+-------+-------+
                 | 1020  | 282   | 59    | 10    | 1039  |
                 +-------+-------+-------+-------+-------+
                 | 1032  | 824   | 59    | 10    | 1051  |
                 +-------+-------+-------+-------+-------+
                 | 1050  | 536   | 59    | 11    | 1069  |
                 +-------+-------+-------+-------+-------+
                 | 1074  | 596   | 59    | 11    | 1093  |
                 +-------+-------+-------+-------+-------+
                 | 1085  | 28    | 59    | 11    | 1103  |
                 +-------+-------+-------+-------+-------+
                 | 1099  | 947   | 59    | 11    | 1117  |
                 +-------+-------+-------+-------+-------+
                 | 1111  | 162   | 59    | 11    | 1129  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 811   | 543   | 53    | 10    | 829   |
                 +-------+-------+-------+-------+-------+
                 | 821   | 447   | 53    | 10    | 839   |
                 +-------+-------+-------+-------+-------+
                 | 835   | 321   | 53    | 10    | 853   |
                 +-------+-------+-------+-------+-------+
                 | 845   | 287   | 53    | 10    | 863   |
                 +-------+-------+-------+-------+-------+
                 | 860   | 12    | 53    | 10    | 877   |
                 +-------+-------+-------+-------+-------+
                 | 870   | 251   | 53    | 10    | 887   |
                 +-------+-------+-------+-------+-------+
                 | 891   | 30    | 53    | 10    | 907   |
                 +-------+-------+-------+-------+-------+
                 | 903   | 621   | 53    | 10    | 919   |
                 +-------+-------+-------+-------+-------+
                 | 913   | 555   | 53    | 10    | 929   |
                 +-------+-------+-------+-------+-------+
                 | 926   | 127   | 53    | 10    | 941   |
                 +-------+-------+-------+-------+-------+
                 | 938   | 400   | 53    | 10    | 953   |
                 +-------+-------+-------+-------+-------+
                 | 950   | 91    | 59    | 10    | 971   |
                 +-------+-------+-------+-------+-------+
                 | 963   | 916   | 59    | 10    | 983   |
                 +-------+-------+-------+-------+-------+
                 | 977   | 935   | 59    | 10    | 997   |
                 +-------+-------+-------+-------+-------+
                 | 989   | 691   | 59    | 10    | 1009  |
                 +-------+-------+-------+-------+-------+
                 | 1002  | 299   | 59    | 10    | 1021  |
                 +-------+-------+-------+-------+-------+
                 | 1020  | 282   | 59    | 10    | 1039  |
                 +-------+-------+-------+-------+-------+
                 | 1032  | 824   | 59    | 10    | 1051  |
                 +-------+-------+-------+-------+-------+
                 | 1050  | 536   | 59    | 11    | 1069  |
                 +-------+-------+-------+-------+-------+
                 | 1074  | 596   | 59    | 11    | 1093  |
                 +-------+-------+-------+-------+-------+
                 | 1085  | 28    | 59    | 11    | 1103  |
                 +-------+-------+-------+-------+-------+
                 | 1099  | 947   | 59    | 11    | 1117  |
                 +-------+-------+-------+-------+-------+
                 | 1111  | 162   | 59    | 11    | 1129  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 1136  | 536   | 59    | 11    | 1153  |
                 +-------+-------+-------+-------+-------+
                 | 1152  | 1000  | 61    | 11    | 1171  |
                 +-------+-------+-------+-------+-------+
                 | 1169  | 251   | 61    | 11    | 1187  |
                 +-------+-------+-------+-------+-------+
                 | 1183  | 673   | 61    | 11    | 1201  |
                 +-------+-------+-------+-------+-------+
                 | 1205  | 559   | 61    | 11    | 1223  |
                 +-------+-------+-------+-------+-------+
                 | 1220  | 923   | 61    | 11    | 1237  |
                 +-------+-------+-------+-------+-------+
                 | 1236  | 81    | 67    | 11    | 1259  |
                 +-------+-------+-------+-------+-------+
                 | 1255  | 478   | 67    | 11    | 1277  |
                 +-------+-------+-------+-------+-------+
                 | 1269  | 198   | 67    | 11    | 1291  |
                 +-------+-------+-------+-------+-------+
                 | 1285  | 137   | 67    | 11    | 1307  |
                 +-------+-------+-------+-------+-------+
                 | 1306  | 75    | 67    | 11    | 1327  |
                 +-------+-------+-------+-------+-------+
                 | 1347  | 29    | 67    | 11    | 1367  |
                 +-------+-------+-------+-------+-------+
                 | 1361  | 231   | 67    | 11    | 1381  |
                 +-------+-------+-------+-------+-------+
                 | 1389  | 532   | 67    | 11    | 1409  |
                 +-------+-------+-------+-------+-------+
                 | 1404  | 58    | 67    | 11    | 1423  |
                 +-------+-------+-------+-------+-------+
                 | 1420  | 60    | 67    | 11    | 1439  |
                 +-------+-------+-------+-------+-------+
                 | 1436  | 964   | 71    | 11    | 1459  |
                 +-------+-------+-------+-------+-------+
                 | 1461  | 624   | 71    | 11    | 1483  |
                 +-------+-------+-------+-------+-------+
                 | 1477  | 502   | 71    | 11    | 1499  |
                 +-------+-------+-------+-------+-------+
                 | 1502  | 636   | 71    | 11    | 1523  |
                 +-------+-------+-------+-------+-------+
                 | 1522  | 986   | 71    | 11    | 1543  |
                 +-------+-------+-------+-------+-------+
                 | 1539  | 950   | 71    | 11    | 1559  |
                 +-------+-------+-------+-------+-------+
                 | 1561  | 735   | 73    | 11    | 1583  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 1136  | 536   | 59    | 11    | 1153  |
                 +-------+-------+-------+-------+-------+
                 | 1152  | 1000  | 61    | 11    | 1171  |
                 +-------+-------+-------+-------+-------+
                 | 1169  | 251   | 61    | 11    | 1187  |
                 +-------+-------+-------+-------+-------+
                 | 1183  | 673   | 61    | 11    | 1201  |
                 +-------+-------+-------+-------+-------+
                 | 1205  | 559   | 61    | 11    | 1223  |
                 +-------+-------+-------+-------+-------+
                 | 1220  | 923   | 61    | 11    | 1237  |
                 +-------+-------+-------+-------+-------+
                 | 1236  | 81    | 67    | 11    | 1259  |
                 +-------+-------+-------+-------+-------+
                 | 1255  | 478   | 67    | 11    | 1277  |
                 +-------+-------+-------+-------+-------+
                 | 1269  | 198   | 67    | 11    | 1291  |
                 +-------+-------+-------+-------+-------+
                 | 1285  | 137   | 67    | 11    | 1307  |
                 +-------+-------+-------+-------+-------+
                 | 1306  | 75    | 67    | 11    | 1327  |
                 +-------+-------+-------+-------+-------+
                 | 1347  | 29    | 67    | 11    | 1367  |
                 +-------+-------+-------+-------+-------+
                 | 1361  | 231   | 67    | 11    | 1381  |
                 +-------+-------+-------+-------+-------+
                 | 1389  | 532   | 67    | 11    | 1409  |
                 +-------+-------+-------+-------+-------+
                 | 1404  | 58    | 67    | 11    | 1423  |
                 +-------+-------+-------+-------+-------+
                 | 1420  | 60    | 67    | 11    | 1439  |
                 +-------+-------+-------+-------+-------+
                 | 1436  | 964   | 71    | 11    | 1459  |
                 +-------+-------+-------+-------+-------+
                 | 1461  | 624   | 71    | 11    | 1483  |
                 +-------+-------+-------+-------+-------+
                 | 1477  | 502   | 71    | 11    | 1499  |
                 +-------+-------+-------+-------+-------+
                 | 1502  | 636   | 71    | 11    | 1523  |
                 +-------+-------+-------+-------+-------+
                 | 1522  | 986   | 71    | 11    | 1543  |
                 +-------+-------+-------+-------+-------+
                 | 1539  | 950   | 71    | 11    | 1559  |
                 +-------+-------+-------+-------+-------+
                 | 1561  | 735   | 73    | 11    | 1583  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 1579  | 866   | 73    | 11    | 1601  |
                 +-------+-------+-------+-------+-------+
                 | 1600  | 203   | 73    | 11    | 1621  |
                 +-------+-------+-------+-------+-------+
                 | 1616  | 83    | 73    | 11    | 1637  |
                 +-------+-------+-------+-------+-------+
                 | 1649  | 14    | 73    | 11    | 1669  |
                 +-------+-------+-------+-------+-------+
                 | 1673  | 522   | 79    | 11    | 1699  |
                 +-------+-------+-------+-------+-------+
                 | 1698  | 226   | 79    | 11    | 1723  |
                 +-------+-------+-------+-------+-------+
                 | 1716  | 282   | 79    | 11    | 1741  |
                 +-------+-------+-------+-------+-------+
                 | 1734  | 88    | 79    | 11    | 1759  |
                 +-------+-------+-------+-------+-------+
                 | 1759  | 636   | 79    | 11    | 1783  |
                 +-------+-------+-------+-------+-------+
                 | 1777  | 860   | 79    | 11    | 1801  |
                 +-------+-------+-------+-------+-------+
                 | 1800  | 324   | 79    | 11    | 1823  |
                 +-------+-------+-------+-------+-------+
                 | 1824  | 424   | 79    | 11    | 1847  |
                 +-------+-------+-------+-------+-------+
                 | 1844  | 999   | 79    | 11    | 1867  |
                 +-------+-------+-------+-------+-------+
                 | 1863  | 682   | 83    | 11    | 1889  |
                 +-------+-------+-------+-------+-------+
                 | 1887  | 814   | 83    | 11    | 1913  |
                 +-------+-------+-------+-------+-------+
                 | 1906  | 979   | 83    | 11    | 1931  |
                 +-------+-------+-------+-------+-------+
                 | 1926  | 538   | 83    | 11    | 1951  |
                 +-------+-------+-------+-------+-------+
                 | 1954  | 278   | 83    | 11    | 1979  |
                 +-------+-------+-------+-------+-------+
                 | 1979  | 580   | 83    | 11    | 2003  |
                 +-------+-------+-------+-------+-------+
                 | 2005  | 773   | 83    | 11    | 2029  |
                 +-------+-------+-------+-------+-------+
                 | 2040  | 911   | 89    | 11    | 2069  |
                 +-------+-------+-------+-------+-------+
                 | 2070  | 506   | 89    | 11    | 2099  |
                 +-------+-------+-------+-------+-------+
                 | 2103  | 628   | 89    | 11    | 2131  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 1579  | 866   | 73    | 11    | 1601  |
                 +-------+-------+-------+-------+-------+
                 | 1600  | 203   | 73    | 11    | 1621  |
                 +-------+-------+-------+-------+-------+
                 | 1616  | 83    | 73    | 11    | 1637  |
                 +-------+-------+-------+-------+-------+
                 | 1649  | 14    | 73    | 11    | 1669  |
                 +-------+-------+-------+-------+-------+
                 | 1673  | 522   | 79    | 11    | 1699  |
                 +-------+-------+-------+-------+-------+
                 | 1698  | 226   | 79    | 11    | 1723  |
                 +-------+-------+-------+-------+-------+
                 | 1716  | 282   | 79    | 11    | 1741  |
                 +-------+-------+-------+-------+-------+
                 | 1734  | 88    | 79    | 11    | 1759  |
                 +-------+-------+-------+-------+-------+
                 | 1759  | 636   | 79    | 11    | 1783  |
                 +-------+-------+-------+-------+-------+
                 | 1777  | 860   | 79    | 11    | 1801  |
                 +-------+-------+-------+-------+-------+
                 | 1800  | 324   | 79    | 11    | 1823  |
                 +-------+-------+-------+-------+-------+
                 | 1824  | 424   | 79    | 11    | 1847  |
                 +-------+-------+-------+-------+-------+
                 | 1844  | 999   | 79    | 11    | 1867  |
                 +-------+-------+-------+-------+-------+
                 | 1863  | 682   | 83    | 11    | 1889  |
                 +-------+-------+-------+-------+-------+
                 | 1887  | 814   | 83    | 11    | 1913  |
                 +-------+-------+-------+-------+-------+
                 | 1906  | 979   | 83    | 11    | 1931  |
                 +-------+-------+-------+-------+-------+
                 | 1926  | 538   | 83    | 11    | 1951  |
                 +-------+-------+-------+-------+-------+
                 | 1954  | 278   | 83    | 11    | 1979  |
                 +-------+-------+-------+-------+-------+
                 | 1979  | 580   | 83    | 11    | 2003  |
                 +-------+-------+-------+-------+-------+
                 | 2005  | 773   | 83    | 11    | 2029  |
                 +-------+-------+-------+-------+-------+
                 | 2040  | 911   | 89    | 11    | 2069  |
                 +-------+-------+-------+-------+-------+
                 | 2070  | 506   | 89    | 11    | 2099  |
                 +-------+-------+-------+-------+-------+
                 | 2103  | 628   | 89    | 11    | 2131  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 2125  | 282   | 89    | 11    | 2153  |
                 +-------+-------+-------+-------+-------+
                 | 2152  | 309   | 89    | 11    | 2179  |
                 +-------+-------+-------+-------+-------+
                 | 2195  | 858   | 89    | 11    | 2221  |
                 +-------+-------+-------+-------+-------+
                 | 2217  | 442   | 89    | 11    | 2243  |
                 +-------+-------+-------+-------+-------+
                 | 2247  | 654   | 89    | 11    | 2273  |
                 +-------+-------+-------+-------+-------+
                 | 2278  | 82    | 97    | 11    | 2311  |
                 +-------+-------+-------+-------+-------+
                 | 2315  | 428   | 97    | 11    | 2347  |
                 +-------+-------+-------+-------+-------+
                 | 2339  | 442   | 97    | 11    | 2371  |
                 +-------+-------+-------+-------+-------+
                 | 2367  | 283   | 97    | 11    | 2399  |
                 +-------+-------+-------+-------+-------+
                 | 2392  | 538   | 97    | 11    | 2423  |
                 +-------+-------+-------+-------+-------+
                 | 2416  | 189   | 97    | 11    | 2447  |
                 +-------+-------+-------+-------+-------+
                 | 2447  | 438   | 97    | 11    | 2477  |
                 +-------+-------+-------+-------+-------+
                 | 2473  | 912   | 97    | 11    | 2503  |
                 +-------+-------+-------+-------+-------+
                 | 2502  | 1     | 97    | 11    | 2531  |
                 +-------+-------+-------+-------+-------+
                 | 2528  | 167   | 97    | 11    | 2557  |
                 +-------+-------+-------+-------+-------+
                 | 2565  | 272   | 97    | 11    | 2593  |
                 +-------+-------+-------+-------+-------+
                 | 2601  | 209   | 101   | 11    | 2633  |
                 +-------+-------+-------+-------+-------+
                 | 2640  | 927   | 101   | 11    | 2671  |
                 +-------+-------+-------+-------+-------+
                 | 2668  | 386   | 101   | 11    | 2699  |
                 +-------+-------+-------+-------+-------+
                 | 2701  | 653   | 101   | 11    | 2731  |
                 +-------+-------+-------+-------+-------+
                 | 2737  | 669   | 101   | 11    | 2767  |
                 +-------+-------+-------+-------+-------+
                 | 2772  | 431   | 101   | 11    | 2801  |
                 +-------+-------+-------+-------+-------+
                 | 2802  | 793   | 103   | 11    | 2833  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 2125  | 282   | 89    | 11    | 2153  |
                 +-------+-------+-------+-------+-------+
                 | 2152  | 309   | 89    | 11    | 2179  |
                 +-------+-------+-------+-------+-------+
                 | 2195  | 858   | 89    | 11    | 2221  |
                 +-------+-------+-------+-------+-------+
                 | 2217  | 442   | 89    | 11    | 2243  |
                 +-------+-------+-------+-------+-------+
                 | 2247  | 654   | 89    | 11    | 2273  |
                 +-------+-------+-------+-------+-------+
                 | 2278  | 82    | 97    | 11    | 2311  |
                 +-------+-------+-------+-------+-------+
                 | 2315  | 428   | 97    | 11    | 2347  |
                 +-------+-------+-------+-------+-------+
                 | 2339  | 442   | 97    | 11    | 2371  |
                 +-------+-------+-------+-------+-------+
                 | 2367  | 283   | 97    | 11    | 2399  |
                 +-------+-------+-------+-------+-------+
                 | 2392  | 538   | 97    | 11    | 2423  |
                 +-------+-------+-------+-------+-------+
                 | 2416  | 189   | 97    | 11    | 2447  |
                 +-------+-------+-------+-------+-------+
                 | 2447  | 438   | 97    | 11    | 2477  |
                 +-------+-------+-------+-------+-------+
                 | 2473  | 912   | 97    | 11    | 2503  |
                 +-------+-------+-------+-------+-------+
                 | 2502  | 1     | 97    | 11    | 2531  |
                 +-------+-------+-------+-------+-------+
                 | 2528  | 167   | 97    | 11    | 2557  |
                 +-------+-------+-------+-------+-------+
                 | 2565  | 272   | 97    | 11    | 2593  |
                 +-------+-------+-------+-------+-------+
                 | 2601  | 209   | 101   | 11    | 2633  |
                 +-------+-------+-------+-------+-------+
                 | 2640  | 927   | 101   | 11    | 2671  |
                 +-------+-------+-------+-------+-------+
                 | 2668  | 386   | 101   | 11    | 2699  |
                 +-------+-------+-------+-------+-------+
                 | 2701  | 653   | 101   | 11    | 2731  |
                 +-------+-------+-------+-------+-------+
                 | 2737  | 669   | 101   | 11    | 2767  |
                 +-------+-------+-------+-------+-------+
                 | 2772  | 431   | 101   | 11    | 2801  |
                 +-------+-------+-------+-------+-------+
                 | 2802  | 793   | 103   | 11    | 2833  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 2831  | 588   | 103   | 11    | 2861  |
                 +-------+-------+-------+-------+-------+
                 | 2875  | 777   | 107   | 11    | 2909  |
                 +-------+-------+-------+-------+-------+
                 | 2906  | 939   | 107   | 11    | 2939  |
                 +-------+-------+-------+-------+-------+
                 | 2938  | 864   | 107   | 11    | 2971  |
                 +-------+-------+-------+-------+-------+
                 | 2979  | 627   | 107   | 11    | 3011  |
                 +-------+-------+-------+-------+-------+
                 | 3015  | 265   | 109   | 11    | 3049  |
                 +-------+-------+-------+-------+-------+
                 | 3056  | 976   | 109   | 11    | 3089  |
                 +-------+-------+-------+-------+-------+
                 | 3101  | 988   | 113   | 11    | 3137  |
                 +-------+-------+-------+-------+-------+
                 | 3151  | 507   | 113   | 11    | 3187  |
                 +-------+-------+-------+-------+-------+
                 | 3186  | 640   | 113   | 11    | 3221  |
                 +-------+-------+-------+-------+-------+
                 | 3224  | 15    | 113   | 11    | 3259  |
                 +-------+-------+-------+-------+-------+
                 | 3265  | 667   | 113   | 11    | 3299  |
                 +-------+-------+-------+-------+-------+
                 | 3299  | 24    | 127   | 11    | 3347  |
                 +-------+-------+-------+-------+-------+
                 | 3344  | 877   | 127   | 11    | 3391  |
                 +-------+-------+-------+-------+-------+
                 | 3387  | 240   | 127   | 11    | 3433  |
                 +-------+-------+-------+-------+-------+
                 | 3423  | 720   | 127   | 11    | 3469  |
                 +-------+-------+-------+-------+-------+
                 | 3466  | 93    | 127   | 11    | 3511  |
                 +-------+-------+-------+-------+-------+
                 | 3502  | 919   | 127   | 11    | 3547  |
                 +-------+-------+-------+-------+-------+
                 | 3539  | 635   | 127   | 11    | 3583  |
                 +-------+-------+-------+-------+-------+
                 | 3579  | 174   | 127   | 11    | 3623  |
                 +-------+-------+-------+-------+-------+
                 | 3616  | 647   | 127   | 11    | 3659  |
                 +-------+-------+-------+-------+-------+
                 | 3658  | 820   | 127   | 11    | 3701  |
                 +-------+-------+-------+-------+-------+
                 | 3697  | 56    | 127   | 11    | 3739  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 2831  | 588   | 103   | 11    | 2861  |
                 +-------+-------+-------+-------+-------+
                 | 2875  | 777   | 107   | 11    | 2909  |
                 +-------+-------+-------+-------+-------+
                 | 2906  | 939   | 107   | 11    | 2939  |
                 +-------+-------+-------+-------+-------+
                 | 2938  | 864   | 107   | 11    | 2971  |
                 +-------+-------+-------+-------+-------+
                 | 2979  | 627   | 107   | 11    | 3011  |
                 +-------+-------+-------+-------+-------+
                 | 3015  | 265   | 109   | 11    | 3049  |
                 +-------+-------+-------+-------+-------+
                 | 3056  | 976   | 109   | 11    | 3089  |
                 +-------+-------+-------+-------+-------+
                 | 3101  | 988   | 113   | 11    | 3137  |
                 +-------+-------+-------+-------+-------+
                 | 3151  | 507   | 113   | 11    | 3187  |
                 +-------+-------+-------+-------+-------+
                 | 3186  | 640   | 113   | 11    | 3221  |
                 +-------+-------+-------+-------+-------+
                 | 3224  | 15    | 113   | 11    | 3259  |
                 +-------+-------+-------+-------+-------+
                 | 3265  | 667   | 113   | 11    | 3299  |
                 +-------+-------+-------+-------+-------+
                 | 3299  | 24    | 127   | 11    | 3347  |
                 +-------+-------+-------+-------+-------+
                 | 3344  | 877   | 127   | 11    | 3391  |
                 +-------+-------+-------+-------+-------+
                 | 3387  | 240   | 127   | 11    | 3433  |
                 +-------+-------+-------+-------+-------+
                 | 3423  | 720   | 127   | 11    | 3469  |
                 +-------+-------+-------+-------+-------+
                 | 3466  | 93    | 127   | 11    | 3511  |
                 +-------+-------+-------+-------+-------+
                 | 3502  | 919   | 127   | 11    | 3547  |
                 +-------+-------+-------+-------+-------+
                 | 3539  | 635   | 127   | 11    | 3583  |
                 +-------+-------+-------+-------+-------+
                 | 3579  | 174   | 127   | 11    | 3623  |
                 +-------+-------+-------+-------+-------+
                 | 3616  | 647   | 127   | 11    | 3659  |
                 +-------+-------+-------+-------+-------+
                 | 3658  | 820   | 127   | 11    | 3701  |
                 +-------+-------+-------+-------+-------+
                 | 3697  | 56    | 127   | 11    | 3739  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 3751  | 485   | 127   | 11    | 3793  |
                 +-------+-------+-------+-------+-------+
                 | 3792  | 210   | 127   | 11    | 3833  |
                 +-------+-------+-------+-------+-------+
                 | 3840  | 124   | 127   | 11    | 3881  |
                 +-------+-------+-------+-------+-------+
                 | 3883  | 546   | 127   | 11    | 3923  |
                 +-------+-------+-------+-------+-------+
                 | 3924  | 954   | 131   | 11    | 3967  |
                 +-------+-------+-------+-------+-------+
                 | 3970  | 262   | 131   | 11    | 4013  |
                 +-------+-------+-------+-------+-------+
                 | 4015  | 927   | 131   | 11    | 4057  |
                 +-------+-------+-------+-------+-------+
                 | 4069  | 957   | 131   | 11    | 4111  |
                 +-------+-------+-------+-------+-------+
                 | 4112  | 726   | 137   | 11    | 4159  |
                 +-------+-------+-------+-------+-------+
                 | 4165  | 583   | 137   | 11    | 4211  |
                 +-------+-------+-------+-------+-------+
                 | 4207  | 782   | 137   | 11    | 4253  |
                 +-------+-------+-------+-------+-------+
                 | 4252  | 37    | 137   | 11    | 4297  |
                 +-------+-------+-------+-------+-------+
                 | 4318  | 758   | 137   | 11    | 4363  |
                 +-------+-------+-------+-------+-------+
                 | 4365  | 777   | 137   | 11    | 4409  |
                 +-------+-------+-------+-------+-------+
                 | 4418  | 104   | 139   | 11    | 4463  |
                 +-------+-------+-------+-------+-------+
                 | 4468  | 476   | 139   | 11    | 4513  |
                 +-------+-------+-------+-------+-------+
                 | 4513  | 113   | 149   | 11    | 4567  |
                 +-------+-------+-------+-------+-------+
                 | 4567  | 313   | 149   | 11    | 4621  |
                 +-------+-------+-------+-------+-------+
                 | 4626  | 102   | 149   | 11    | 4679  |
                 +-------+-------+-------+-------+-------+
                 | 4681  | 501   | 149   | 11    | 4733  |
                 +-------+-------+-------+-------+-------+
                 | 4731  | 332   | 149   | 11    | 4783  |
                 +-------+-------+-------+-------+-------+
                 | 4780  | 786   | 149   | 11    | 4831  |
                 +-------+-------+-------+-------+-------+
                 | 4838  | 99    | 149   | 11    | 4889  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 3751  | 485   | 127   | 11    | 3793  |
                 +-------+-------+-------+-------+-------+
                 | 3792  | 210   | 127   | 11    | 3833  |
                 +-------+-------+-------+-------+-------+
                 | 3840  | 124   | 127   | 11    | 3881  |
                 +-------+-------+-------+-------+-------+
                 | 3883  | 546   | 127   | 11    | 3923  |
                 +-------+-------+-------+-------+-------+
                 | 3924  | 954   | 131   | 11    | 3967  |
                 +-------+-------+-------+-------+-------+
                 | 3970  | 262   | 131   | 11    | 4013  |
                 +-------+-------+-------+-------+-------+
                 | 4015  | 927   | 131   | 11    | 4057  |
                 +-------+-------+-------+-------+-------+
                 | 4069  | 957   | 131   | 11    | 4111  |
                 +-------+-------+-------+-------+-------+
                 | 4112  | 726   | 137   | 11    | 4159  |
                 +-------+-------+-------+-------+-------+
                 | 4165  | 583   | 137   | 11    | 4211  |
                 +-------+-------+-------+-------+-------+
                 | 4207  | 782   | 137   | 11    | 4253  |
                 +-------+-------+-------+-------+-------+
                 | 4252  | 37    | 137   | 11    | 4297  |
                 +-------+-------+-------+-------+-------+
                 | 4318  | 758   | 137   | 11    | 4363  |
                 +-------+-------+-------+-------+-------+
                 | 4365  | 777   | 137   | 11    | 4409  |
                 +-------+-------+-------+-------+-------+
                 | 4418  | 104   | 139   | 11    | 4463  |
                 +-------+-------+-------+-------+-------+
                 | 4468  | 476   | 139   | 11    | 4513  |
                 +-------+-------+-------+-------+-------+
                 | 4513  | 113   | 149   | 11    | 4567  |
                 +-------+-------+-------+-------+-------+
                 | 4567  | 313   | 149   | 11    | 4621  |
                 +-------+-------+-------+-------+-------+
                 | 4626  | 102   | 149   | 11    | 4679  |
                 +-------+-------+-------+-------+-------+
                 | 4681  | 501   | 149   | 11    | 4733  |
                 +-------+-------+-------+-------+-------+
                 | 4731  | 332   | 149   | 11    | 4783  |
                 +-------+-------+-------+-------+-------+
                 | 4780  | 786   | 149   | 11    | 4831  |
                 +-------+-------+-------+-------+-------+
                 | 4838  | 99    | 149   | 11    | 4889  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 4901  | 658   | 149   | 11    | 4951  |
                 +-------+-------+-------+-------+-------+
                 | 4954  | 794   | 149   | 11    | 5003  |
                 +-------+-------+-------+-------+-------+
                 | 5008  | 37    | 151   | 11    | 5059  |
                 +-------+-------+-------+-------+-------+
                 | 5063  | 471   | 151   | 11    | 5113  |
                 +-------+-------+-------+-------+-------+
                 | 5116  | 94    | 157   | 11    | 5171  |
                 +-------+-------+-------+-------+-------+
                 | 5172  | 873   | 157   | 11    | 5227  |
                 +-------+-------+-------+-------+-------+
                 | 5225  | 918   | 157   | 11    | 5279  |
                 +-------+-------+-------+-------+-------+
                 | 5279  | 945   | 157   | 11    | 5333  |
                 +-------+-------+-------+-------+-------+
                 | 5334  | 211   | 157   | 11    | 5387  |
                 +-------+-------+-------+-------+-------+
                 | 5391  | 341   | 157   | 11    | 5443  |
                 +-------+-------+-------+-------+-------+
                 | 5449  | 11    | 163   | 11    | 5507  |
                 +-------+-------+-------+-------+-------+
                 | 5506  | 578   | 163   | 11    | 5563  |
                 +-------+-------+-------+-------+-------+
                 | 5566  | 494   | 163   | 11    | 5623  |
                 +-------+-------+-------+-------+-------+
                 | 5637  | 694   | 163   | 11    | 5693  |
                 +-------+-------+-------+-------+-------+
                 | 5694  | 252   | 163   | 11    | 5749  |
                 +-------+-------+-------+-------+-------+
                 | 5763  | 451   | 167   | 11    | 5821  |
                 +-------+-------+-------+-------+-------+
                 | 5823  | 83    | 167   | 11    | 5881  |
                 +-------+-------+-------+-------+-------+
                 | 5896  | 689   | 167   | 11    | 5953  |
                 +-------+-------+-------+-------+-------+
                 | 5975  | 488   | 173   | 11    | 6037  |
                 +-------+-------+-------+-------+-------+
                 | 6039  | 214   | 173   | 11    | 6101  |
                 +-------+-------+-------+-------+-------+
                 | 6102  | 17    | 173   | 11    | 6163  |
                 +-------+-------+-------+-------+-------+
                 | 6169  | 469   | 173   | 11    | 6229  |
                 +-------+-------+-------+-------+-------+
                 | 6233  | 263   | 179   | 11    | 6299  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 4901  | 658   | 149   | 11    | 4951  |
                 +-------+-------+-------+-------+-------+
                 | 4954  | 794   | 149   | 11    | 5003  |
                 +-------+-------+-------+-------+-------+
                 | 5008  | 37    | 151   | 11    | 5059  |
                 +-------+-------+-------+-------+-------+
                 | 5063  | 471   | 151   | 11    | 5113  |
                 +-------+-------+-------+-------+-------+
                 | 5116  | 94    | 157   | 11    | 5171  |
                 +-------+-------+-------+-------+-------+
                 | 5172  | 873   | 157   | 11    | 5227  |
                 +-------+-------+-------+-------+-------+
                 | 5225  | 918   | 157   | 11    | 5279  |
                 +-------+-------+-------+-------+-------+
                 | 5279  | 945   | 157   | 11    | 5333  |
                 +-------+-------+-------+-------+-------+
                 | 5334  | 211   | 157   | 11    | 5387  |
                 +-------+-------+-------+-------+-------+
                 | 5391  | 341   | 157   | 11    | 5443  |
                 +-------+-------+-------+-------+-------+
                 | 5449  | 11    | 163   | 11    | 5507  |
                 +-------+-------+-------+-------+-------+
                 | 5506  | 578   | 163   | 11    | 5563  |
                 +-------+-------+-------+-------+-------+
                 | 5566  | 494   | 163   | 11    | 5623  |
                 +-------+-------+-------+-------+-------+
                 | 5637  | 694   | 163   | 11    | 5693  |
                 +-------+-------+-------+-------+-------+
                 | 5694  | 252   | 163   | 11    | 5749  |
                 +-------+-------+-------+-------+-------+
                 | 5763  | 451   | 167   | 11    | 5821  |
                 +-------+-------+-------+-------+-------+
                 | 5823  | 83    | 167   | 11    | 5881  |
                 +-------+-------+-------+-------+-------+
                 | 5896  | 689   | 167   | 11    | 5953  |
                 +-------+-------+-------+-------+-------+
                 | 5975  | 488   | 173   | 11    | 6037  |
                 +-------+-------+-------+-------+-------+
                 | 6039  | 214   | 173   | 11    | 6101  |
                 +-------+-------+-------+-------+-------+
                 | 6102  | 17    | 173   | 11    | 6163  |
                 +-------+-------+-------+-------+-------+
                 | 6169  | 469   | 173   | 11    | 6229  |
                 +-------+-------+-------+-------+-------+
                 | 6233  | 263   | 179   | 11    | 6299  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 6296  | 309   | 179   | 11    | 6361  |
                 +-------+-------+-------+-------+-------+
                 | 6363  | 984   | 179   | 11    | 6427  |
                 +-------+-------+-------+-------+-------+
                 | 6427  | 123   | 179   | 11    | 6491  |
                 +-------+-------+-------+-------+-------+
                 | 6518  | 360   | 179   | 11    | 6581  |
                 +-------+-------+-------+-------+-------+
                 | 6589  | 863   | 181   | 11    | 6653  |
                 +-------+-------+-------+-------+-------+
                 | 6655  | 122   | 181   | 11    | 6719  |
                 +-------+-------+-------+-------+-------+
                 | 6730  | 522   | 191   | 11    | 6803  |
                 +-------+-------+-------+-------+-------+
                 | 6799  | 539   | 191   | 11    | 6871  |
                 +-------+-------+-------+-------+-------+
                 | 6878  | 181   | 191   | 11    | 6949  |
                 +-------+-------+-------+-------+-------+
                 | 6956  | 64    | 191   | 11    | 7027  |
                 +-------+-------+-------+-------+-------+
                 | 7033  | 387   | 191   | 11    | 7103  |
                 +-------+-------+-------+-------+-------+
                 | 7108  | 967   | 191   | 11    | 7177  |
                 +-------+-------+-------+-------+-------+
                 | 7185  | 843   | 191   | 11    | 7253  |
                 +-------+-------+-------+-------+-------+
                 | 7281  | 999   | 193   | 11    | 7351  |
                 +-------+-------+-------+-------+-------+
                 | 7360  | 76    | 197   | 11    | 7433  |
                 +-------+-------+-------+-------+-------+
                 | 7445  | 142   | 197   | 11    | 7517  |
                 +-------+-------+-------+-------+-------+
                 | 7520  | 599   | 197   | 11    | 7591  |
                 +-------+-------+-------+-------+-------+
                 | 7596  | 576   | 199   | 11    | 7669  |
                 +-------+-------+-------+-------+-------+
                 | 7675  | 176   | 211   | 11    | 7759  |
                 +-------+-------+-------+-------+-------+
                 | 7770  | 392   | 211   | 11    | 7853  |
                 +-------+-------+-------+-------+-------+
                 | 7855  | 332   | 211   | 11    | 7937  |
                 +-------+-------+-------+-------+-------+
                 | 7935  | 291   | 211   | 11    | 8017  |
                 +-------+-------+-------+-------+-------+
                 | 8030  | 913   | 211   | 11    | 8111  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 6296  | 309   | 179   | 11    | 6361  |
                 +-------+-------+-------+-------+-------+
                 | 6363  | 984   | 179   | 11    | 6427  |
                 +-------+-------+-------+-------+-------+
                 | 6427  | 123   | 179   | 11    | 6491  |
                 +-------+-------+-------+-------+-------+
                 | 6518  | 360   | 179   | 11    | 6581  |
                 +-------+-------+-------+-------+-------+
                 | 6589  | 863   | 181   | 11    | 6653  |
                 +-------+-------+-------+-------+-------+
                 | 6655  | 122   | 181   | 11    | 6719  |
                 +-------+-------+-------+-------+-------+
                 | 6730  | 522   | 191   | 11    | 6803  |
                 +-------+-------+-------+-------+-------+
                 | 6799  | 539   | 191   | 11    | 6871  |
                 +-------+-------+-------+-------+-------+
                 | 6878  | 181   | 191   | 11    | 6949  |
                 +-------+-------+-------+-------+-------+
                 | 6956  | 64    | 191   | 11    | 7027  |
                 +-------+-------+-------+-------+-------+
                 | 7033  | 387   | 191   | 11    | 7103  |
                 +-------+-------+-------+-------+-------+
                 | 7108  | 967   | 191   | 11    | 7177  |
                 +-------+-------+-------+-------+-------+
                 | 7185  | 843   | 191   | 11    | 7253  |
                 +-------+-------+-------+-------+-------+
                 | 7281  | 999   | 193   | 11    | 7351  |
                 +-------+-------+-------+-------+-------+
                 | 7360  | 76    | 197   | 11    | 7433  |
                 +-------+-------+-------+-------+-------+
                 | 7445  | 142   | 197   | 11    | 7517  |
                 +-------+-------+-------+-------+-------+
                 | 7520  | 599   | 197   | 11    | 7591  |
                 +-------+-------+-------+-------+-------+
                 | 7596  | 576   | 199   | 11    | 7669  |
                 +-------+-------+-------+-------+-------+
                 | 7675  | 176   | 211   | 11    | 7759  |
                 +-------+-------+-------+-------+-------+
                 | 7770  | 392   | 211   | 11    | 7853  |
                 +-------+-------+-------+-------+-------+
                 | 7855  | 332   | 211   | 11    | 7937  |
                 +-------+-------+-------+-------+-------+
                 | 7935  | 291   | 211   | 11    | 8017  |
                 +-------+-------+-------+-------+-------+
                 | 8030  | 913   | 211   | 11    | 8111  |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 8111  | 608   | 211   | 11    | 8191  |
                 +-------+-------+-------+-------+-------+
                 | 8194  | 212   | 211   | 11    | 8273  |
                 +-------+-------+-------+-------+-------+
                 | 8290  | 696   | 211   | 11    | 8369  |
                 +-------+-------+-------+-------+-------+
                 | 8377  | 931   | 223   | 11    | 8467  |
                 +-------+-------+-------+-------+-------+
                 | 8474  | 326   | 223   | 11    | 8563  |
                 +-------+-------+-------+-------+-------+
                 | 8559  | 228   | 223   | 11    | 8647  |
                 +-------+-------+-------+-------+-------+
                 | 8654  | 706   | 223   | 11    | 8741  |
                 +-------+-------+-------+-------+-------+
                 | 8744  | 144   | 223   | 11    | 8831  |
                 +-------+-------+-------+-------+-------+
                 | 8837  | 83    | 223   | 11    | 8923  |
                 +-------+-------+-------+-------+-------+
                 | 8928  | 743   | 223   | 11    | 9013  |
                 +-------+-------+-------+-------+-------+
                 | 9019  | 187   | 223   | 11    | 9103  |
                 +-------+-------+-------+-------+-------+
                 | 9111  | 654   | 227   | 11    | 9199  |
                 +-------+-------+-------+-------+-------+
                 | 9206  | 359   | 227   | 11    | 9293  |
                 +-------+-------+-------+-------+-------+
                 | 9303  | 493   | 229   | 11    | 9391  |
                 +-------+-------+-------+-------+-------+
                 | 9400  | 369   | 233   | 11    | 9491  |
                 +-------+-------+-------+-------+-------+
                 | 9497  | 981   | 233   | 11    | 9587  |
                 +-------+-------+-------+-------+-------+
                 | 9601  | 276   | 239   | 11    | 9697  |
                 +-------+-------+-------+-------+-------+
                 | 9708  | 647   | 239   | 11    | 9803  |
                 +-------+-------+-------+-------+-------+
                 | 9813  | 389   | 239   | 11    | 9907  |
                 +-------+-------+-------+-------+-------+
                 | 9916  | 80    | 239   | 11    | 10009 |
                 +-------+-------+-------+-------+-------+
                 | 10017 | 396   | 241   | 11    | 10111 |
                 +-------+-------+-------+-------+-------+
                 | 10120 | 580   | 251   | 11    | 10223 |
                 +-------+-------+-------+-------+-------+
                 | 10241 | 873   | 251   | 11    | 10343 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 8111  | 608   | 211   | 11    | 8191  |
                 +-------+-------+-------+-------+-------+
                 | 8194  | 212   | 211   | 11    | 8273  |
                 +-------+-------+-------+-------+-------+
                 | 8290  | 696   | 211   | 11    | 8369  |
                 +-------+-------+-------+-------+-------+
                 | 8377  | 931   | 223   | 11    | 8467  |
                 +-------+-------+-------+-------+-------+
                 | 8474  | 326   | 223   | 11    | 8563  |
                 +-------+-------+-------+-------+-------+
                 | 8559  | 228   | 223   | 11    | 8647  |
                 +-------+-------+-------+-------+-------+
                 | 8654  | 706   | 223   | 11    | 8741  |
                 +-------+-------+-------+-------+-------+
                 | 8744  | 144   | 223   | 11    | 8831  |
                 +-------+-------+-------+-------+-------+
                 | 8837  | 83    | 223   | 11    | 8923  |
                 +-------+-------+-------+-------+-------+
                 | 8928  | 743   | 223   | 11    | 9013  |
                 +-------+-------+-------+-------+-------+
                 | 9019  | 187   | 223   | 11    | 9103  |
                 +-------+-------+-------+-------+-------+
                 | 9111  | 654   | 227   | 11    | 9199  |
                 +-------+-------+-------+-------+-------+
                 | 9206  | 359   | 227   | 11    | 9293  |
                 +-------+-------+-------+-------+-------+
                 | 9303  | 493   | 229   | 11    | 9391  |
                 +-------+-------+-------+-------+-------+
                 | 9400  | 369   | 233   | 11    | 9491  |
                 +-------+-------+-------+-------+-------+
                 | 9497  | 981   | 233   | 11    | 9587  |
                 +-------+-------+-------+-------+-------+
                 | 9601  | 276   | 239   | 11    | 9697  |
                 +-------+-------+-------+-------+-------+
                 | 9708  | 647   | 239   | 11    | 9803  |
                 +-------+-------+-------+-------+-------+
                 | 9813  | 389   | 239   | 11    | 9907  |
                 +-------+-------+-------+-------+-------+
                 | 9916  | 80    | 239   | 11    | 10009 |
                 +-------+-------+-------+-------+-------+
                 | 10017 | 396   | 241   | 11    | 10111 |
                 +-------+-------+-------+-------+-------+
                 | 10120 | 580   | 251   | 11    | 10223 |
                 +-------+-------+-------+-------+-------+
                 | 10241 | 873   | 251   | 11    | 10343 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 10351 | 15    | 251   | 11    | 10453 |
                 +-------+-------+-------+-------+-------+
                 | 10458 | 976   | 251   | 11    | 10559 |
                 +-------+-------+-------+-------+-------+
                 | 10567 | 584   | 251   | 11    | 10667 |
                 +-------+-------+-------+-------+-------+
                 | 10676 | 267   | 257   | 11    | 10781 |
                 +-------+-------+-------+-------+-------+
                 | 10787 | 876   | 257   | 11    | 10891 |
                 +-------+-------+-------+-------+-------+
                 | 10899 | 642   | 257   | 12    | 11003 |
                 +-------+-------+-------+-------+-------+
                 | 11015 | 794   | 257   | 12    | 11119 |
                 +-------+-------+-------+-------+-------+
                 | 11130 | 78    | 263   | 12    | 11239 |
                 +-------+-------+-------+-------+-------+
                 | 11245 | 736   | 263   | 12    | 11353 |
                 +-------+-------+-------+-------+-------+
                 | 11358 | 882   | 269   | 12    | 11471 |
                 +-------+-------+-------+-------+-------+
                 | 11475 | 251   | 269   | 12    | 11587 |
                 +-------+-------+-------+-------+-------+
                 | 11590 | 434   | 269   | 12    | 11701 |
                 +-------+-------+-------+-------+-------+
                 | 11711 | 204   | 269   | 12    | 11821 |
                 +-------+-------+-------+-------+-------+
                 | 11829 | 256   | 271   | 12    | 11941 |
                 +-------+-------+-------+-------+-------+
                 | 11956 | 106   | 277   | 12    | 12073 |
                 +-------+-------+-------+-------+-------+
                 | 12087 | 375   | 277   | 12    | 12203 |
                 +-------+-------+-------+-------+-------+
                 | 12208 | 148   | 277   | 12    | 12323 |
                 +-------+-------+-------+-------+-------+
                 | 12333 | 496   | 281   | 12    | 12451 |
                 +-------+-------+-------+-------+-------+
                 | 12460 | 88    | 281   | 12    | 12577 |
                 +-------+-------+-------+-------+-------+
                 | 12593 | 826   | 293   | 12    | 12721 |
                 +-------+-------+-------+-------+-------+
                 | 12726 | 71    | 293   | 12    | 12853 |
                 +-------+-------+-------+-------+-------+
                 | 12857 | 925   | 293   | 12    | 12983 |
                 +-------+-------+-------+-------+-------+
                 | 13002 | 760   | 293   | 12    | 13127 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 10351 | 15    | 251   | 11    | 10453 |
                 +-------+-------+-------+-------+-------+
                 | 10458 | 976   | 251   | 11    | 10559 |
                 +-------+-------+-------+-------+-------+
                 | 10567 | 584   | 251   | 11    | 10667 |
                 +-------+-------+-------+-------+-------+
                 | 10676 | 267   | 257   | 11    | 10781 |
                 +-------+-------+-------+-------+-------+
                 | 10787 | 876   | 257   | 11    | 10891 |
                 +-------+-------+-------+-------+-------+
                 | 10899 | 642   | 257   | 12    | 11003 |
                 +-------+-------+-------+-------+-------+
                 | 11015 | 794   | 257   | 12    | 11119 |
                 +-------+-------+-------+-------+-------+
                 | 11130 | 78    | 263   | 12    | 11239 |
                 +-------+-------+-------+-------+-------+
                 | 11245 | 736   | 263   | 12    | 11353 |
                 +-------+-------+-------+-------+-------+
                 | 11358 | 882   | 269   | 12    | 11471 |
                 +-------+-------+-------+-------+-------+
                 | 11475 | 251   | 269   | 12    | 11587 |
                 +-------+-------+-------+-------+-------+
                 | 11590 | 434   | 269   | 12    | 11701 |
                 +-------+-------+-------+-------+-------+
                 | 11711 | 204   | 269   | 12    | 11821 |
                 +-------+-------+-------+-------+-------+
                 | 11829 | 256   | 271   | 12    | 11941 |
                 +-------+-------+-------+-------+-------+
                 | 11956 | 106   | 277   | 12    | 12073 |
                 +-------+-------+-------+-------+-------+
                 | 12087 | 375   | 277   | 12    | 12203 |
                 +-------+-------+-------+-------+-------+
                 | 12208 | 148   | 277   | 12    | 12323 |
                 +-------+-------+-------+-------+-------+
                 | 12333 | 496   | 281   | 12    | 12451 |
                 +-------+-------+-------+-------+-------+
                 | 12460 | 88    | 281   | 12    | 12577 |
                 +-------+-------+-------+-------+-------+
                 | 12593 | 826   | 293   | 12    | 12721 |
                 +-------+-------+-------+-------+-------+
                 | 12726 | 71    | 293   | 12    | 12853 |
                 +-------+-------+-------+-------+-------+
                 | 12857 | 925   | 293   | 12    | 12983 |
                 +-------+-------+-------+-------+-------+
                 | 13002 | 760   | 293   | 12    | 13127 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 13143 | 130   | 293   | 12    | 13267 |
                 +-------+-------+-------+-------+-------+
                 | 13284 | 641   | 307   | 12    | 13421 |
                 +-------+-------+-------+-------+-------+
                 | 13417 | 400   | 307   | 12    | 13553 |
                 +-------+-------+-------+-------+-------+
                 | 13558 | 480   | 307   | 12    | 13693 |
                 +-------+-------+-------+-------+-------+
                 | 13695 | 76    | 307   | 12    | 13829 |
                 +-------+-------+-------+-------+-------+
                 | 13833 | 665   | 307   | 12    | 13967 |
                 +-------+-------+-------+-------+-------+
                 | 13974 | 910   | 307   | 12    | 14107 |
                 +-------+-------+-------+-------+-------+
                 | 14115 | 467   | 311   | 12    | 14251 |
                 +-------+-------+-------+-------+-------+
                 | 14272 | 964   | 311   | 12    | 14407 |
                 +-------+-------+-------+-------+-------+
                 | 14415 | 625   | 313   | 12    | 14551 |
                 +-------+-------+-------+-------+-------+
                 | 14560 | 362   | 317   | 12    | 14699 |
                 +-------+-------+-------+-------+-------+
                 | 14713 | 759   | 317   | 12    | 14851 |
                 +-------+-------+-------+-------+-------+
                 | 14862 | 728   | 331   | 12    | 15013 |
                 +-------+-------+-------+-------+-------+
                 | 15011 | 343   | 331   | 12    | 15161 |
                 +-------+-------+-------+-------+-------+
                 | 15170 | 113   | 331   | 12    | 15319 |
                 +-------+-------+-------+-------+-------+
                 | 15325 | 137   | 331   | 12    | 15473 |
                 +-------+-------+-------+-------+-------+
                 | 15496 | 308   | 331   | 12    | 15643 |
                 +-------+-------+-------+-------+-------+
                 | 15651 | 800   | 337   | 12    | 15803 |
                 +-------+-------+-------+-------+-------+
                 | 15808 | 177   | 337   | 12    | 15959 |
                 +-------+-------+-------+-------+-------+
                 | 15977 | 961   | 337   | 12    | 16127 |
                 +-------+-------+-------+-------+-------+
                 | 16161 | 958   | 347   | 12    | 16319 |
                 +-------+-------+-------+-------+-------+
                 | 16336 | 72    | 347   | 12    | 16493 |
                 +-------+-------+-------+-------+-------+
                 | 16505 | 732   | 347   | 12    | 16661 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 13143 | 130   | 293   | 12    | 13267 |
                 +-------+-------+-------+-------+-------+
                 | 13284 | 641   | 307   | 12    | 13421 |
                 +-------+-------+-------+-------+-------+
                 | 13417 | 400   | 307   | 12    | 13553 |
                 +-------+-------+-------+-------+-------+
                 | 13558 | 480   | 307   | 12    | 13693 |
                 +-------+-------+-------+-------+-------+
                 | 13695 | 76    | 307   | 12    | 13829 |
                 +-------+-------+-------+-------+-------+
                 | 13833 | 665   | 307   | 12    | 13967 |
                 +-------+-------+-------+-------+-------+
                 | 13974 | 910   | 307   | 12    | 14107 |
                 +-------+-------+-------+-------+-------+
                 | 14115 | 467   | 311   | 12    | 14251 |
                 +-------+-------+-------+-------+-------+
                 | 14272 | 964   | 311   | 12    | 14407 |
                 +-------+-------+-------+-------+-------+
                 | 14415 | 625   | 313   | 12    | 14551 |
                 +-------+-------+-------+-------+-------+
                 | 14560 | 362   | 317   | 12    | 14699 |
                 +-------+-------+-------+-------+-------+
                 | 14713 | 759   | 317   | 12    | 14851 |
                 +-------+-------+-------+-------+-------+
                 | 14862 | 728   | 331   | 12    | 15013 |
                 +-------+-------+-------+-------+-------+
                 | 15011 | 343   | 331   | 12    | 15161 |
                 +-------+-------+-------+-------+-------+
                 | 15170 | 113   | 331   | 12    | 15319 |
                 +-------+-------+-------+-------+-------+
                 | 15325 | 137   | 331   | 12    | 15473 |
                 +-------+-------+-------+-------+-------+
                 | 15496 | 308   | 331   | 12    | 15643 |
                 +-------+-------+-------+-------+-------+
                 | 15651 | 800   | 337   | 12    | 15803 |
                 +-------+-------+-------+-------+-------+
                 | 15808 | 177   | 337   | 12    | 15959 |
                 +-------+-------+-------+-------+-------+
                 | 15977 | 961   | 337   | 12    | 16127 |
                 +-------+-------+-------+-------+-------+
                 | 16161 | 958   | 347   | 12    | 16319 |
                 +-------+-------+-------+-------+-------+
                 | 16336 | 72    | 347   | 12    | 16493 |
                 +-------+-------+-------+-------+-------+
                 | 16505 | 732   | 347   | 12    | 16661 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 16674 | 145   | 349   | 12    | 16831 |
                 +-------+-------+-------+-------+-------+
                 | 16851 | 577   | 353   | 12    | 17011 |
                 +-------+-------+-------+-------+-------+
                 | 17024 | 305   | 353   | 12    | 17183 |
                 +-------+-------+-------+-------+-------+
                 | 17195 | 50    | 359   | 12    | 17359 |
                 +-------+-------+-------+-------+-------+
                 | 17376 | 351   | 359   | 12    | 17539 |
                 +-------+-------+-------+-------+-------+
                 | 17559 | 175   | 367   | 12    | 17729 |
                 +-------+-------+-------+-------+-------+
                 | 17742 | 727   | 367   | 12    | 17911 |
                 +-------+-------+-------+-------+-------+
                 | 17929 | 902   | 367   | 12    | 18097 |
                 +-------+-------+-------+-------+-------+
                 | 18116 | 409   | 373   | 12    | 18289 |
                 +-------+-------+-------+-------+-------+
                 | 18309 | 776   | 373   | 12    | 18481 |
                 +-------+-------+-------+-------+-------+
                 | 18503 | 586   | 379   | 12    | 18679 |
                 +-------+-------+-------+-------+-------+
                 | 18694 | 451   | 379   | 12    | 18869 |
                 +-------+-------+-------+-------+-------+
                 | 18909 | 287   | 383   | 12    | 19087 |
                 +-------+-------+-------+-------+-------+
                 | 19126 | 246   | 389   | 12    | 19309 |
                 +-------+-------+-------+-------+-------+
                 | 19325 | 222   | 389   | 12    | 19507 |
                 +-------+-------+-------+-------+-------+
                 | 19539 | 563   | 397   | 12    | 19727 |
                 +-------+-------+-------+-------+-------+
                 | 19740 | 839   | 397   | 12    | 19927 |
                 +-------+-------+-------+-------+-------+
                 | 19939 | 897   | 401   | 12    | 20129 |
                 +-------+-------+-------+-------+-------+
                 | 20152 | 409   | 401   | 12    | 20341 |
                 +-------+-------+-------+-------+-------+
                 | 20355 | 618   | 409   | 12    | 20551 |
                 +-------+-------+-------+-------+-------+
                 | 20564 | 439   | 409   | 12    | 20759 |
                 +-------+-------+-------+-------+-------+
                 | 20778 | 95    | 419   | 13    | 20983 |
                 +-------+-------+-------+-------+-------+
                 | 20988 | 448   | 419   | 13    | 21191 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 16674 | 145   | 349   | 12    | 16831 |
                 +-------+-------+-------+-------+-------+
                 | 16851 | 577   | 353   | 12    | 17011 |
                 +-------+-------+-------+-------+-------+
                 | 17024 | 305   | 353   | 12    | 17183 |
                 +-------+-------+-------+-------+-------+
                 | 17195 | 50    | 359   | 12    | 17359 |
                 +-------+-------+-------+-------+-------+
                 | 17376 | 351   | 359   | 12    | 17539 |
                 +-------+-------+-------+-------+-------+
                 | 17559 | 175   | 367   | 12    | 17729 |
                 +-------+-------+-------+-------+-------+
                 | 17742 | 727   | 367   | 12    | 17911 |
                 +-------+-------+-------+-------+-------+
                 | 17929 | 902   | 367   | 12    | 18097 |
                 +-------+-------+-------+-------+-------+
                 | 18116 | 409   | 373   | 12    | 18289 |
                 +-------+-------+-------+-------+-------+
                 | 18309 | 776   | 373   | 12    | 18481 |
                 +-------+-------+-------+-------+-------+
                 | 18503 | 586   | 379   | 12    | 18679 |
                 +-------+-------+-------+-------+-------+
                 | 18694 | 451   | 379   | 12    | 18869 |
                 +-------+-------+-------+-------+-------+
                 | 18909 | 287   | 383   | 12    | 19087 |
                 +-------+-------+-------+-------+-------+
                 | 19126 | 246   | 389   | 12    | 19309 |
                 +-------+-------+-------+-------+-------+
                 | 19325 | 222   | 389   | 12    | 19507 |
                 +-------+-------+-------+-------+-------+
                 | 19539 | 563   | 397   | 12    | 19727 |
                 +-------+-------+-------+-------+-------+
                 | 19740 | 839   | 397   | 12    | 19927 |
                 +-------+-------+-------+-------+-------+
                 | 19939 | 897   | 401   | 12    | 20129 |
                 +-------+-------+-------+-------+-------+
                 | 20152 | 409   | 401   | 12    | 20341 |
                 +-------+-------+-------+-------+-------+
                 | 20355 | 618   | 409   | 12    | 20551 |
                 +-------+-------+-------+-------+-------+
                 | 20564 | 439   | 409   | 12    | 20759 |
                 +-------+-------+-------+-------+-------+
                 | 20778 | 95    | 419   | 13    | 20983 |
                 +-------+-------+-------+-------+-------+
                 | 20988 | 448   | 419   | 13    | 21191 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 21199 | 133   | 419   | 13    | 21401 |
                 +-------+-------+-------+-------+-------+
                 | 21412 | 938   | 419   | 13    | 21613 |
                 +-------+-------+-------+-------+-------+
                 | 21629 | 423   | 431   | 13    | 21841 |
                 +-------+-------+-------+-------+-------+
                 | 21852 | 90    | 431   | 13    | 22063 |
                 +-------+-------+-------+-------+-------+
                 | 22073 | 640   | 431   | 13    | 22283 |
                 +-------+-------+-------+-------+-------+
                 | 22301 | 922   | 433   | 13    | 22511 |
                 +-------+-------+-------+-------+-------+
                 | 22536 | 250   | 439   | 13    | 22751 |
                 +-------+-------+-------+-------+-------+
                 | 22779 | 367   | 439   | 13    | 22993 |
                 +-------+-------+-------+-------+-------+
                 | 23010 | 447   | 443   | 13    | 23227 |
                 +-------+-------+-------+-------+-------+
                 | 23252 | 559   | 449   | 13    | 23473 |
                 +-------+-------+-------+-------+-------+
                 | 23491 | 121   | 457   | 13    | 23719 |
                 +-------+-------+-------+-------+-------+
                 | 23730 | 623   | 457   | 13    | 23957 |
                 +-------+-------+-------+-------+-------+
                 | 23971 | 450   | 457   | 13    | 24197 |
                 +-------+-------+-------+-------+-------+
                 | 24215 | 253   | 461   | 13    | 24443 |
                 +-------+-------+-------+-------+-------+
                 | 24476 | 106   | 467   | 13    | 24709 |
                 +-------+-------+-------+-------+-------+
                 | 24721 | 863   | 467   | 13    | 24953 |
                 +-------+-------+-------+-------+-------+
                 | 24976 | 148   | 479   | 13    | 25219 |
                 +-------+-------+-------+-------+-------+
                 | 25230 | 427   | 479   | 13    | 25471 |
                 +-------+-------+-------+-------+-------+
                 | 25493 | 138   | 479   | 13    | 25733 |
                 +-------+-------+-------+-------+-------+
                 | 25756 | 794   | 487   | 13    | 26003 |
                 +-------+-------+-------+-------+-------+
                 | 26022 | 247   | 487   | 13    | 26267 |
                 +-------+-------+-------+-------+-------+
                 | 26291 | 562   | 491   | 13    | 26539 |
                 +-------+-------+-------+-------+-------+
                 | 26566 | 53    | 499   | 13    | 26821 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 21199 | 133   | 419   | 13    | 21401 |
                 +-------+-------+-------+-------+-------+
                 | 21412 | 938   | 419   | 13    | 21613 |
                 +-------+-------+-------+-------+-------+
                 | 21629 | 423   | 431   | 13    | 21841 |
                 +-------+-------+-------+-------+-------+
                 | 21852 | 90    | 431   | 13    | 22063 |
                 +-------+-------+-------+-------+-------+
                 | 22073 | 640   | 431   | 13    | 22283 |
                 +-------+-------+-------+-------+-------+
                 | 22301 | 922   | 433   | 13    | 22511 |
                 +-------+-------+-------+-------+-------+
                 | 22536 | 250   | 439   | 13    | 22751 |
                 +-------+-------+-------+-------+-------+
                 | 22779 | 367   | 439   | 13    | 22993 |
                 +-------+-------+-------+-------+-------+
                 | 23010 | 447   | 443   | 13    | 23227 |
                 +-------+-------+-------+-------+-------+
                 | 23252 | 559   | 449   | 13    | 23473 |
                 +-------+-------+-------+-------+-------+
                 | 23491 | 121   | 457   | 13    | 23719 |
                 +-------+-------+-------+-------+-------+
                 | 23730 | 623   | 457   | 13    | 23957 |
                 +-------+-------+-------+-------+-------+
                 | 23971 | 450   | 457   | 13    | 24197 |
                 +-------+-------+-------+-------+-------+
                 | 24215 | 253   | 461   | 13    | 24443 |
                 +-------+-------+-------+-------+-------+
                 | 24476 | 106   | 467   | 13    | 24709 |
                 +-------+-------+-------+-------+-------+
                 | 24721 | 863   | 467   | 13    | 24953 |
                 +-------+-------+-------+-------+-------+
                 | 24976 | 148   | 479   | 13    | 25219 |
                 +-------+-------+-------+-------+-------+
                 | 25230 | 427   | 479   | 13    | 25471 |
                 +-------+-------+-------+-------+-------+
                 | 25493 | 138   | 479   | 13    | 25733 |
                 +-------+-------+-------+-------+-------+
                 | 25756 | 794   | 487   | 13    | 26003 |
                 +-------+-------+-------+-------+-------+
                 | 26022 | 247   | 487   | 13    | 26267 |
                 +-------+-------+-------+-------+-------+
                 | 26291 | 562   | 491   | 13    | 26539 |
                 +-------+-------+-------+-------+-------+
                 | 26566 | 53    | 499   | 13    | 26821 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 26838 | 135   | 499   | 13    | 27091 |
                 +-------+-------+-------+-------+-------+
                 | 27111 | 21    | 503   | 13    | 27367 |
                 +-------+-------+-------+-------+-------+
                 | 27392 | 201   | 509   | 13    | 27653 |
                 +-------+-------+-------+-------+-------+
                 | 27682 | 169   | 521   | 13    | 27953 |
                 +-------+-------+-------+-------+-------+
                 | 27959 | 70    | 521   | 13    | 28229 |
                 +-------+-------+-------+-------+-------+
                 | 28248 | 386   | 521   | 13    | 28517 |
                 +-------+-------+-------+-------+-------+
                 | 28548 | 226   | 523   | 13    | 28817 |
                 +-------+-------+-------+-------+-------+
                 | 28845 | 3     | 541   | 13    | 29131 |
                 +-------+-------+-------+-------+-------+
                 | 29138 | 769   | 541   | 13    | 29423 |
                 +-------+-------+-------+-------+-------+
                 | 29434 | 590   | 541   | 13    | 29717 |
                 +-------+-------+-------+-------+-------+
                 | 29731 | 672   | 541   | 13    | 30013 |
                 +-------+-------+-------+-------+-------+
                 | 30037 | 713   | 547   | 13    | 30323 |
                 +-------+-------+-------+-------+-------+
                 | 30346 | 967   | 547   | 13    | 30631 |
                 +-------+-------+-------+-------+-------+
                 | 30654 | 368   | 557   | 14    | 30949 |
                 +-------+-------+-------+-------+-------+
                 | 30974 | 348   | 557   | 14    | 31267 |
                 +-------+-------+-------+-------+-------+
                 | 31285 | 119   | 563   | 14    | 31583 |
                 +-------+-------+-------+-------+-------+
                 | 31605 | 503   | 569   | 14    | 31907 |
                 +-------+-------+-------+-------+-------+
                 | 31948 | 181   | 571   | 14    | 32251 |
                 +-------+-------+-------+-------+-------+
                 | 32272 | 394   | 577   | 14    | 32579 |
                 +-------+-------+-------+-------+-------+
                 | 32601 | 189   | 587   | 14    | 32917 |
                 +-------+-------+-------+-------+-------+
                 | 32932 | 210   | 587   | 14    | 33247 |
                 +-------+-------+-------+-------+-------+
                 | 33282 | 62    | 593   | 14    | 33601 |
                 +-------+-------+-------+-------+-------+
                 | 33623 | 273   | 593   | 14    | 33941 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 26838 | 135   | 499   | 13    | 27091 |
                 +-------+-------+-------+-------+-------+
                 | 27111 | 21    | 503   | 13    | 27367 |
                 +-------+-------+-------+-------+-------+
                 | 27392 | 201   | 509   | 13    | 27653 |
                 +-------+-------+-------+-------+-------+
                 | 27682 | 169   | 521   | 13    | 27953 |
                 +-------+-------+-------+-------+-------+
                 | 27959 | 70    | 521   | 13    | 28229 |
                 +-------+-------+-------+-------+-------+
                 | 28248 | 386   | 521   | 13    | 28517 |
                 +-------+-------+-------+-------+-------+
                 | 28548 | 226   | 523   | 13    | 28817 |
                 +-------+-------+-------+-------+-------+
                 | 28845 | 3     | 541   | 13    | 29131 |
                 +-------+-------+-------+-------+-------+
                 | 29138 | 769   | 541   | 13    | 29423 |
                 +-------+-------+-------+-------+-------+
                 | 29434 | 590   | 541   | 13    | 29717 |
                 +-------+-------+-------+-------+-------+
                 | 29731 | 672   | 541   | 13    | 30013 |
                 +-------+-------+-------+-------+-------+
                 | 30037 | 713   | 547   | 13    | 30323 |
                 +-------+-------+-------+-------+-------+
                 | 30346 | 967   | 547   | 13    | 30631 |
                 +-------+-------+-------+-------+-------+
                 | 30654 | 368   | 557   | 14    | 30949 |
                 +-------+-------+-------+-------+-------+
                 | 30974 | 348   | 557   | 14    | 31267 |
                 +-------+-------+-------+-------+-------+
                 | 31285 | 119   | 563   | 14    | 31583 |
                 +-------+-------+-------+-------+-------+
                 | 31605 | 503   | 569   | 14    | 31907 |
                 +-------+-------+-------+-------+-------+
                 | 31948 | 181   | 571   | 14    | 32251 |
                 +-------+-------+-------+-------+-------+
                 | 32272 | 394   | 577   | 14    | 32579 |
                 +-------+-------+-------+-------+-------+
                 | 32601 | 189   | 587   | 14    | 32917 |
                 +-------+-------+-------+-------+-------+
                 | 32932 | 210   | 587   | 14    | 33247 |
                 +-------+-------+-------+-------+-------+
                 | 33282 | 62    | 593   | 14    | 33601 |
                 +-------+-------+-------+-------+-------+
                 | 33623 | 273   | 593   | 14    | 33941 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 33961 | 554   | 599   | 14    | 34283 |
                 +-------+-------+-------+-------+-------+
                 | 34302 | 936   | 607   | 14    | 34631 |
                 +-------+-------+-------+-------+-------+
                 | 34654 | 483   | 607   | 14    | 34981 |
                 +-------+-------+-------+-------+-------+
                 | 35031 | 397   | 613   | 14    | 35363 |
                 +-------+-------+-------+-------+-------+
                 | 35395 | 241   | 619   | 14    | 35731 |
                 +-------+-------+-------+-------+-------+
                 | 35750 | 500   | 631   | 14    | 36097 |
                 +-------+-------+-------+-------+-------+
                 | 36112 | 12    | 631   | 14    | 36457 |
                 +-------+-------+-------+-------+-------+
                 | 36479 | 958   | 641   | 14    | 36833 |
                 +-------+-------+-------+-------+-------+
                 | 36849 | 524   | 641   | 14    | 37201 |
                 +-------+-------+-------+-------+-------+
                 | 37227 | 8     | 643   | 14    | 37579 |
                 +-------+-------+-------+-------+-------+
                 | 37606 | 100   | 653   | 14    | 37967 |
                 +-------+-------+-------+-------+-------+
                 | 37992 | 339   | 653   | 14    | 38351 |
                 +-------+-------+-------+-------+-------+
                 | 38385 | 804   | 659   | 14    | 38749 |
                 +-------+-------+-------+-------+-------+
                 | 38787 | 510   | 673   | 14    | 39163 |
                 +-------+-------+-------+-------+-------+
                 | 39176 | 18    | 673   | 14    | 39551 |
                 +-------+-------+-------+-------+-------+
                 | 39576 | 412   | 677   | 14    | 39953 |
                 +-------+-------+-------+-------+-------+
                 | 39980 | 394   | 683   | 14    | 40361 |
                 +-------+-------+-------+-------+-------+
                 | 40398 | 830   | 691   | 15    | 40787 |
                 +-------+-------+-------+-------+-------+
                 | 40816 | 535   | 701   | 15    | 41213 |
                 +-------+-------+-------+-------+-------+
                 | 41226 | 199   | 701   | 15    | 41621 |
                 +-------+-------+-------+-------+-------+
                 | 41641 | 27    | 709   | 15    | 42043 |
                 +-------+-------+-------+-------+-------+
                 | 42067 | 298   | 709   | 15    | 42467 |
                 +-------+-------+-------+-------+-------+
                 | 42490 | 368   | 719   | 15    | 42899 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 33961 | 554   | 599   | 14    | 34283 |
                 +-------+-------+-------+-------+-------+
                 | 34302 | 936   | 607   | 14    | 34631 |
                 +-------+-------+-------+-------+-------+
                 | 34654 | 483   | 607   | 14    | 34981 |
                 +-------+-------+-------+-------+-------+
                 | 35031 | 397   | 613   | 14    | 35363 |
                 +-------+-------+-------+-------+-------+
                 | 35395 | 241   | 619   | 14    | 35731 |
                 +-------+-------+-------+-------+-------+
                 | 35750 | 500   | 631   | 14    | 36097 |
                 +-------+-------+-------+-------+-------+
                 | 36112 | 12    | 631   | 14    | 36457 |
                 +-------+-------+-------+-------+-------+
                 | 36479 | 958   | 641   | 14    | 36833 |
                 +-------+-------+-------+-------+-------+
                 | 36849 | 524   | 641   | 14    | 37201 |
                 +-------+-------+-------+-------+-------+
                 | 37227 | 8     | 643   | 14    | 37579 |
                 +-------+-------+-------+-------+-------+
                 | 37606 | 100   | 653   | 14    | 37967 |
                 +-------+-------+-------+-------+-------+
                 | 37992 | 339   | 653   | 14    | 38351 |
                 +-------+-------+-------+-------+-------+
                 | 38385 | 804   | 659   | 14    | 38749 |
                 +-------+-------+-------+-------+-------+
                 | 38787 | 510   | 673   | 14    | 39163 |
                 +-------+-------+-------+-------+-------+
                 | 39176 | 18    | 673   | 14    | 39551 |
                 +-------+-------+-------+-------+-------+
                 | 39576 | 412   | 677   | 14    | 39953 |
                 +-------+-------+-------+-------+-------+
                 | 39980 | 394   | 683   | 14    | 40361 |
                 +-------+-------+-------+-------+-------+
                 | 40398 | 830   | 691   | 15    | 40787 |
                 +-------+-------+-------+-------+-------+
                 | 40816 | 535   | 701   | 15    | 41213 |
                 +-------+-------+-------+-------+-------+
                 | 41226 | 199   | 701   | 15    | 41621 |
                 +-------+-------+-------+-------+-------+
                 | 41641 | 27    | 709   | 15    | 42043 |
                 +-------+-------+-------+-------+-------+
                 | 42067 | 298   | 709   | 15    | 42467 |
                 +-------+-------+-------+-------+-------+
                 | 42490 | 368   | 719   | 15    | 42899 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 42916 | 755   | 727   | 15    | 43331 |
                 +-------+-------+-------+-------+-------+
                 | 43388 | 379   | 727   | 15    | 43801 |
                 +-------+-------+-------+-------+-------+
                 | 43840 | 73    | 733   | 15    | 44257 |
                 +-------+-------+-------+-------+-------+
                 | 44279 | 387   | 739   | 15    | 44701 |
                 +-------+-------+-------+-------+-------+
                 | 44729 | 457   | 751   | 15    | 45161 |
                 +-------+-------+-------+-------+-------+
                 | 45183 | 761   | 751   | 15    | 45613 |
                 +-------+-------+-------+-------+-------+
                 | 45638 | 855   | 757   | 15    | 46073 |
                 +-------+-------+-------+-------+-------+
                 | 46104 | 370   | 769   | 15    | 46549 |
                 +-------+-------+-------+-------+-------+
                 | 46574 | 261   | 769   | 15    | 47017 |
                 +-------+-------+-------+-------+-------+
                 | 47047 | 299   | 787   | 15    | 47507 |
                 +-------+-------+-------+-------+-------+
                 | 47523 | 920   | 787   | 15    | 47981 |
                 +-------+-------+-------+-------+-------+
                 | 48007 | 269   | 787   | 15    | 48463 |
                 +-------+-------+-------+-------+-------+
                 | 48489 | 862   | 797   | 15    | 48953 |
                 +-------+-------+-------+-------+-------+
                 | 48976 | 349   | 809   | 15    | 49451 |
                 +-------+-------+-------+-------+-------+
                 | 49470 | 103   | 809   | 15    | 49943 |
                 +-------+-------+-------+-------+-------+
                 | 49978 | 115   | 821   | 15    | 50461 |
                 +-------+-------+-------+-------+-------+
                 | 50511 | 93    | 821   | 16    | 50993 |
                 +-------+-------+-------+-------+-------+
                 | 51017 | 982   | 827   | 16    | 51503 |
                 +-------+-------+-------+-------+-------+
                 | 51530 | 432   | 839   | 16    | 52027 |
                 +-------+-------+-------+-------+-------+
                 | 52062 | 340   | 853   | 16    | 52571 |
                 +-------+-------+-------+-------+-------+
                 | 52586 | 173   | 853   | 16    | 53093 |
                 +-------+-------+-------+-------+-------+
                 | 53114 | 421   | 857   | 16    | 53623 |
                 +-------+-------+-------+-------+-------+
                 | 53650 | 330   | 863   | 16    | 54163 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 42916 | 755   | 727   | 15    | 43331 |
                 +-------+-------+-------+-------+-------+
                 | 43388 | 379   | 727   | 15    | 43801 |
                 +-------+-------+-------+-------+-------+
                 | 43840 | 73    | 733   | 15    | 44257 |
                 +-------+-------+-------+-------+-------+
                 | 44279 | 387   | 739   | 15    | 44701 |
                 +-------+-------+-------+-------+-------+
                 | 44729 | 457   | 751   | 15    | 45161 |
                 +-------+-------+-------+-------+-------+
                 | 45183 | 761   | 751   | 15    | 45613 |
                 +-------+-------+-------+-------+-------+
                 | 45638 | 855   | 757   | 15    | 46073 |
                 +-------+-------+-------+-------+-------+
                 | 46104 | 370   | 769   | 15    | 46549 |
                 +-------+-------+-------+-------+-------+
                 | 46574 | 261   | 769   | 15    | 47017 |
                 +-------+-------+-------+-------+-------+
                 | 47047 | 299   | 787   | 15    | 47507 |
                 +-------+-------+-------+-------+-------+
                 | 47523 | 920   | 787   | 15    | 47981 |
                 +-------+-------+-------+-------+-------+
                 | 48007 | 269   | 787   | 15    | 48463 |
                 +-------+-------+-------+-------+-------+
                 | 48489 | 862   | 797   | 15    | 48953 |
                 +-------+-------+-------+-------+-------+
                 | 48976 | 349   | 809   | 15    | 49451 |
                 +-------+-------+-------+-------+-------+
                 | 49470 | 103   | 809   | 15    | 49943 |
                 +-------+-------+-------+-------+-------+
                 | 49978 | 115   | 821   | 15    | 50461 |
                 +-------+-------+-------+-------+-------+
                 | 50511 | 93    | 821   | 16    | 50993 |
                 +-------+-------+-------+-------+-------+
                 | 51017 | 982   | 827   | 16    | 51503 |
                 +-------+-------+-------+-------+-------+
                 | 51530 | 432   | 839   | 16    | 52027 |
                 +-------+-------+-------+-------+-------+
                 | 52062 | 340   | 853   | 16    | 52571 |
                 +-------+-------+-------+-------+-------+
                 | 52586 | 173   | 853   | 16    | 53093 |
                 +-------+-------+-------+-------+-------+
                 | 53114 | 421   | 857   | 16    | 53623 |
                 +-------+-------+-------+-------+-------+
                 | 53650 | 330   | 863   | 16    | 54163 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 54188 | 624   | 877   | 16    | 54713 |
                 +-------+-------+-------+-------+-------+
                 | 54735 | 233   | 877   | 16    | 55259 |
                 +-------+-------+-------+-------+-------+
                 | 55289 | 362   | 883   | 16    | 55817 |
                 +-------+-------+-------+-------+-------+
                 | 55843 | 963   | 907   | 16    | 56393 |
                 +-------+-------+-------+-------+-------+
                 | 56403 | 471   | 907   | 16    | 56951 |
                 +-------+-------+-------+-------+-------+
        
                 +-------+-------+-------+-------+-------+
                 | 54188 | 624   | 877   | 16    | 54713 |
                 +-------+-------+-------+-------+-------+
                 | 54735 | 233   | 877   | 16    | 55259 |
                 +-------+-------+-------+-------+-------+
                 | 55289 | 362   | 883   | 16    | 55817 |
                 +-------+-------+-------+-------+-------+
                 | 55843 | 963   | 907   | 16    | 56393 |
                 +-------+-------+-------+-------+-------+
                 | 56403 | 471   | 907   | 16    | 56951 |
                 +-------+-------+-------+-------+-------+
        

Table 2: Systematic Indices and Other Parameters

表2:系统指数和其他参数

5.7. Operating with Octets, Symbols, and Matrices
5.7. 使用八位字节、符号和矩阵操作
5.7.1. General
5.7.1. 全体的

The remainder of this section describes the arithmetic operations that are used to generate encoding symbols from source symbols and to generate source symbols from encoding symbols. Mathematically, octets can be thought of as elements of a finite field, i.e., the finite field GF(256) with 256 elements, and thus the addition and multiplication operations and identity elements and inverses over both operations are defined. Matrix operations and symbol operations are defined based on the arithmetic operations on octets. This allows a full implementation of these arithmetic operations without having to understand the underlying mathematics of finite fields.

本节的其余部分描述了用于从源符号生成编码符号和从编码符号生成源符号的算术运算。从数学上讲,八位位组可以被认为是有限域的元素,即有限域GF(256)有256个元素,因此定义了加法和乘法运算以及两种运算的单位元和逆。矩阵运算和符号运算是基于八位字节的算术运算定义的。这允许完全实现这些算术运算,而不必理解有限域的基本数学。

5.7.2. Arithmetic Operations on Octets
5.7.2. 八位字节上的算术运算

Octets are mapped to non-negative integers in the range 0 through 255 in the usual way: A single octet of data from a symbol, B[7],B[6],B[5],B[4],B[3],B[2],B[1],B[0], where B[7] is the highest order bit and B[0] is the lowest order bit, is mapped to the integer i=B[7]*128+B[6]*64+B[5]*32+B[4]*16+B[3]*8+B[2]*4+B[1]*2+B[0].

八位字节以通常的方式映射到0到255范围内的非负整数:来自符号B[7]、B[6]、B[5]、B[4]、B[3]、B[2]、B[1]、B[0]的单个八位字节数据映射到整数i=B[7]*128+B[6]*64+B[5]*32+B[4]*16+B[3]*8+B[2]*4+B[1]*2+B[0]。

The addition of two octets u and v is defined as the exclusive-or operation, i.e.,

两个八位组u和v的相加被定义为异或运算,即。,

u + v = u ^ v.

u+v=u^v。

Subtraction is defined in the same way, so we also have

减法也是以同样的方式定义的,所以我们也有

u - v = u ^ v.

u-v=u^v。

The zero element (additive identity) is the octet represented by the integer 0. The additive inverse of u is simply u, i.e.,

零元素(加法标识)是由整数0表示的八位字节。u的加法逆是简单的u,即。,

u + u = 0.

u+u=0。

The multiplication of two octets is defined with the help of two tables OCT_EXP and OCT_LOG, which are given in Section 5.7.3 and Section 5.7.4, respectively. The table OCT_LOG maps octets (other than the zero element) to non-negative integers, and OCT_EXP maps non-negative integers to octets. For two octets u and v, we define

在第5.7.3节和第5.7.4节分别给出的两个表OCT_EXP和OCT_LOG的帮助下,定义了两个八位字节的乘法。表OCT_LOG将八位字节(零元素除外)映射为非负整数,OCT_EXP将非负整数映射为八位字节。对于两个八位组u和v,我们定义

u * v =

u*v=

0, if either u or v are 0,

0,如果u或v为0,

OCT_EXP[OCT_LOG[u] + OCT_LOG[v]] otherwise.

OCT_EXP[OCT_LOG[u]+OCT_LOG[v]]否则。

Note that the '+' on the right-hand side of the above is the usual integer addition, since its arguments are ordinary integers.

请注意,上面右边的“+”是常用的整数加法,因为它的参数是普通整数。

The division u / v of two octets u and v, and where v != 0, is defined as follows:

两个八位组u和v的除法u/v,其中v!=0,定义如下:

u / v =

u/v=

0, if u == 0,

0,如果u==0,

OCT_EXP[OCT_LOG[u] - OCT_LOG[v] + 255] otherwise.

OCT_EXP[OCT_LOG[u]-OCT_LOG[v]+255]否则。

The one element (multiplicative identity) is the octet represented by the integer 1. For an octet u that is not the zero element, i.e., the multiplicative inverse of u is

一个元素(乘法标识)是由整数1表示的八位字节。对于不是零元素的八位组u,即u的乘法逆是

OCT_EXP[255 - OCT_LOG[u]].

OCT_EXP[255-OCT_LOG[u]]。

The octet denoted by alpha is the octet with the integer representation 2. If i is a non-negative integer 0 <= i < 256, we have

由alpha表示的八位字节是整数表示为2的八位字节。如果i是非负整数0<=i<256,则

alpha^^i = OCT_EXP[i].

alpha^^i=OCT_EXP[i]。

5.7.3. The Table OCT_EXP
5.7.3. 这张桌子是华侨城的

The table OCT_EXP contains 510 octets. The indexing starts at 0 and ranges to 509, and the entries are the octets with the following positive integer representation:

表OCT_EXP包含510个八位字节。索引从0开始,范围从509到509,条目是具有以下正整数表示的八位字节:

1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142, 1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142

1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142, 1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142

5.7.4. The Table OCT_LOG
5.7.4. 这张桌子是用圆木做的

The table OCT_LOG contains 255 non-negative integers. The table is indexed by octets interpreted as integers. The octet corresponding to the zero element, which is represented by the integer 0, is excluded as an index, and thus indexing starts at 1 and ranges up to 255, and the entries are the following:

表OCT_LOG包含255个非负整数。该表由解释为整数的八位字节索引。与零元素对应的八位字节(由整数0表示)被排除在索引之外,因此索引从1开始,范围一直到255,条目如下:

0, 1, 25, 2, 50, 26, 198, 3, 223, 51, 238, 27, 104, 199, 75, 4, 100, 224, 14, 52, 141, 239, 129, 28, 193, 105, 248, 200, 8, 76, 113, 5, 138, 101, 47, 225, 36, 15, 33, 53, 147, 142, 218, 240, 18, 130, 69, 29, 181, 194, 125, 106, 39, 249, 185, 201, 154, 9, 120, 77, 228, 114,

0, 1, 25, 2, 50, 26, 198, 3, 223, 51, 238, 27, 104, 199, 75, 4, 100, 224, 14, 52, 141, 239, 129, 28, 193, 105, 248, 200, 8, 76, 113, 5, 138, 101, 47, 225, 36, 15, 33, 53, 147, 142, 218, 240, 18, 130, 69, 29, 181, 194, 125, 106, 39, 249, 185, 201, 154, 9, 120, 77, 228, 114,

166, 6, 191, 139, 98, 102, 221, 48, 253, 226, 152, 37, 179, 16, 145, 34, 136, 54, 208, 148, 206, 143, 150, 219, 189, 241, 210, 19, 92, 131, 56, 70, 64, 30, 66, 182, 163, 195, 72, 126, 110, 107, 58, 40, 84, 250, 133, 186, 61, 202, 94, 155, 159, 10, 21, 121, 43, 78, 212, 229, 172, 115, 243, 167, 87, 7, 112, 192, 247, 140, 128, 99, 13, 103, 74, 222, 237, 49, 197, 254, 24, 227, 165, 153, 119, 38, 184, 180, 124, 17, 68, 146, 217, 35, 32, 137, 46, 55, 63, 209, 91, 149, 188, 207, 205, 144, 135, 151, 178, 220, 252, 190, 97, 242, 86, 211, 171, 20, 42, 93, 158, 132, 60, 57, 83, 71, 109, 65, 162, 31, 45, 67, 216, 183, 123, 164, 118, 196, 23, 73, 236, 127, 12, 111, 246, 108, 161, 59, 82, 41, 157, 85, 170, 251, 96, 134, 177, 187, 204, 62, 90, 203, 89, 95, 176, 156, 169, 160, 81, 11, 245, 22, 235, 122, 117, 44, 215, 79, 174, 213, 233, 230, 231, 173, 232, 116, 214, 244, 234, 168, 80, 88, 175

166, 6, 191, 139, 98, 102, 221, 48, 253, 226, 152, 37, 179, 16, 145, 34, 136, 54, 208, 148, 206, 143, 150, 219, 189, 241, 210, 19, 92, 131, 56, 70, 64, 30, 66, 182, 163, 195, 72, 126, 110, 107, 58, 40, 84, 250, 133, 186, 61, 202, 94, 155, 159, 10, 21, 121, 43, 78, 212, 229, 172, 115, 243, 167, 87, 7, 112, 192, 247, 140, 128, 99, 13, 103, 74, 222, 237, 49, 197, 254, 24, 227, 165, 153, 119, 38, 184, 180, 124, 17, 68, 146, 217, 35, 32, 137, 46, 55, 63, 209, 91, 149, 188, 207, 205, 144, 135, 151, 178, 220, 252, 190, 97, 242, 86, 211, 171, 20, 42, 93, 158, 132, 60, 57, 83, 71, 109, 65, 162, 31, 45, 67, 216, 183, 123, 164, 118, 196, 23, 73, 236, 127, 12, 111, 246, 108, 161, 59, 82, 41, 157, 85, 170, 251, 96, 134, 177, 187, 204, 62, 90, 203, 89, 95, 176, 156, 169, 160, 81, 11, 245, 22, 235, 122, 117, 44, 215, 79, 174, 213, 233, 230, 231, 173, 232, 116, 214, 244, 234, 168, 80, 88, 175

5.7.5. Operations on Symbols
5.7.5. 符号操作

Operations on symbols have the same semantics as operations on vectors of octets of length T in this specification. Thus, if U and V are two symbols formed by the octets u[0], ..., u[T-1] and v[0], ..., v[T-1], respectively, the sum of symbols U + V is defined to be the component-wise sum of octets, i.e., equal to the symbol D formed by the octets d[0], ..., d[T-1], such that

符号上的操作与本规范中长度为T的八位字节向量上的操作具有相同的语义。因此,如果U和V分别是由八位元U[0]、…、U[T-1]和V[0]、…、V[T-1]形成的两个符号,则符号U+V的和被定义为八位元的分量式和,即,等于由八位元D[0]、…、D[T-1]形成的符号D,从而

d[i] = u[i] + v[i], 0 <= i < T.

d[i]=u[i]+v[i],0<=i<T。

Furthermore, if beta is an octet, the product beta*U is defined to be the symbol D obtained by multiplying each octet of U by beta, i.e.,

此外,如果beta是八位字节,则乘积beta*U被定义为通过将U的每个八位字节乘以beta而获得的符号D,即。,

d[i] = beta*u[i], 0 <= i < T.

d[i]=beta*u[i],0<=i<T。

5.7.6. Operations on Matrices
5.7.6. 矩阵运算

All matrices in this specification have entries that are octets, and thus matrix operations and definitions are defined in terms of the underlying octet arithmetic, e.g., operations on a matrix, matrix rank, and matrix inversion.

本规范中的所有矩阵都有八位字节的条目,因此矩阵运算和定义是根据基础八位字节算法定义的,例如,对矩阵的运算、矩阵秩和矩阵求逆。

5.8. Requirements for a Compliant Decoder
5.8. 对兼容解码器的要求

If a RaptorQ-compliant decoder receives a mathematically sufficient set of encoding symbols generated according to the encoder specification in Section 5.3 for reconstruction of a source block, then such a decoder SHOULD recover the entire source block.

如果RaptorQ兼容解码器接收到根据第5.3节中的编码器规范生成的用于重建源块的数学上足够的编码符号集,则此类解码器应恢复整个源块。

A RaptorQ-compliant decoder SHALL have the following recovery properties for source blocks with K' source symbols for all values of K' in Table 2 of Section 5.6.

RaptorQ兼容解码器对于第5.6节表2中所有K'值的K'源符号的源块应具有以下恢复特性。

1. If the decoder receives K' encoding symbols generated according to the encoder specification in Section 5.3 with corresponding ESIs chosen independently and uniformly at random from the range of possible ESIs, then on average the decoder will fail to recover the entire source block at most 1 out of 100 times.

1. 如果解码器接收到根据第5.3节中的编码器规范生成的K'编码符号,并且从可能的ESI范围中独立且均匀地随机选择相应的ESI,则平均而言,解码器将无法恢复整个源块,最多100次中的1次。

2. If the decoder receives K'+1 encoding symbols generated according to the encoder specification in Section 5.3 with corresponding ESIs chosen independently and uniformly at random from the range of possible ESIs, then on average the decoder will fail to recover the entire source block at most 1 out of 10,000 times.

2. 如果解码器接收到根据第5.3节中的编码器规范生成的K'+1编码符号,并从可能的ESI范围内独立且均匀地随机选择相应的ESI,则平均而言,解码器将无法恢复整个源块,最多10000次中的1次。

3. If the decoder receives K'+2 encoding symbols generated according to the encoder specification in Section 5.3 with corresponding ESIs chosen independently and uniformly at random from the range of possible ESIs, then on average the decoder will fail to recover the entire source block at most 1 out of 1,000,000 times.

3. 如果解码器接收到根据第5.3节中的编码器规范生成的K'+2编码符号,并从可能的ESI范围中独立且均匀地随机选择相应的ESI,则平均而言,解码器将无法恢复整个源块,最多1000000次中的1次。

Note that the Example FEC Decoder specified in Section 5.4 fulfills both requirements, i.e.,

注意,第5.4节中规定的示例FEC解码器满足这两个要求,即:。,

1. it can reconstruct a source block as long as it receives a mathematically sufficient set of encoding symbols generated according to the encoder specification in Section 5.3, and

1. 只要接收到根据第5.3节编码器规范生成的一组数学上足够的编码符号,它就可以重构源块,并且

2. it fulfills the mandatory recovery properties from above.

2. 它满足上述强制恢复属性。

6. Security Considerations
6. 安全考虑

Data delivery can be subject to denial-of-service attacks by attackers that send corrupted packets that are accepted as legitimate by receivers. This is particularly a concern for multicast delivery because a corrupted packet may be injected into the session close to the root of the multicast tree, in which case the corrupted packet will arrive at many receivers. The use of even one corrupted packet containing encoding data may result in the decoding of an object that is completely corrupted and unusable. It is thus RECOMMENDED that source authentication and integrity checking are applied to decoded objects before delivering objects to an application. For example, a SHA-256 hash [FIPS.180-3.2008] of an object may be appended before transmission, and the SHA-256 hash is computed and checked after the object is decoded but before it is delivered to an application. Source authentication SHOULD be provided, for example, by including a digital signature verifiable by the receiver computed on top of the hash value. It is also RECOMMENDED that a packet authentication protocol such as TESLA [RFC4082] be used to detect and discard corrupted packets upon arrival. This method may also be used to provide source authentication. Furthermore, it is RECOMMENDED that

数据传输可能受到攻击者的拒绝服务攻击,攻击者发送被接收方视为合法的损坏数据包。这对于多播交付来说尤其令人担忧,因为损坏的分组可能被注入到靠近多播树根的会话中,在这种情况下,损坏的分组将到达多个接收机。即使使用一个包含编码数据的损坏数据包,也可能导致对完全损坏和不可用的对象进行解码。因此,建议在将对象交付给应用程序之前,对解码对象应用源身份验证和完整性检查。例如,对象的SHA-256散列[FIPS.180-3.2008]可以在传输之前追加,并且在对象解码之后但在将其交付给应用程序之前计算和检查SHA-256散列。应提供源认证,例如,通过包括可由在散列值之上计算的接收器验证的数字签名。还建议使用诸如TESLA[RFC4082]之类的数据包认证协议来检测和丢弃到达时损坏的数据包。此方法也可用于提供源身份验证。此外,建议:

Reverse Path Forwarding checks be enabled in all network routers and switches along the path from the sender to receivers to limit the possibility of a bad agent successfully injecting a corrupted packet into the multicast tree data path.

反向路径转发检查可以在从发送方到接收方的所有网络路由器和交换机中启用,以限制坏代理成功将损坏的数据包注入多播树数据路径的可能性。

Another security concern is that some FEC information may be obtained by receivers out-of-band in a session description, and if the session description is forged or corrupted, then the receivers will not use the correct protocol for decoding content from received packets. To avoid these problems, it is RECOMMENDED that measures be taken to prevent receivers from accepting incorrect session descriptions, e.g., by using source authentication to ensure that receivers only accept legitimate session descriptions from authorized senders.

另一个安全问题是,一些FEC信息可能由会话描述中的带外接收器获得,并且如果会话描述是伪造的或损坏的,则接收器将不会使用正确的协议来解码来自所接收分组的内容。为了避免这些问题,建议采取措施防止接收者接受不正确的会话描述,例如,通过使用源身份验证确保接收者只接受来自授权发送者的合法会话描述。

7. IANA Considerations
7. IANA考虑

Values of FEC Encoding IDs and FEC Instance IDs are subject to IANA registration. For general guidelines on IANA considerations as they apply to this document, see [RFC5052]. IANA has assigned the value 6 under the ietf:rmt:fec:encoding registry to "RaptorQ Code" as the Fully-Specified FEC Encoding ID value associated with this specification.

FEC编码ID和FEC实例ID的值受IANA注册的约束。有关适用于本文件的IANA注意事项的一般指南,请参见[RFC5052]。IANA已将ietf:rmt:fec:encoding注册表下的值6分配给“RaptorQ代码”,作为与本规范相关的完全指定的fec编码ID值。

8. Acknowledgements
8. 致谢

Thanks are due to Ranganathan (Ranga) Krishnan. Ranga Krishnan has been very supportive in finding and resolving implementation details and in finding the systematic indices. In addition, Habeeb Mohiuddin Mohammed and Antonios Pitarokoilis, both from the Munich University of Technology (TUM), and Alan Shinsato have done two independent implementations of the RaptorQ encoder/decoder that have helped to clarify and to resolve issues with this specification.

感谢你是因为兰加纳坦(兰加)克里希南。Ranga Krishnan一直非常支持寻找和解决实施细节以及寻找系统性指标。此外,来自慕尼黑技术大学(TUM)和Alan Shinsato的Habeeb Mohiuddin Mohammed和安东尼奥皮塔罗库利斯和Alan Shinsato已经完成了两个独立的RAPTROQ编码器/解码器的实现,这有助于澄清和解决本规范的问题。

9. References
9. 工具书类
9.1. Normative References
9.1. 规范性引用文件

[FIPS.180-3.2008] National Institute of Standards and Technology, "Secure Hash Standard", FIPS PUB 180-3, October 2008.

[FIPS.180-3.2008]国家标准与技术研究所,“安全哈希标准”,FIPS PUB 180-3,2008年10月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC4082] Perrig, A., Song, D., Canetti, R., Tygar, J., and B. Briscoe, "Timed Efficient Stream Loss-Tolerant Authentication (TESLA): Multicast Source Authentication Transform Introduction", RFC 4082, June 2005.

[RFC4082]Perrig,A.,Song,D.,Canetti,R.,Tygar,J.,和B.Briscoe,“定时高效流丢失容忍认证(TESLA):多播源认证转换介绍”,RFC 40822005年6月。

[RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error Correction (FEC) Building Block", RFC 5052, August 2007.

[RFC5052]Watson,M.,Luby,M.,和L.Vicisano,“前向纠错(FEC)构建块”,RFC 5052,2007年8月。

9.2. Informative References
9.2. 资料性引用

[LTCodes] Luby, M., "LT codes", Annual IEEE Symposium on Foundations of Computer Science, pp. 271-280, November 2002.

[LTCodes]Luby,M.,“LT代码”,IEEE计算机科学基础年会,第271-280页,2002年11月。

[RFC3453] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M., and J. Crowcroft, "The Use of Forward Error Correction (FEC) in Reliable Multicast", RFC 3453, December 2002.

[RFC3453]Luby,M.,Vicisano,L.,Gemmell,J.,Rizzo,L.,Handley,M.,和J.Crowcroft,“在可靠多播中使用前向纠错(FEC)”,RFC 3453,2002年12月。

[RFC5053] Luby, M., Shokrollahi, A., Watson, M., and T. Stockhammer, "Raptor Forward Error Correction Scheme for Object Delivery", RFC 5053, October 2007.

[RFC5053]Luby,M.,Shokrollahi,A.,Watson,M.,和T.Stockhammer,“用于对象交付的猛禽前向纠错方案”,RFC 5053,2007年10月。

[RaptorCodes] Shokrollahi, A. and M. Luby, "Raptor Codes", Foundations and Trends in Communications and Information Theory: Vol. 6: No. 3-4, pp. 213-322, 2011.

[猛禽代码]Shokrollahi,A.和M.Luby,“猛禽代码”,通信和信息理论的基础和趋势:第6卷:第3-4期,第213-322页,2011年。

Authors' Addresses

作者地址

Michael Luby Qualcomm Incorporated 3165 Kifer Road Santa Clara, CA 95051 U.S.A.

美国加利福尼亚州圣克拉拉基弗路3165号Michael Luby高通公司,邮编95051。

   EMail: luby@qualcomm.com
        
   EMail: luby@qualcomm.com
        

Amin Shokrollahi EPFL Laboratoire d'algorithmique Station 14 Batiment BC Lausanne 1015 Switzerland

Amin Shokrollahi EPFL算法实验室站14 Batiment BC洛桑1015瑞士

   EMail: amin.shokrollahi@epfl.ch
        
   EMail: amin.shokrollahi@epfl.ch
        

Mark Watson Netflix Inc. 100 Winchester Circle Los Gatos, CA 95032 U.S.A.

Mark Watson Netflix Inc.美国加利福尼亚州洛斯加托斯温彻斯特圈100号,邮编95032。

   EMail: watsonm@netflix.com
        
   EMail: watsonm@netflix.com
        

Thomas Stockhammer Nomor Research Brecherspitzstrasse 8 Munich 81541 Germany

Thomas Stockhammer Nomor Research Brecherspitzstrasse 8慕尼黑81541德国

   EMail: stockhammer@nomor.de
        
   EMail: stockhammer@nomor.de
        

Lorenz Minder Qualcomm Incorporated 3165 Kifer Road Santa Clara, CA 95051 U.S.A.

美国加利福尼亚州圣克拉拉基弗路3165号Lorenz Minder高通公司,邮编95051。

   EMail: lminder@qualcomm.com
        
   EMail: lminder@qualcomm.com