net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

Message ID 20240104172756.2213-1-madhuker.mythri@oracle.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements. |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Functional success Functional Testing PASS
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-sample-apps-testing success Testing PASS

Commit Message

Madhuker Mythri Jan. 4, 2024, 5:27 p.m. UTC
  From: Madhuker Mythri <madhuker.mythri@oracle.com>

When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.

Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
------------------------
rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list too long
------------------------

RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
Here are the major BPF verifier restrictions observed:
1) Need to use new BPF maps structure.
2) Kernel SKB data pointer access not allowed.
3) Undefined loops were not allowed(which are bounded by a variable value).
4) unreachable instructions(like: undefined array access).

After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.

Note: This new BPF changes supports from Kernel:4.10 version.

Bugzilla Id: 1329

Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
---
 drivers/net/tap/bpf/tap_bpf_program.c |  243 +-
 drivers/net/tap/tap_bpf_api.c         |    4 +-
 drivers/net/tap/tap_bpf_insns.h       | 3781 ++++++++++++++-----------
 3 files changed, 2151 insertions(+), 1877 deletions(-)
  

Comments

Stephen Hemminger Jan. 4, 2024, 8:32 p.m. UTC | #1
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> From: Madhuker Mythri <madhuker.mythri@oracle.com>
> 
> When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.
> 
> Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
> ------------------------
> rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list too long
> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.
> 3) Undefined loops were not allowed(which are bounded by a variable value).
> 4) unreachable instructions(like: undefined array access).
> 
> After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.
> 
> Note: This new BPF changes supports from Kernel:4.10 version.
> 
> Bugzilla Id: 1329
> 
> Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
> ---
>  drivers/net/tap/bpf/tap_bpf_program.c |  243 +-
>  drivers/net/tap/tap_bpf_api.c         |    4 +-
>  drivers/net/tap/tap_bpf_insns.h       | 3781 ++++++++++++++-----------
>  3 files changed, 2151 insertions(+), 1877 deletions(-)

Patch has trailing whitespace, git complains:
$ git am /tmp/bpf.mbox
Applying: net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:98: trailing whitespace.
	// queue match 
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:243: trailing whitespace.
			/** Is IP fragmented **/ 
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:326: trailing whitespace.
/*	bpf_printk(">>>>> rss_l3_l4 hash=0x%x queue:1=%u\n", hash, queue); */ 
warning: 3 lines add whitespace errors.
  
Stephen Hemminger Jan. 4, 2024, 8:33 p.m. UTC | #2
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> +#include <linux/udp.h>
> +#include <linux/bpf.h>
> +#include <bpf/bpf_helpers.h>
> +#include <bpf/bpf_tracing.h>
> +#include <bpf/bpf_endian.h>
> +#include <linux/pkt_cls.h>
> +#include "tap_rss.h"
>  

This change in headers breaks the use of make in the bpf directory.
  
Stephen Hemminger Jan. 4, 2024, 8:35 p.m. UTC | #3
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> +#include <linux/bpf.h>
> +#include <bpf/bpf_helpers.h>
> +#include <bpf/bpf_tracing.h>
> +#include <bpf/bpf_endian.h>

The original code copied the bpf headers from distro (was bad idea).
This should be fixed in tap driver to make sure that there is no mismatch.
  
Stephen Hemminger Jan. 4, 2024, 8:38 p.m. UTC | #4
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> -static __u32  __attribute__((always_inline))
> -rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
> -		__u8 input_len)
> +static __u64  __attribute__((always_inline))
> +rte_softrss_be(const __u32 *input_tuple, __u8 input_len)

Why the change to u64?
This is not part of the bug fix and not how RSS is defined.
  
Stephen Hemminger Jan. 4, 2024, 8:39 p.m. UTC | #5
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
> index 53fa76c4e6..b3dc11b901 100644
> --- a/drivers/net/tap/tap_bpf_insns.h
> +++ b/drivers/net/tap/tap_bpf_insns.h
> @@ -1,10 +1,10 @@
>  /* SPDX-License-Identifier: BSD-3-Clause
> - * Auto-generated from tap_bpf_program.c
> - * This not the original source file. Do NOT edit it.
> + * Copyright 2017 Mellanox Technologies, Ltd
>   */

Why the Mellanox copyright addition, the python auto-generator does not add it?

Overall, it looks like you did not work with existing TAP BPF code but went back
to some other code you had.
  
Stephen Hemminger Jan. 4, 2024, 8:41 p.m. UTC | #6
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> -	/* Get correct proto for 802.1ad */
> -	if (skb->vlan_present && skb->vlan_proto == htons(ETH_P_8021AD)) {
> -		if (data + ETH_ALEN * 2 + sizeof(struct vlan_hdr) +
> -		    sizeof(proto) > data_end)
> -			return TC_ACT_OK;
> -		proto = *(__u16 *)(data + ETH_ALEN * 2 +
> -				   sizeof(struct vlan_hdr));
> -		off += sizeof(struct vlan_hdr);
> -	}

Your version loses VLAN support?
  
Stephen Hemminger Jan. 4, 2024, 8:42 p.m. UTC | #7
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

>  {
> -	void *data_end = (void *)(long)skb->data_end;
> -	void *data = (void *)(long)skb->data;
> -	__u16 proto = (__u16)skb->protocol;
> +    struct neth nh;
> +    struct net6h n6h;

Sloppy non-standard indentation.

And original code would work with tunnels, this won't
  
Stephen Hemminger Jan. 4, 2024, 8:57 p.m. UTC | #8
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.

I noticed you are now using bpf_skb_load_bytes(), but the bpf helper man page
implies it is not needed.

     long bpf_skb_load_bytes(const void *skb, u32 offset, void *to,
       u32 len)

              Description
                     This helper was provided as an easy way to load
                     data from a packet. It can be used to load len
                     bytes from offset from the packet associated to
                     skb, into the buffer pointed by to.

                     Since Linux 4.7, usage of this helper has mostly
                     been replaced by "direct packet access", enabling
                     packet data to be manipulated with skb->data and
                     skb->data_end pointing respectively to the first
                     byte of packet data and to the byte after the last
                     byte of packet data. However, it remains useful if
                     one wishes to read large quantities of data at once
                     from a packet into the eBPF stack.

              Return 0 on success, or a negative error in case of
  
Madhuker Mythri Jan. 5, 2024, 2:44 p.m. UTC | #9
Hi Stephen,

The BPF helper man pages implies in that way and the SKB data pointer access was working till 5.4 kernel also, however from Kernel-5.15 version, we do see eBPF verifier throws error when we use SKB data pointer access.
So, I had used this helper functions and able to resolve the errors. This is helper functions are safe to use and also protects from any non-linear skb data buffer access also.

So, I think using helper functions is better and safe way to access the SKB data, instead of pointer access.

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 05 January 2024 02:27
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.

I noticed you are now using bpf_skb_load_bytes(), but the bpf helper man page implies it is not needed.

     long bpf_skb_load_bytes(const void *skb, u32 offset, void *to,
       u32 len)

              Description
                     This helper was provided as an easy way to load
                     data from a packet. It can be used to load len
                     bytes from offset from the packet associated to
                     skb, into the buffer pointed by to.

                     Since Linux 4.7, usage of this helper has mostly
                     been replaced by "direct packet access", enabling
                     packet data to be manipulated with skb->data and
                     skb->data_end pointing respectively to the first
                     byte of packet data and to the byte after the last
                     byte of packet data. However, it remains useful if
                     one wishes to read large quantities of data at once
                     from a packet into the eBPF stack.

              Return 0 on success, or a negative error in case of
  
Madhuker Mythri Jan. 5, 2024, 2:58 p.m. UTC | #10
Hi Stephen,

As part of hash calculation logic, the hash value is going beyond 32-bits and thus the eBPF verifier throws error with the 32-bit hash variable.
So, I need to modify as 64-bit hash variable to resolve the BPF verifier error.

Here, in the code this rte_softrss_be() function is returning the hash variable, which is a 64-bit value, so modified the return type from 32-bit to 64-bit.
==================
-static __u32  __attribute__((always_inline))
-rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
-               __u8 input_len)
+static __u64  __attribute__((always_inline))
+rte_softrss_be(const __u32 *input_tuple, __u8 input_len)
 {
-       __u32 i, j, hash = 0;
-#pragma unroll
+       __u32 i, j;
+        __u64  hash = 0;
+#pragma clang loop unroll(full)
        for (j = 0; j < input_len; j++) {
-#pragma unroll
+#pragma clang loop unroll(full)
                for (i = 0; i < 32; i++) {
                        if (input_tuple[j] & (1U << (31 - i))) {
                                hash ^= ((const __u32 *)def_rss_key)[j] << i |
-                               (__u32)((uint64_t)
+                               (__u32)((__u64)
                                (((const __u32 *)def_rss_key)[j + 1])
                                        >> (32 - i));
                        }
@@ -119,137 +107,78 @@ rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
        return hash;
 }
======================

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 05 January 2024 02:09
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> -static __u32  __attribute__((always_inline)) -rte_softrss_be(const 
> __u32 *input_tuple, const uint8_t *rss_key,
> -		__u8 input_len)
> +static __u64  __attribute__((always_inline)) rte_softrss_be(const 
> +__u32 *input_tuple, __u8 input_len)

Why the change to u64?
This is not part of the bug fix and not how RSS is defined.
  
Madhuker Mythri Jan. 5, 2024, 2:58 p.m. UTC | #11
Sure, will update accordingly.

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 05 January 2024 02:02
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> From: Madhuker Mythri <madhuker.mythri@oracle.com>
> 
> When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.
> 
> Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
> ------------------------
> rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list too long
> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.
> 3) Undefined loops were not allowed(which are bounded by a variable value).
> 4) unreachable instructions(like: undefined array access).
> 
> After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.
> 
> Note: This new BPF changes supports from Kernel:4.10 version.
> 
> Bugzilla Id: 1329
> 
> Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
> ---
>  drivers/net/tap/bpf/tap_bpf_program.c |  243 +-
>  drivers/net/tap/tap_bpf_api.c         |    4 +-
>  drivers/net/tap/tap_bpf_insns.h       | 3781 ++++++++++++++-----------
>  3 files changed, 2151 insertions(+), 1877 deletions(-)

Patch has trailing whitespace, git complains:
$ git am /tmp/bpf.mbox
Applying: net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:98: trailing whitespace.
	// queue match 
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:243: trailing whitespace.
			/** Is IP fragmented **/ 
/home/shemminger/DPDK/main/.git/worktrees/libbpf/rebase-apply/patch:326: trailing whitespace.
/*	bpf_printk(">>>>> rss_l3_l4 hash=0x%x queue:1=%u\n", hash, queue); */ 
warning: 3 lines add whitespace errors.
  
Madhuker Mythri Jan. 5, 2024, 3:11 p.m. UTC | #12
By using this " bpf_skb_load_bytes_relative()" helper function we can directly retrieve the Network header data fields, so we no need to check for L2-header VLAN presence.

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 05 January 2024 02:11
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> -	/* Get correct proto for 802.1ad */
> -	if (skb->vlan_present && skb->vlan_proto == htons(ETH_P_8021AD)) {
> -		if (data + ETH_ALEN * 2 + sizeof(struct vlan_hdr) +
> -		    sizeof(proto) > data_end)
> -			return TC_ACT_OK;
> -		proto = *(__u16 *)(data + ETH_ALEN * 2 +
> -				   sizeof(struct vlan_hdr));
> -		off += sizeof(struct vlan_hdr);
> -	}

Your version loses VLAN support?
  
Stephen Hemminger Jan. 5, 2024, 5:39 p.m. UTC | #13
On Fri, 5 Jan 2024 14:44:00 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> Hi Stephen,
> 
> The BPF helper man pages implies in that way and the SKB data pointer access was working till 5.4 kernel also, however from Kernel-5.15 version, we do see eBPF verifier throws error when we use SKB data pointer access.
> So, I had used this helper functions and able to resolve the errors. This is helper functions are safe to use and also protects from any non-linear skb data buffer access also.
> 
> So, I think using helper functions is better and safe way to access the SKB data, instead of pointer access.
> 
> Thanks,
> Madhuker.

Using the accessors may mean it won't work with older kernels, but that is not
a huge concern given how fragile this code is.
  
Stephen Hemminger Jan. 5, 2024, 5:40 p.m. UTC | #14
On Fri, 5 Jan 2024 14:58:22 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> Hi Stephen,
> 
> As part of hash calculation logic, the hash value is going beyond 32-bits and thus the eBPF verifier throws error with the 32-bit hash variable.
> So, I need to modify as 64-bit hash variable to resolve the BPF verifier error.
> 
> Here, in the code this rte_softrss_be() function is returning the hash variable, which is a 64-bit value, so modified the return type from 32-bit to 64-bit.

Simple cast should do the necessary truncation.
  
Stephen Hemminger Jan. 5, 2024, 5:41 p.m. UTC | #15
On Fri, 5 Jan 2024 15:11:22 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> By using this " bpf_skb_load_bytes_relative()" helper function we can directly retrieve the Network header data fields, so we no need to check for L2-header VLAN presence.
> 
> Thanks,
> Madhuker.

No problem, the vlan code was already broken. The kernel offloads vlan header to skb
but who ever wrote the original did not know that is what happens in modern kernels.
  
Stephen Hemminger Jan. 5, 2024, 7:30 p.m. UTC | #16
On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> adhuker Mythri <madhuker.mythri@oracle.com>
> 
> When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.
> 
> Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
> ------------------------
> rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list too long
> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.
> 3) Undefined loops were not allowed(which are bounded by a variable value).
> 4) unreachable instructions(like: undefined array access).
> 
> After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.
> 
> Note: This new BPF changes supports from Kernel:4.10 version.
> 
> Bugzilla Id: 1329
> 
> Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>

I tried this version on Debian testing which has:
	kernel 6.5.0-5-amd64
	clang 16.0.6

If build and run with the pre-compiled BPF then it will load the
example flow  (see https://doc.dpdk.org/guides/nics/tap.html)

But if I recompile the bpf program by using make in the tap/bpf
directory, then the resulting bpf instructions will not make
it past verifier.

With modified tap_bpf_api can get the log message as:

testpmd> flow create 0 priority 4 ingress pattern eth dst is 0a:0b:0c:0d:0e:0f  / ipv4 / tcp / end actions rss queues 0 1 2 3 end / end
rss_add_actions(): Failed to load BPF section l3_l4 (13): func#0 @0
0: R1=ctx(off=0,imm=0) R10=fp0
0: (bf) r6 = r1                       ; R1=ctx(off=0,imm=0) R6_w=ctx(off=0,imm=0)
1: (18) r1 = 0x300                    ; R1_w=768
3: (63) *(u32 *)(r10 -84) = r1        ; R1_w=768 R10=fp0 fp-88=mmmm????
4: (bf) r2 = r10                      ; R2_w=fp0 R10=fp0
5: (07) r2 += -84                     ; R2_w=fp-84
6: (18) r1 = 0xfd                     ; R1_w=253
8: (85) call bpf_map_lookup_elem#1
R1 type=scalar expected=map_ptr
processed 7 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0

port_flow_complain(): Caught PMD error type 16 (specific action): cause: 0x7ffcef37e678, action not supported: Operation not supported
  
Madhuker Mythri Jan. 6, 2024, 5:36 a.m. UTC | #17
The flow creation worked well for us on the Azure/Hyper-V platform using failsafe/tap PMD, using Kernel-5.15.0 and 5.4 versions.

So, does the original/existing code works well on Kernel-6.5 version ?

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 06 January 2024 01:01
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> adhuker Mythri <madhuker.mythri@oracle.com>
> 
> When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.
> 
> Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
> ------------------------
> rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list 
> too long
> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.
> 3) Undefined loops were not allowed(which are bounded by a variable value).
> 4) unreachable instructions(like: undefined array access).
> 
> After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.
> 
> Note: This new BPF changes supports from Kernel:4.10 version.
> 
> Bugzilla Id: 1329
> 
> Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>

I tried this version on Debian testing which has:
	kernel 6.5.0-5-amd64
	clang 16.0.6

If build and run with the pre-compiled BPF then it will load the example flow  (see https://urldefense.com/v3/__https://doc.dpdk.org/guides/nics/tap.html__;!!ACWV5N9M2RV99hQ!I6LFEsrAnlW2WMQlCy7Sxw-9MxJ_Qtchg-aZdal53Np6QtmC1wWsMdG_uT3zc57Yu7kvJANA-dQIirEUr-BWfaVXhGtd$ )

But if I recompile the bpf program by using make in the tap/bpf directory, then the resulting bpf instructions will not make it past verifier.

With modified tap_bpf_api can get the log message as:

testpmd> flow create 0 priority 4 ingress pattern eth dst is 
testpmd> 0a:0b:0c:0d:0e:0f  / ipv4 / tcp / end actions rss queues 0 1 2 
testpmd> 3 end / end
rss_add_actions(): Failed to load BPF section l3_l4 (13): func#0 @0
0: R1=ctx(off=0,imm=0) R10=fp0
0: (bf) r6 = r1                       ; R1=ctx(off=0,imm=0) R6_w=ctx(off=0,imm=0)
1: (18) r1 = 0x300                    ; R1_w=768
3: (63) *(u32 *)(r10 -84) = r1        ; R1_w=768 R10=fp0 fp-88=mmmm????
4: (bf) r2 = r10                      ; R2_w=fp0 R10=fp0
5: (07) r2 += -84                     ; R2_w=fp-84
6: (18) r1 = 0xfd                     ; R1_w=253
8: (85) call bpf_map_lookup_elem#1
R1 type=scalar expected=map_ptr
processed 7 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0

port_flow_complain(): Caught PMD error type 16 (specific action): cause: 0x7ffcef37e678, action not supported: Operation not supported
  
Madhuker Mythri Jan. 6, 2024, 5:47 a.m. UTC | #18
I had tested with 5.4 and 5.15 kernel-versions with this new changes and works well.
I found that the helper functions were introduced in Kernel 4.7 version. So, thinking this code should work from Kernel-4.9, as mentioned in the TAP PMD link: https://doc.dpdk.org/guides/nics/tap.html.

Yes, I understand BPF program code is very sensitive and difficult to debug. However, as per testing this work well(able to load the RSS BPF instructions) on Azure/Hyper-V platforms with failsafe/tap PMD.

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: 05 January 2024 23:10
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: Re: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Fri, 5 Jan 2024 14:44:00 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> Hi Stephen,
> 
> The BPF helper man pages implies in that way and the SKB data pointer access was working till 5.4 kernel also, however from Kernel-5.15 version, we do see eBPF verifier throws error when we use SKB data pointer access.
> So, I had used this helper functions and able to resolve the errors. This is helper functions are safe to use and also protects from any non-linear skb data buffer access also.
> 
> So, I think using helper functions is better and safe way to access the SKB data, instead of pointer access.
> 
> Thanks,
> Madhuker.

Using the accessors may mean it won't work with older kernels, but that is not a huge concern given how fragile this code is.
  
Madhuker Mythri Jan. 6, 2024, 10:23 a.m. UTC | #19
Hi Stephen,

The new Kernel expects the BPF maps in BTF format: https://www.kernel.org/doc/html/v5.4/bpf/btf.html.
So, we need to compile with "-g" option as follows:
==============================
clang -O2 -target bpf -c tap_bpf_program.c  -g  -o  tap_bpf_program.o
=============================

I had cross check this functionality with DPDK-22.11 and as the BPF C-program is same had modified just the C-program and submitted for review.
I will update the Makefile changes also and will publish for code-review once again w.r.t DPDK-23.11.

Thanks,
Madhuker.

-----Original Message-----
From: Madhuker Mythri 
Sent: 06 January 2024 11:06
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: RE: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

The flow creation worked well for us on the Azure/Hyper-V platform using failsafe/tap PMD, using Kernel-5.15.0 and 5.4 versions.

So, does the original/existing code works well on Kernel-6.5 version ?

Thanks,
Madhuker.

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org>
Sent: 06 January 2024 01:01
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.

On Thu,  4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:

> adhuker Mythri <madhuker.mythri@oracle.com>
> 
> When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.
> 
> Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
> ------------------------
> rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list 
> too long
> ------------------------
> 
> RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
> Here are the major BPF verifier restrictions observed:
> 1) Need to use new BPF maps structure.
> 2) Kernel SKB data pointer access not allowed.
> 3) Undefined loops were not allowed(which are bounded by a variable value).
> 4) unreachable instructions(like: undefined array access).
> 
> After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.
> 
> Note: This new BPF changes supports from Kernel:4.10 version.
> 
> Bugzilla Id: 1329
> 
> Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>

I tried this version on Debian testing which has:
	kernel 6.5.0-5-amd64
	clang 16.0.6

If build and run with the pre-compiled BPF then it will load the example flow  (see https://urldefense.com/v3/__https://doc.dpdk.org/guides/nics/tap.html__;!!ACWV5N9M2RV99hQ!I6LFEsrAnlW2WMQlCy7Sxw-9MxJ_Qtchg-aZdal53Np6QtmC1wWsMdG_uT3zc57Yu7kvJANA-dQIirEUr-BWfaVXhGtd$ )

But if I recompile the bpf program by using make in the tap/bpf directory, then the resulting bpf instructions will not make it past verifier.

With modified tap_bpf_api can get the log message as:

testpmd> flow create 0 priority 4 ingress pattern eth dst is 
testpmd> 0a:0b:0c:0d:0e:0f  / ipv4 / tcp / end actions rss queues 0 1 2
testpmd> 3 end / end
rss_add_actions(): Failed to load BPF section l3_l4 (13): func#0 @0
0: R1=ctx(off=0,imm=0) R10=fp0
0: (bf) r6 = r1                       ; R1=ctx(off=0,imm=0) R6_w=ctx(off=0,imm=0)
1: (18) r1 = 0x300                    ; R1_w=768
3: (63) *(u32 *)(r10 -84) = r1        ; R1_w=768 R10=fp0 fp-88=mmmm????
4: (bf) r2 = r10                      ; R2_w=fp0 R10=fp0
5: (07) r2 += -84                     ; R2_w=fp-84
6: (18) r1 = 0xfd                     ; R1_w=253
8: (85) call bpf_map_lookup_elem#1
R1 type=scalar expected=map_ptr
processed 7 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0

port_flow_complain(): Caught PMD error type 16 (specific action): cause: 0x7ffcef37e678, action not supported: Operation not supported
  
Stephen Hemminger Jan. 6, 2024, 4:54 p.m. UTC | #20
On Sat, 6 Jan 2024 10:23:57 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> Hi Stephen,
> 
> The new Kernel expects the BPF maps in BTF format: https://www.kernel.org/doc/html/v5.4/bpf/btf.html.
> So, we need to compile with "-g" option as follows:
> ==============================
> clang -O2 -target bpf -c tap_bpf_program.c  -g  -o  tap_bpf_program.o

That makes sense, but using that command line won't work because it
causes Debian to not find asm/types.h
  
Stephen Hemminger Jan. 6, 2024, 6:16 p.m. UTC | #21
On Sat, 6 Jan 2024 10:23:57 +0000
Madhuker Mythri <madhuker.mythri@oracle.com> wrote:

> Hi Stephen,
> 
> The new Kernel expects the BPF maps in BTF format: https://www.kernel.org/doc/html/v5.4/bpf/btf.html.
> So, we need to compile with "-g" option as follows:
> ==============================
> clang -O2 -target bpf -c tap_bpf_program.c  -g  -o  tap_bpf_program.o
> =============================
> 
> I had cross check this functionality with DPDK-22.11 and as the BPF C-program is same had modified just the C-program and submitted for review.
> I will update the Makefile changes also and will publish for code-review once again w.r.t DPDK-23.11.
> 
> Thanks,

Makefile needs something like this (from libbpf) to find clang includes.

And bpf extract program then needs to change as well.


# Get Clang's default includes on this system. We'll explicitly add these dirs
# to the includes list when compiling with `-target bpf` because otherwise some
# architecture-specific dirs will be "missing" on some architectures/distros -
# headers such as asm/types.h, asm/byteorder.h, asm/socket.h, asm/sockios.h,
# sys/cdefs.h etc. might be missing.
#
# Use '-idirafter': Don't interfere with include mechanics except where the
# build would have failed anyways.
CLANG_BPF_SYS_INCLUDES ?= $(shell $(CLANG) -v -E - </dev/null 2>&1 \
	| sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }')
  

Patch

diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
index f05aed021c..e32ce4f744 100644
--- a/drivers/net/tap/bpf/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -2,71 +2,49 @@ 
  * Copyright 2017 Mellanox Technologies, Ltd
  */
 
-#include <stdint.h>
-#include <stdbool.h>
-#include <sys/types.h>
-#include <sys/socket.h>
 #include <asm/types.h>
 #include <linux/in.h>
-#include <linux/if.h>
 #include <linux/if_ether.h>
 #include <linux/ip.h>
 #include <linux/ipv6.h>
-#include <linux/if_tunnel.h>
-#include <linux/filter.h>
-
-#include "bpf_api.h"
-#include "bpf_elf.h"
-#include "../tap_rss.h"
-
-/** Create IPv4 address */
-#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
-		(((b) & 0xff) << 16) | \
-		(((c) & 0xff) << 8)  | \
-		((d) & 0xff))
-
-#define PORT(a, b) ((__u16)(((a) & 0xff) << 8) | \
-		((b) & 0xff))
+#include <linux/udp.h>
+#include <linux/bpf.h>
+#include <bpf/bpf_helpers.h>
+#include <bpf/bpf_tracing.h>
+#include <bpf/bpf_endian.h>
+#include <linux/pkt_cls.h>
+#include "tap_rss.h"
 
 /*
  * The queue number is offset by a unique QUEUE_OFFSET, to distinguish
  * packets that have gone through this rule (skb->cb[1] != 0) from others.
  */
 #define QUEUE_OFFSET		0x7cafe800
-#define PIN_GLOBAL_NS		2
 
-#define KEY_IDX			0
-#define BPF_MAP_ID_KEY	1
+#define IP_MF		0x2000		/** IP header Flags **/
+#define IP_OFFSET	0x1FFF		/** IP header fragment offset **/
 
-struct vlan_hdr {
-	__be16 proto;
-	__be16 tci;
-};
 
-struct bpf_elf_map __attribute__((section("maps"), used))
-map_keys = {
-	.type           =       BPF_MAP_TYPE_HASH,
-	.id             =       BPF_MAP_ID_KEY,
-	.size_key       =       sizeof(__u32),
-	.size_value     =       sizeof(struct rss_key),
-	.max_elem       =       256,
-	.pinning        =       PIN_GLOBAL_NS,
-};
+struct  {
+	__uint(type,       BPF_MAP_TYPE_HASH);
+	__type(key,  __u32);
+	__type(value,     struct rss_key);
+	__uint(max_entries,      256);
+}map_keys SEC(".maps");
 
-__section("cls_q") int
-match_q(struct __sk_buff *skb)
+SEC("cls_q")
+int match_q(struct __sk_buff *skb)
 {
 	__u32 queue = skb->cb[1];
-	/* queue is set by tap_flow_bpf_cls_q() before load */
 	volatile __u32 q = 0xdeadbeef;
 	__u32 match_queue = QUEUE_OFFSET + q;
 
-	/* printt("match_q$i() queue = %d\n", queue); */
+/*	bpf_printk("match_q$i() queue = %d, q=%d\n", queue, q); */
 
 	if (queue != match_queue)
 		return TC_ACT_OK;
 
-	/* queue match */
+	// queue match 
 	skb->cb[1] = 0;
 	return TC_ACT_UNSPEC;
 }
@@ -77,14 +55,24 @@  struct ipv4_l3_l4_tuple {
 	__u32    dst_addr;
 	__u16    dport;
 	__u16    sport;
-} __attribute__((packed));
+}__attribute__((packed));
 
 struct ipv6_l3_l4_tuple {
 	__u8        src_addr[16];
 	__u8        dst_addr[16];
 	__u16       dport;
 	__u16       sport;
-} __attribute__((packed));
+};
+
+struct neth {
+	struct iphdr iph;
+	struct udphdr udph;
+}__attribute__((packed));
+
+struct net6h {
+	struct ipv6hdr ip6h;
+	struct udphdr udph;
+}__attribute__((packed));
 
 static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
 	0xd1, 0x81, 0xc6, 0x2c,
@@ -99,18 +87,18 @@  static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
 	0x2a, 0xdc, 0x1f, 0xfc,
 };
 
-static __u32  __attribute__((always_inline))
-rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
-		__u8 input_len)
+static __u64  __attribute__((always_inline))
+rte_softrss_be(const __u32 *input_tuple, __u8 input_len)
 {
-	__u32 i, j, hash = 0;
-#pragma unroll
+	__u32 i, j;
+        __u64	hash = 0;
+#pragma clang loop unroll(full)
 	for (j = 0; j < input_len; j++) {
-#pragma unroll
+#pragma clang loop unroll(full)
 		for (i = 0; i < 32; i++) {
 			if (input_tuple[j] & (1U << (31 - i))) {
 				hash ^= ((const __u32 *)def_rss_key)[j] << i |
-				(__u32)((uint64_t)
+				(__u32)((__u64)
 				(((const __u32 *)def_rss_key)[j + 1])
 					>> (32 - i));
 			}
@@ -119,137 +107,78 @@  rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
 	return hash;
 }
 
-static int __attribute__((always_inline))
+SEC("l3_l4")
+int __attribute__((always_inline))
 rss_l3_l4(struct __sk_buff *skb)
 {
-	void *data_end = (void *)(long)skb->data_end;
-	void *data = (void *)(long)skb->data;
-	__u16 proto = (__u16)skb->protocol;
+    struct neth nh;
+    struct net6h n6h;
 	__u32 key_idx = 0xdeadbeef;
-	__u32 hash;
+	__u64 hash;
 	struct rss_key *rsskey;
-	__u64 off = ETH_HLEN;
-	int j;
-	__u8 *key = 0;
+	int j, k, ret;
 	__u32 len;
 	__u32 queue = 0;
-	bool mf = 0;
-	__u16 frag_off = 0;
 
-	rsskey = map_lookup_elem(&map_keys, &key_idx);
-	if (!rsskey) {
-		printt("hash(): rss key is not configured\n");
+	rsskey = bpf_map_lookup_elem(&map_keys, &key_idx);
+	if (rsskey == NULL) {
+	    /*bpf_printk("hash(): rss key is not configured\n"); */
 		return TC_ACT_OK;
 	}
-	key = (__u8 *)rsskey->key;
-
-	/* Get correct proto for 802.1ad */
-	if (skb->vlan_present && skb->vlan_proto == htons(ETH_P_8021AD)) {
-		if (data + ETH_ALEN * 2 + sizeof(struct vlan_hdr) +
-		    sizeof(proto) > data_end)
-			return TC_ACT_OK;
-		proto = *(__u16 *)(data + ETH_ALEN * 2 +
-				   sizeof(struct vlan_hdr));
-		off += sizeof(struct vlan_hdr);
-	}
 
-	if (proto == htons(ETH_P_IP)) {
-		if (data + off + sizeof(struct iphdr) + sizeof(__u32)
-			> data_end)
-			return TC_ACT_OK;
-
-		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
-		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
-		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
-		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
+    if (bpf_skb_load_bytes_relative(skb, 0, &nh, sizeof(nh), BPF_HDR_START_NET))
+        return TC_ACT_OK;
+	if (nh.iph.version == 4) {
 		struct ipv4_l3_l4_tuple v4_tuple = {
-			.src_addr = IPv4(*(src_dst_addr + 0),
-					*(src_dst_addr + 1),
-					*(src_dst_addr + 2),
-					*(src_dst_addr + 3)),
-			.dst_addr = IPv4(*(src_dst_addr + 4),
-					*(src_dst_addr + 5),
-					*(src_dst_addr + 6),
-					*(src_dst_addr + 7)),
+			.src_addr = bpf_ntohl(nh.iph.saddr),
+			.dst_addr = bpf_ntohl(nh.iph.daddr),
 			.sport = 0,
 			.dport = 0,
 		};
-		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
-		 ** and also if the packet is not fragmented. Since fragmented
-		 ** chunks do not have L4 TCP/UDP header.
-		 **/
-		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
-			frag_off = PORT(*(frag_off_addr + 0),
-					*(frag_off_addr + 1));
-			mf = frag_off & 0x2000;
-			frag_off = frag_off & 0x1fff;
-			if (mf == 0 && frag_off == 0) {
-				v4_tuple.sport = PORT(*(src_dst_port + 0),
-						*(src_dst_port + 1));
-				v4_tuple.dport = PORT(*(src_dst_port + 2),
-						*(src_dst_port + 3));
+		if ((nh.iph.protocol == IPPROTO_UDP) || (nh.iph.protocol == IPPROTO_TCP)) {
+			/** Is IP fragmented **/ 
+			if (((nh.iph.frag_off) & bpf_htons(IP_MF | IP_OFFSET)) == 0) {
+				v4_tuple.sport = bpf_ntohs(nh.udph.source);
+				v4_tuple.dport = bpf_ntohs(nh.udph.dest);
 			}
 		}
-		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
-		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
-			input_len--;
-		hash = rte_softrss_be((__u32 *)&v4_tuple, key, 3);
-	} else if (proto == htons(ETH_P_IPV6)) {
-		if (data + off + sizeof(struct ipv6hdr) +
-					sizeof(__u32) > data_end)
-			return TC_ACT_OK;
-		__u8 *src_dst_addr = data + off +
-					offsetof(struct ipv6hdr, saddr);
-		__u8 *src_dst_port = data + off +
-					sizeof(struct ipv6hdr);
-		__u8 *next_hdr = data + off +
-					offsetof(struct ipv6hdr, nexthdr);
-
+		hash = rte_softrss_be((__u32 *)&v4_tuple, 3);
+	} else if (nh.iph.version == 6) {
 		struct ipv6_l3_l4_tuple v6_tuple;
-		for (j = 0; j < 4; j++)
-			*((uint32_t *)&v6_tuple.src_addr + j) =
-				__builtin_bswap32(*((uint32_t *)
-						src_dst_addr + j));
-		for (j = 0; j < 4; j++)
-			*((uint32_t *)&v6_tuple.dst_addr + j) =
-				__builtin_bswap32(*((uint32_t *)
-						src_dst_addr + 4 + j));
-
-		/** Fetch the L4 header port-numbers only if next-header
-		 * is TCP/UDP **/
-		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
-			v6_tuple.sport = PORT(*(src_dst_port + 0),
-				      *(src_dst_port + 1));
-			v6_tuple.dport = PORT(*(src_dst_port + 2),
-				      *(src_dst_port + 3));
-		} else {
-			v6_tuple.sport = 0;
-			v6_tuple.dport = 0;
-		}
-
-		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
-		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
-			input_len--;
-		hash = rte_softrss_be((__u32 *)&v6_tuple, key, 9);
+        if (bpf_skb_load_bytes_relative(skb, 0, &n6h, sizeof(n6h), BPF_HDR_START_NET))
+        return TC_ACT_OK;
+#pragma clang loop unroll(full)
+        for (j = 0; j < 4; j++) {
+            *((__u32 *)&v6_tuple.src_addr + j) =
+                            bpf_ntohl(n6h.ip6h.saddr.in6_u.u6_addr32[j]);
+            *((__u32 *)&v6_tuple.dst_addr + j) =
+                            bpf_ntohl(n6h.ip6h.daddr.in6_u.u6_addr32[j]);
+        }
+	    if ((n6h.ip6h.nexthdr == IPPROTO_UDP) || (n6h.ip6h.nexthdr == IPPROTO_UDP)) {
+            v6_tuple.sport = bpf_ntohs(n6h.udph.source);
+            v6_tuple.dport = bpf_ntohs(n6h.udph.dest);
+        }
+        else {
+            v6_tuple.sport = 0;
+            v6_tuple.dport = 0;
+        }
+		hash = rte_softrss_be((__u32 *)&v6_tuple, 9);
 	} else {
 		return TC_ACT_PIPE;
 	}
 
-	queue = rsskey->queues[(hash % rsskey->nb_queues) &
-				       (TAP_MAX_QUEUES - 1)];
-	skb->cb[1] = QUEUE_OFFSET + queue;
-	/* printt(">>>>> rss_l3_l4 hash=0x%x queue=%u\n", hash, queue); */
+	hash = (hash % rsskey->nb_queues) & (TAP_MAX_QUEUES - 1);
+#pragma clang loop unroll(full)
+	for (k=0; k < TAP_MAX_QUEUES; k++) {
+		if(k == hash)
+			queue = rsskey->queues[k];
+    }
 
+	skb->cb[1] = (__u32)(QUEUE_OFFSET + queue);
+/*	bpf_printk(">>>>> rss_l3_l4 hash=0x%x queue:1=%u\n", hash, queue); */ 
 	return TC_ACT_RECLASSIFY;
 }
 
-#define RSS(L)						\
-	__section(#L) int				\
-		L ## _hash(struct __sk_buff *skb)	\
-	{						\
-		return rss_ ## L (skb);			\
-	}
+char _license[] SEC("license") = "Dual BSD/GPL";
 
-RSS(l3_l4)
 
-BPF_LICENSE("Dual BSD/GPL");
diff --git a/drivers/net/tap/tap_bpf_api.c b/drivers/net/tap/tap_bpf_api.c
index 15283f8917..0569dc956a 100644
--- a/drivers/net/tap/tap_bpf_api.c
+++ b/drivers/net/tap/tap_bpf_api.c
@@ -48,8 +48,8 @@  int tap_flow_bpf_cls_q(__u32 queue_idx)
  */
 int tap_flow_bpf_calc_l3_l4_hash(__u32 key_idx, int map_fd)
 {
-	l3_l4_hash_insns[4].imm = key_idx;
-	l3_l4_hash_insns[9].imm = map_fd;
+	l3_l4_hash_insns[1].imm = key_idx;
+	l3_l4_hash_insns[6].imm = map_fd;
 
 	return bpf_load(BPF_PROG_TYPE_SCHED_ACT,
 		(struct bpf_insn *)l3_l4_hash_insns,
diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 53fa76c4e6..b3dc11b901 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,10 +1,10 @@ 
 /* SPDX-License-Identifier: BSD-3-Clause
- * Auto-generated from tap_bpf_program.c
- * This not the original source file. Do NOT edit it.
+ * Copyright 2017 Mellanox Technologies, Ltd
  */
 
 #include <tap_bpf.h>
 
+/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
 static struct bpf_insn cls_q_insns[] = {
 	{0x61,    2,    1,       52, 0x00000000},
 	{0x18,    3,    0,        0, 0xdeadbeef},
@@ -23,1721 +23,2066 @@  static struct bpf_insn cls_q_insns[] = {
 	{0x95,    0,    0,        0, 0x00000000},
 };
 
+/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
 static struct bpf_insn l3_l4_hash_insns[] = {
-	{0xbf,    7,    1,        0, 0x00000000},
-	{0x61,    6,    7,       16, 0x00000000},
-	{0x61,    8,    7,       76, 0x00000000},
-	{0x61,    9,    7,       80, 0x00000000},
-	{0x18,    1,    0,        0, 0xdeadbeef},
-	{0x00,    0,    0,        0, 0x00000000},
-	{0x63,   10,    1,       -4, 0x00000000},
-	{0xbf,    2,   10,        0, 0x00000000},
-	{0x07,    2,    0,        0, 0xfffffffc},
-	{0x18,    1,    0,        0, 0x00000000},
-	{0x00,    0,    0,        0, 0x00000000},
-	{0x85,    0,    0,        0, 0x00000001},
-	{0x55,    0,    0,       21, 0x00000000},
-	{0xb7,    1,    0,        0, 0x00000a64},
-	{0x6b,   10,    1,      -16, 0x00000000},
-	{0x18,    1,    0,        0, 0x69666e6f},
-	{0x00,    0,    0,        0, 0x65727567},
-	{0x7b,   10,    1,      -24, 0x00000000},
-	{0x18,    1,    0,        0, 0x6e207369},
-	{0x00,    0,    0,        0, 0x6320746f},
-	{0x7b,   10,    1,      -32, 0x00000000},
-	{0x18,    1,    0,        0, 0x20737372},
-	{0x00,    0,    0,        0, 0x2079656b},
-	{0x7b,   10,    1,      -40, 0x00000000},
-	{0x18,    1,    0,        0, 0x68736168},
-	{0x00,    0,    0,        0, 0x203a2928},
-	{0x7b,   10,    1,      -48, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0x73,   10,    7,      -14, 0x00000000},
-	{0xbf,    1,   10,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0xffffffd0},
-	{0xb7,    2,    0,        0, 0x00000023},
-	{0x85,    0,    0,        0, 0x00000006},
-	{0x05,    0,    0,     1680, 0x00000000},
-	{0xb7,    1,    0,        0, 0x0000000e},
-	{0x61,    2,    7,       20, 0x00000000},
-	{0x15,    2,    0,       10, 0x00000000},
-	{0x61,    2,    7,       28, 0x00000000},
-	{0x55,    2,    0,        8, 0x0000a888},
-	{0xbf,    2,    7,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x00000012},
-	{0x2d,    1,    9,     1670, 0x00000000},
-	{0xb7,    1,    0,        0, 0x00000012},
-	{0x69,    6,    8,       16, 0x00000000},
-	{0xbf,    7,    2,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x0000ffff},
-	{0x7b,   10,    7,      -56, 0x00000000},
-	{0x15,    6,    0,      443, 0x0000dd86},
-	{0xb7,    7,    0,        0, 0x00000003},
-	{0x55,    6,    0,     1662, 0x00000008},
-	{0x0f,    8,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x00000018},
-	{0x2d,    1,    9,     1657, 0x00000000},
-	{0xb7,    1,    0,        0, 0x00000000},
-	{0x71,    3,    8,       12, 0x00000000},
-	{0x71,    2,    8,        9, 0x00000000},
-	{0x15,    2,    0,        1, 0x00000011},
-	{0x55,    2,    0,       21, 0x00000006},
-	{0x71,    2,    8,        7, 0x00000000},
-	{0x71,    4,    8,        6, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000008},
-	{0x57,    5,    0,        0, 0x00001f00},
-	{0x4f,    5,    2,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0x55,    4,    0,       12, 0x00000000},
-	{0xbf,    2,    8,        0, 0x00000000},
-	{0x07,    2,    0,        0, 0x00000014},
-	{0x71,    4,    2,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0x71,    1,    2,        1, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000010},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    4,    2,        3, 0x00000000},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    2,    2,        2, 0x00000000},
-	{0x67,    2,    0,        0, 0x00000008},
-	{0x4f,    1,    2,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0x65,    4,    0,        1, 0xffffffff},
-	{0xb7,    7,    0,        0, 0x2cc681d1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x598d03a2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb31a0745},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x66340e8a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcc681d15},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x98d03a2b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x31a07456},
-	{0x71,    4,    8,       13, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6340e8ad},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc681d15b},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d03a2b7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1a07456f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x340e8ade},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x681d15bd},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd03a2b7b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa07456f6},
-	{0x71,    3,    8,       14, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x40e8aded},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x81d15bdb},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x03a2b7b7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x07456f6f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0e8adedf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1d15bdbf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3a2b7b7e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7456f6fd},
-	{0x71,    4,    8,       15, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe8adedfa},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd15bdbf4},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa2b7b7e9},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x456f6fd3},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8adedfa7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x15bdbf4f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2b7b7e9e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x56f6fd3d},
-	{0x71,    3,    8,       16, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xadedfa7b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5bdbf4f7},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb7b7e9ef},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6f6fd3df},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xdedfa7bf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xbdbf4f7f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7b7e9eff},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf6fd3dff},
-	{0x71,    4,    8,       17, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xedfa7bfe},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdbf4f7fc},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7e9eff9},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6fd3dff2},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdfa7bfe5},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbf4f7fca},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7e9eff94},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfd3dff28},
-	{0x71,    3,    8,       18, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa7bfe51},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x67,    6,    0,        0, 0x00000038},
-	{0xc7,    6,    0,        0, 0x00000038},
-	{0xbf,    4,    5,        0, 0x00000000},
-	{0xa7,    4,    0,        0, 0xf4f7fca2},
-	{0x6d,    2,    6,        1, 0x00000000},
-	{0xbf,    4,    5,        0, 0x00000000},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xe9eff945},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd3dff28a},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa7bfe514},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x4f7fca28},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9eff9450},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x3dff28a0},
-	{0x71,    5,    8,       19, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x7bfe5141},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    7,    4,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf7fca283},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    7,    4,        0, 0x00000000},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xeff94506},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xdff28a0c},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xbfe51418},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7fca2831},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xff945063},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xff28a0c6},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfe51418c},
-	{0xbf,    4,    1,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000020},
-	{0xc7,    4,    0,        0, 0x00000020},
-	{0xbf,    3,    7,        0, 0x00000000},
-	{0xa7,    3,    0,        0, 0xfca28319},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    3,    7,        0, 0x00000000},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x40000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf9450633},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x20000000},
-	{0x79,    6,   10,      -56, 0x00000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf28a0c67},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x10000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe51418ce},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x08000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xca28319d},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x04000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9450633b},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x02000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x28a0c676},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x01000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x51418ced},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00800000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xa28319db},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00400000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x450633b6},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00200000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8a0c676c},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00100000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x1418ced8},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00080000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x28319db1},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00040000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x50633b63},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00020000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xa0c676c6},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00010000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x418ced8d},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00008000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8319db1a},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00004000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x0633b634},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00002000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x0c676c68},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00001000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x18ced8d1},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000800},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x319db1a3},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000400},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x633b6347},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000200},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc676c68f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000100},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8ced8d1f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000080},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x19db1a3e},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000040},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x33b6347d},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000020},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x676c68fa},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000010},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xced8d1f4},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000008},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9db1a3e9},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000004},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x3b6347d2},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000002},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x76c68fa5},
-	{0x57,    1,    0,        0, 0x00000001},
-	{0x15,    1,    0,     1194, 0x00000000},
-	{0xa7,    3,    0,        0, 0xed8d1f4a},
-	{0x05,    0,    0,     1192, 0x00000000},
-	{0x0f,    8,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x0000002c},
-	{0x2d,    1,    9,     1216, 0x00000000},
-	{0x61,    2,    8,        8, 0x00000000},
-	{0xdc,    2,    0,        0, 0x00000040},
-	{0xc7,    2,    0,        0, 0x00000020},
-	{0x71,    3,    8,        6, 0x00000000},
-	{0x15,    3,    0,        2, 0x00000011},
-	{0xb7,    1,    0,        0, 0x00000000},
-	{0x55,    3,    0,       12, 0x00000006},
-	{0xbf,    3,    8,        0, 0x00000000},
-	{0x07,    3,    0,        0, 0x00000028},
-	{0x71,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0x71,    1,    3,        1, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000010},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    4,    3,        3, 0x00000000},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    3,    3,        2, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0x4f,    1,    3,        0, 0x00000000},
-	{0xbf,    4,    2,        0, 0x00000000},
-	{0x77,    4,    0,        0, 0x0000001f},
-	{0x57,    4,    0,        0, 0x2cc681d1},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x598d03a2},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb31a0745},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x66340e8a},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xcc681d15},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x98d03a2b},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x31a07456},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6340e8ad},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc681d15b},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8d03a2b7},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1a07456f},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x340e8ade},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x681d15bd},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd03a2b7b},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa07456f6},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x40e8aded},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00008000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x81d15bdb},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00004000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x03a2b7b7},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x07456f6f},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x0e8adedf},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1d15bdbf},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x3a2b7b7e},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x7456f6fd},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xe8adedfa},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd15bdbf4},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa2b7b7e9},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x456f6fd3},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8adedfa7},
-	{0xbf,    3,    2,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x15bdbf4f},
-	{0x61,    3,    8,       12, 0x00000000},
-	{0xbf,    5,    2,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x2b7b7e9e},
-	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    2,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x56f6fd3d},
-	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    2,    0,        0, 0x00000001},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xadedfa7b},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0x5bdbf4f7},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x40000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7b7e9ef},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6f6fd3df},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x10000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdedfa7bf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbdbf4f7f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x04000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7b7e9eff},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x02000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf6fd3dff},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xedfa7bfe},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdbf4f7fc},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00400000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7e9eff9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00200000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6fd3dff2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00100000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdfa7bfe5},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00080000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbf4f7fca},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00040000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7e9eff94},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00020000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfd3dff28},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa7bfe51},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf4f7fca2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe9eff945},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd3dff28a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa7bfe514},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4f7fca28},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x9eff9450},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3dff28a0},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000100},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7bfe5141},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf7fca283},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xeff94506},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdff28a0c},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbfe51418},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7fca2831},
-	{0x61,    4,    8,       16, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xff945063},
-	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xff28a0c6},
-	{0xc7,    4,    0,        0, 0x00000020},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfe51418c},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfca28319},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf9450633},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf28a0c67},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe51418ce},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xca28319d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9450633b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x28a0c676},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x51418ced},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa28319db},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x450633b6},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8a0c676c},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1418ced8},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x28319db1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x50633b63},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa0c676c6},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x418ced8d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00008000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8319db1a},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00004000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0633b634},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0c676c68},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x18ced8d1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x319db1a3},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x633b6347},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc676c68f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8ced8d1f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x19db1a3e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x33b6347d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x676c68fa},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xced8d1f4},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9db1a3e9},
-	{0x61,    3,    8,       20, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3b6347d2},
-	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x76c68fa5},
-	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xed8d1f4a},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdb1a3e94},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x40000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb6347d28},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6c68fa51},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x10000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd8d1f4a3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb1a3e946},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x04000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6347d28d},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x02000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc68fa51a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d1f4a35},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1a3e946b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00400000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x347d28d7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00200000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x68fa51ae},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00100000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd1f4a35c},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00080000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa3e946b9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00040000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x47d28d73},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00020000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8fa51ae7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1f4a35cf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3e946b9e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7d28d73c},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa51ae78},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf4a35cf1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe946b9e3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd28d73c7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa51ae78e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000100},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4a35cf1c},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x946b9e38},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x28d73c71},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x51ae78e3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa35cf1c6},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x46b9e38d},
-	{0x61,    4,    8,       24, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d73c71b},
-	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1ae78e36},
-	{0xc7,    4,    0,        0, 0x00000020},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x35cf1c6c},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6b9e38d9},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd73c71b2},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xae78e364},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5cf1c6c9},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb9e38d92},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x73c71b25},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe78e364b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcf1c6c96},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9e38d92c},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3c71b259},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x78e364b2},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf1c6c964},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe38d92c9},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc71b2593},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8e364b27},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1c6c964e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00008000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x38d92c9c},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00004000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x71b25938},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe364b270},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc6c964e0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8d92c9c0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1b259380},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x364b2700},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6c964e01},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd92c9c03},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb2593807},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x64b2700f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc964e01e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x92c9c03d},
-	{0x61,    3,    8,       28, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x2593807a},
-	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4b2700f4},
-	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x964e01e8},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2c9c03d1},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x40000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x593807a3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb2700f46},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x10000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x64e01e8d},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc9c03d1a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x04000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x93807a35},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x02000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2700f46b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4e01e8d6},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x9c03d1ad},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00400000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3807a35b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00200000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x700f46b6},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00100000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe01e8d6c},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00080000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc03d1ad9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00040000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x807a35b3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00020000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x00f46b66},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x01e8d6cc},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x03d1ad99},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x07a35b32},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x0f46b665},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1e8d6cca},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3d1ad994},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7a35b328},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf46b6651},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000100},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe8d6cca2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd1ad9944},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa35b3289},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x46b66512},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d6cca25},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1ad9944a},
-	{0x61,    4,    8,       32, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x35b32894},
-	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6b665129},
-	{0xc7,    4,    0,        0, 0x00000020},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd6cca253},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xad9944a7},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5b32894f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb665129f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6cca253e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd9944a7d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb32894fb},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x665129f6},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcca253ec},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9944a7d9},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x32894fb2},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x65129f65},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xca253eca},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x944a7d95},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x2894fb2a},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5129f655},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa253ecab},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00008000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x44a7d956},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00004000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x894fb2ac},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x129f6558},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x253ecab1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4a7d9563},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x94fb2ac7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x29f6558f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x53ecab1e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa7d9563d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4fb2ac7a},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9f6558f5},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3ecab1ea},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7d9563d5},
-	{0x61,    3,    8,       36, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfb2ac7ab},
-	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf6558f56},
-	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xecab1eac},
-	{0xbf,    4,    7,        0, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd9563d59},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    4,    7,        0, 0x00000000},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb2ac7ab2},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x79,    6,   10,      -56, 0x00000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6558f564},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xcab1eac8},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9563d590},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x2ac7ab20},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x558f5641},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x01000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xab1eac83},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x563d5906},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xac7ab20c},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x58f56418},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb1eac831},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x63d59063},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc7ab20c7},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8f56418f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1eac831e},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x3d59063c},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x7ab20c78},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xf56418f0},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xeac831e1},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd59063c2},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xab20c784},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x56418f09},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xac831e12},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x59063c25},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb20c784b},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6418f097},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc831e12f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9063c25f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x20c784be},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x418f097c},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x831e12f9},
-	{0xbf,    5,    1,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0xa7,    3,    0,        0, 0x063c25f3},
-	{0x6d,    2,    5,        1, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x40000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x0c784be7},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x20000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x18f097cf},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x10000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x31e12f9f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x08000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x63c25f3f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x04000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc784be7f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x02000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8f097cff},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x01000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x1e12f9fe},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00800000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x3c25f3fc},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00400000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x784be7f8},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00200000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf097cff0},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00100000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe12f9fe0},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00080000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc25f3fc1},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00040000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x84be7f83},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00020000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x097cff07},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00010000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x12f9fe0f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00008000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x25f3fc1f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00004000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x4be7f83f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00002000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x97cff07f},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00001000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x2f9fe0fe},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000800},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x5f3fc1fd},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000400},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xbe7f83fb},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000200},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x7cff07f7},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000100},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf9fe0fee},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000080},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf3fc1fdc},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000040},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe7f83fb8},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000020},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xcff07f70},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000010},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9fe0fee1},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000008},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x3fc1fdc2},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000004},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x7f83fb85},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x57,    2,    0,        0, 0x00000002},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xff07f70a},
-	{0x57,    1,    0,        0, 0x00000001},
-	{0x15,    1,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xfe0fee15},
-	{0x71,    1,    0,      201, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000008},
-	{0x71,    2,    0,      200, 0x00000000},
-	{0x4f,    1,    2,        0, 0x00000000},
-	{0x71,    2,    0,      202, 0x00000000},
-	{0x67,    2,    0,        0, 0x00000010},
-	{0x71,    4,    0,      203, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0x4f,    4,    2,        0, 0x00000000},
-	{0x4f,    4,    1,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000020},
-	{0x77,    3,    0,        0, 0x00000020},
-	{0x9f,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x0000000f},
-	{0x67,    3,    0,        0, 0x00000002},
-	{0x0f,    0,    3,        0, 0x00000000},
-	{0x71,    1,    0,      137, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000008},
-	{0x71,    2,    0,      136, 0x00000000},
-	{0x4f,    1,    2,        0, 0x00000000},
-	{0x71,    2,    0,      138, 0x00000000},
-	{0x67,    2,    0,        0, 0x00000010},
-	{0x71,    3,    0,      139, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000018},
-	{0x4f,    3,    2,        0, 0x00000000},
-	{0x4f,    3,    1,        0, 0x00000000},
-	{0x07,    3,    0,        0, 0x7cafe800},
-	{0x63,    6,    3,       52, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000001},
-	{0xbf,    0,    7,        0, 0x00000000},
-	{0x95,    0,    0,        0, 0x00000000},
+    {0xbf, 6, 1, 0, 0x00000000},
+    {0x18, 1, 0, 0, 0xdeadbeef},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0x63, 10, 1, -84, 0x00000000},
+    {0xbf, 2, 10, 0, 0x00000000},
+    {0x07, 2, 0, 0, 0xffffffac},
+    {0x18,  1,  1,    0, 0x0000cafe},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0x85, 0, 0, 0, 0x00000001},
+    {0xbf, 7, 0, 0, 0x00000000},
+    {0xb7, 8, 0, 0, 0x00000000},
+    {0x15, 7, 0, 2046, 0x00000000},
+    {0xbf, 3, 10, 0, 0x00000000},
+    {0x07, 3, 0, 0, 0xffffffe0},
+    {0xbf, 1, 6, 0, 0x00000000},
+    {0xb7, 2, 0, 0, 0x00000000},
+    {0xb7, 4, 0, 0, 0x0000001c},
+    {0xb7, 5, 0, 0, 0x00000001},
+    {0x85, 0, 0, 0, 0x00000044},
+    {0x55, 0, 0, 2038, 0x00000000},
+    {0x71, 1, 10, -32, 0x00000000},
+    {0x77, 1, 0, 0, 0x00000004},
+    {0x15, 1, 0, 503, 0x00000006},
+    {0xb7, 8, 0, 0, 0x00000003},
+    {0x55, 1, 0, 2033, 0x00000004},
+    {0xb7, 1, 0, 0, 0x00000000},
+    {0x61, 4, 10, -20, 0x00000000},
+    {0xdc, 4, 0, 0, 0x00000040},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0x71, 2, 10, -23, 0x00000000},
+    {0x15, 2, 0, 1, 0x00000011},
+    {0x55, 2, 0, 5, 0x00000006},
+    {0x69, 2, 10, -26, 0x00000000},
+    {0x57, 2, 0, 0, 0x0000ff3f},
+    {0x55, 2, 0, 2, 0x00000000},
+    {0x61, 1, 10, -12, 0x00000000},
+    {0xdc, 1, 0, 0, 0x00000020},
+    {0xb7, 2, 0, 0, 0x00000000},
+    {0xb7, 5, 0, 0, 0x00000000},
+    {0x65, 4, 0, 1, 0xffffffff},
+    {0xb7, 5, 0, 0, 0x2cc681d1},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x40000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x598d03a2},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x20000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb31a0745},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x10000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x66340e8a},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x08000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xcc681d15},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x04000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x98d03a2b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x02000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x31a07456},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x01000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x6340e8ad},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00800000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc681d15b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00400000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8d03a2b7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00200000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1a07456f},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00100000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x340e8ade},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00080000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x681d15bd},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00040000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd03a2b7b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00020000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa07456f6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00010000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x40e8aded},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00008000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x81d15bdb},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00004000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x03a2b7b7},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00002000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x07456f6f},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00001000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x0e8adedf},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000800},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1d15bdbf},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000400},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x3a2b7b7e},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000200},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x7456f6fd},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000100},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xe8adedfa},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000080},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd15bdbf4},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000040},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa2b7b7e9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000020},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x456f6fd3},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000010},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8adedfa7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000008},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x15bdbf4f},
+    {0x61, 3, 10, -16, 0x00000000},
+    {0xbf, 0, 4, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x2b7b7e9e},
+    {0xdc, 3, 0, 0, 0x00000040},
+    {0xbf, 0, 4, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x56f6fd3d},
+    {0xc7, 3, 0, 0, 0x00000020},
+    {0x57, 4, 0, 0, 0x00000001},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xadedfa7b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0xa7, 4, 0, 0, 0x5bdbf4f7},
+    {0x6d, 2, 3, 1, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x40000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xb7b7e9ef},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x20000000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x6f6fd3df},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x10000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdedfa7bf},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x08000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbdbf4f7f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x04000000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7b7e9eff},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x02000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf6fd3dff},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x01000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xedfa7bfe},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00800000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdbf4f7fc},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00400000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xb7e9eff9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00200000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x6fd3dff2},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00100000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdfa7bfe5},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00080000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbf4f7fca},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00040000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7e9eff94},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00020000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xfd3dff28},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00010000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xfa7bfe51},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00008000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf4f7fca2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00004000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xe9eff945},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00002000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xd3dff28a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00001000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xa7bfe514},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000800},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x4f7fca28},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000400},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0x9eff9450},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000200},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x3dff28a0},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000100},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7bfe5141},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000080},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf7fca283},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000040},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xeff94506},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000020},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdff28a0c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000010},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbfe51418},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000008},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7fca2831},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000004},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xff945063},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000002},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xff28a0c6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000001},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xfe51418c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 3, 0, 0x00000000},
+    {0xbf, 5, 1, 0, 0x00000000},
+    {0x67, 5, 0, 0, 0x00000020},
+    {0xc7, 5, 0, 0, 0x00000020},
+    {0x18, 0, 0, 0, 0xfca28319},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0xaf, 3, 0, 0, 0x00000000},
+    {0x6d, 2, 5, 1, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x40000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xf9450633},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x20000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xf28a0c67},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x10000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xe51418ce},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x08000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xca28319d},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x04000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x9450633b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x02000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x28a0c676},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x01000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x51418ced},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00800000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xa28319db},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00400000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x450633b6},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00200000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x8a0c676c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00100000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x1418ced8},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00080000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x28319db1},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00040000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x50633b63},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00020000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xa0c676c6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00010000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x418ced8d},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00008000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x8319db1a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00004000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x0633b634},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00002000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x0c676c68},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00001000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x18ced8d1},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000800},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x319db1a3},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000400},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x633b6347},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000200},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xc676c68f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000100},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x8ced8d1f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000080},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x19db1a3e},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000040},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x33b6347d},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000020},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x676c68fa},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000010},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xced8d1f4},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000008},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x9db1a3e9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000004},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x3b6347d2},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000002},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x76c68fa5},
+    {0x57, 1, 0, 0, 0x00000001},
+    {0x15, 1, 0, 1482, 0x00000000},
+    {0x18, 1, 0, 0, 0xed8d1f4a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0x05, 0, 0, 1478, 0x00000000},
+    {0xbf, 3, 10, 0, 0x00000000},
+    {0x07, 3, 0, 0, 0xffffffb0},
+    {0xbf, 1, 6, 0, 0x00000000},
+    {0xb7, 2, 0, 0, 0x00000000},
+    {0xb7, 4, 0, 0, 0x00000030},
+    {0xb7, 5, 0, 0, 0x00000001},
+    {0x85, 0, 0, 0, 0x00000044},
+    {0x55, 0, 0, 1524, 0x00000000},
+    {0xb7, 2, 0, 0, 0x00000000},
+    {0x61, 4, 10, -72, 0x00000000},
+    {0xdc, 4, 0, 0, 0x00000040},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0x71, 3, 10, -74, 0x00000000},
+    {0xb7, 1, 0, 0, 0x00000000},
+    {0x55, 3, 0, 2, 0x00000011},
+    {0x61, 1, 10, -40, 0x00000000},
+    {0xdc, 1, 0, 0, 0x00000020},
+    {0xb7, 5, 0, 0, 0x00000000},
+    {0x65, 4, 0, 1, 0xffffffff},
+    {0xb7, 5, 0, 0, 0x2cc681d1},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x40000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x598d03a2},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x20000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb31a0745},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x10000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x66340e8a},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x08000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xcc681d15},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x04000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x98d03a2b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x02000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x31a07456},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x01000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x6340e8ad},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00800000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc681d15b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00400000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8d03a2b7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00200000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1a07456f},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00100000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x340e8ade},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00080000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x681d15bd},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00040000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd03a2b7b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00020000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa07456f6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00010000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x40e8aded},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00008000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x81d15bdb},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00004000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x03a2b7b7},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00002000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x07456f6f},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00001000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x0e8adedf},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000800},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1d15bdbf},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000400},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x3a2b7b7e},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000200},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x7456f6fd},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000100},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xe8adedfa},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000080},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd15bdbf4},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000040},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa2b7b7e9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000020},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x456f6fd3},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000010},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8adedfa7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000008},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x15bdbf4f},
+    {0x61, 3, 10, -68, 0x00000000},
+    {0xbf, 0, 4, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x2b7b7e9e},
+    {0xdc, 3, 0, 0, 0x00000040},
+    {0xbf, 0, 4, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x56f6fd3d},
+    {0xc7, 3, 0, 0, 0x00000020},
+    {0x57, 4, 0, 0, 0x00000001},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xadedfa7b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0xa7, 4, 0, 0, 0x5bdbf4f7},
+    {0x6d, 2, 3, 1, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x40000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xb7b7e9ef},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x20000000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x6f6fd3df},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x10000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdedfa7bf},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x08000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbdbf4f7f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x04000000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7b7e9eff},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x02000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf6fd3dff},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x01000000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xedfa7bfe},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00800000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdbf4f7fc},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00400000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xb7e9eff9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00200000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x6fd3dff2},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00100000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdfa7bfe5},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00080000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbf4f7fca},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00040000},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7e9eff94},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00020000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xfd3dff28},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00010000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xfa7bfe51},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00008000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf4f7fca2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00004000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xe9eff945},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00002000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xd3dff28a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00001000},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xa7bfe514},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000800},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x4f7fca28},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000400},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0x9eff9450},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000200},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x3dff28a0},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000100},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7bfe5141},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000080},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xf7fca283},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000040},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xeff94506},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000020},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xdff28a0c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000010},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xbfe51418},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 5, 0, 0x00000000},
+    {0xbf, 5, 3, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000008},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 4, 0, 0, 0x7fca2831},
+    {0x61, 5, 10, -64, 0x00000000},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 3, 0x00000000},
+    {0x18, 0, 0, 0, 0xff945063},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 0, 0, 0x00000000},
+    {0xdc, 5, 0, 0, 0x00000040},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 3, 0x00000000},
+    {0x18, 0, 0, 0, 0xff28a0c6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 0, 0, 0x00000000},
+    {0xc7, 5, 0, 0, 0x00000020},
+    {0x57, 3, 0, 0, 0x00000001},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xfe51418c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 4, 3, 0, 0x00000000},
+    {0x18, 0, 0, 0, 0xfca28319},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0xaf, 3, 0, 0, 0x00000000},
+    {0x6d, 2, 5, 1, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x40000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xf9450633},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x20000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xf28a0c67},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x10000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xe51418ce},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x08000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xca28319d},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x04000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x9450633b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x02000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x28a0c676},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x01000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x51418ced},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00800000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xa28319db},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00400000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x450633b6},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00200000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x8a0c676c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00100000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x1418ced8},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00080000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x28319db1},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00040000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x50633b63},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00020000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xa0c676c6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00010000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x418ced8d},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00008000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x8319db1a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00004000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x0633b634},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00002000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x0c676c68},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00001000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x18ced8d1},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000800},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x319db1a3},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000400},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x633b6347},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000200},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xc676c68f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000100},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x8ced8d1f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000080},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x19db1a3e},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000040},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x33b6347d},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000020},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x676c68fa},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000010},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xced8d1f4},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0xbf, 4, 5, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000008},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x9db1a3e9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 4, 0, 0x00000000},
+    {0x61, 4, 10, -60, 0x00000000},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x3b6347d2},
+    {0xdc, 4, 0, 0, 0x00000040},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x76c68fa5},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0x57, 5, 0, 0, 0x00000001},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0xed8d1f4a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 5, 0, 0x00000000},
+    {0x18, 5, 0, 0, 0xdb1a3e94},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0xaf, 0, 5, 0, 0x00000000},
+    {0x6d, 2, 4, 1, 0x00000000},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x40000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb6347d28},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x20000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x6c68fa51},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x10000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd8d1f4a3},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x08000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb1a3e946},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x04000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x6347d28d},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x02000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc68fa51a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x01000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8d1f4a35},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00800000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1a3e946b},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00400000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x347d28d7},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00200000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x68fa51ae},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00100000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd1f4a35c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00080000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa3e946b9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00040000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x47d28d73},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00020000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8fa51ae7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00010000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1f4a35cf},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00008000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x3e946b9e},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00004000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x7d28d73c},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00002000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xfa51ae78},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00001000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xf4a35cf1},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000800},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xe946b9e3},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000400},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd28d73c7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000200},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa51ae78e},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000100},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x4a35cf1c},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000080},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x946b9e38},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000040},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x28d73c71},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000020},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x51ae78e3},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000010},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa35cf1c6},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000008},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x46b9e38d},
+    {0x61, 3, 10, -56, 0x00000000},
+    {0xbf, 5, 4, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000004},
+    {0x15, 5, 0, 3, 0x00000000},
+    {0x18, 5, 0, 0, 0x8d73c71b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 5, 0, 0x00000000},
+    {0xdc, 3, 0, 0, 0x00000040},
+    {0xbf, 5, 4, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000002},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1ae78e36},
+    {0xc7, 3, 0, 0, 0x00000020},
+    {0x57, 4, 0, 0, 0x00000001},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x35cf1c6c},
+    {0xbf, 5, 0, 0, 0x00000000},
+    {0xa7, 5, 0, 0, 0x6b9e38d9},
+    {0x6d, 2, 3, 1, 0x00000000},
+    {0xbf, 5, 0, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x40000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xd73c71b2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x20000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xae78e364},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x10000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x5cf1c6c9},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x08000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xb9e38d92},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x04000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x73c71b25},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x02000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xe78e364b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x01000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xcf1c6c96},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00800000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x9e38d92c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00400000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x3c71b259},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00200000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x78e364b2},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00100000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xf1c6c964},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00080000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xe38d92c9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00040000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xc71b2593},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00020000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x8e364b27},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00010000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1c6c964e},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00008000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x38d92c9c},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00004000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x71b25938},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00002000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xe364b270},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00001000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xc6c964e0},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000800},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x8d92c9c0},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000400},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x1b259380},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000200},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x364b2700},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000100},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x6c964e01},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000080},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xd92c9c03},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000040},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xb2593807},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000020},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x64b2700f},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000010},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xc964e01e},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000008},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x92c9c03d},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0x61, 4, 10, -52, 0x00000000},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x2593807a},
+    {0xdc, 4, 0, 0, 0x00000040},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x4b2700f4},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0x57, 3, 0, 0, 0x00000001},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x964e01e8},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0xa7, 0, 0, 0, 0x2c9c03d1},
+    {0x6d, 2, 4, 1, 0x00000000},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x40000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x593807a3},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x20000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb2700f46},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x10000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x64e01e8d},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x08000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc9c03d1a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x04000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x93807a35},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x02000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x2700f46b},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x01000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x4e01e8d6},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00800000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x9c03d1ad},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00400000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x3807a35b},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00200000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x700f46b6},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00100000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xe01e8d6c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00080000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc03d1ad9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00040000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x807a35b3},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00020000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x00f46b66},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00010000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x01e8d6cc},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00008000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x03d1ad99},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00004000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x07a35b32},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00002000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x0f46b665},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00001000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1e8d6cca},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000800},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x3d1ad994},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000400},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x7a35b328},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000200},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xf46b6651},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000100},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xe8d6cca2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000080},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd1ad9944},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000040},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xa35b3289},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000020},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x46b66512},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000010},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8d6cca25},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000008},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1ad9944a},
+    {0x61, 3, 10, -48, 0x00000000},
+    {0xbf, 5, 4, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000004},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x35b32894},
+    {0xdc, 3, 0, 0, 0x00000040},
+    {0xbf, 5, 4, 0, 0x00000000},
+    {0x57, 5, 0, 0, 0x00000002},
+    {0x15, 5, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x6b665129},
+    {0xc7, 3, 0, 0, 0x00000020},
+    {0x57, 4, 0, 0, 0x00000001},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xd6cca253},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 4, 0, 0x00000000},
+    {0x18, 4, 0, 0, 0xad9944a7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xbf, 5, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0x6d, 2, 3, 1, 0x00000000},
+    {0xbf, 5, 0, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x40000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x5b32894f},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x20000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xb665129f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x10000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x6cca253e},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x08000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xd9944a7d},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x04000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xb32894fb},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x02000000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x665129f6},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x01000000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xcca253ec},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00800000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x9944a7d9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00400000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x32894fb2},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00200000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x65129f65},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00100000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xca253eca},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00080000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x944a7d95},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00040000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x2894fb2a},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00020000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x5129f655},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00010000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xa253ecab},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00008000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x44a7d956},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00004000},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x894fb2ac},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00002000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x129f6558},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00001000},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x253ecab1},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000800},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x4a7d9563},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000400},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x94fb2ac7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000200},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x29f6558f},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000100},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x53ecab1e},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000080},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0xa7d9563d},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000040},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x4fb2ac7a},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000020},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 4, 0, 0, 0x9f6558f5},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 4, 0, 0x00000000},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000010},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x3ecab1ea},
+    {0xbf, 4, 3, 0, 0x00000000},
+    {0x57, 4, 0, 0, 0x00000008},
+    {0x15, 4, 0, 1, 0x00000000},
+    {0xa7, 5, 0, 0, 0x7d9563d5},
+    {0x61, 4, 10, -44, 0x00000000},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000004},
+    {0x15, 0, 0, 3, 0x00000000},
+    {0x18, 0, 0, 0, 0xfb2ac7ab},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 0, 0, 0x00000000},
+    {0xdc, 4, 0, 0, 0x00000040},
+    {0xbf, 0, 3, 0, 0x00000000},
+    {0x57, 0, 0, 0, 0x00000002},
+    {0x15, 0, 0, 3, 0x00000000},
+    {0x18, 0, 0, 0, 0xf6558f56},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 0, 0, 0x00000000},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0x57, 3, 0, 0, 0x00000001},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xecab1eac},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 5, 3, 0, 0x00000000},
+    {0x18, 3, 0, 0, 0xd9563d59},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0x6d, 2, 4, 1, 0x00000000},
+    {0xbf, 0, 5, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x40000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb2ac7ab2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x20000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x6558f564},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x10000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xcab1eac8},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x08000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x9563d590},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x04000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x2ac7ab20},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x02000000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x558f5641},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x01000000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xab1eac83},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00800000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x563d5906},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00400000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xac7ab20c},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00200000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x58f56418},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00100000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb1eac831},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00080000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x63d59063},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00040000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc7ab20c7},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00020000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x8f56418f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00010000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x1eac831e},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00008000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x3d59063c},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00004000},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x7ab20c78},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00002000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xf56418f0},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00001000},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xeac831e1},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000800},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xd59063c2},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000400},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xab20c784},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000200},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x56418f09},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000100},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xac831e12},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000080},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x59063c25},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000040},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xb20c784b},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000020},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x6418f097},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000010},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0xc831e12f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000008},
+    {0x15, 3, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x9063c25f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000004},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x20c784be},
+    {0xbf, 3, 4, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x00000002},
+    {0x15, 3, 0, 1, 0x00000000},
+    {0xa7, 0, 0, 0, 0x418f097c},
+    {0x57, 4, 0, 0, 0x00000001},
+    {0x15, 4, 0, 3, 0x00000000},
+    {0x18, 3, 0, 0, 0x831e12f9},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 0, 3, 0, 0x00000000},
+    {0xbf, 4, 1, 0, 0x00000000},
+    {0x67, 4, 0, 0, 0x00000020},
+    {0xc7, 4, 0, 0, 0x00000020},
+    {0xbf, 3, 0, 0, 0x00000000},
+    {0xa7, 3, 0, 0, 0x063c25f3},
+    {0x6d, 2, 4, 1, 0x00000000},
+    {0xbf, 3, 0, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x40000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x0c784be7},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x20000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x18f097cf},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x10000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x31e12f9f},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x08000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x63c25f3f},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x04000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xc784be7f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x02000000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x8f097cff},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x01000000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x1e12f9fe},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00800000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x3c25f3fc},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00400000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x784be7f8},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00200000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xf097cff0},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00100000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xe12f9fe0},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00080000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xc25f3fc1},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00040000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x84be7f83},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00020000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x097cff07},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00010000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x12f9fe0f},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00008000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x25f3fc1f},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00004000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x4be7f83f},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00002000},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x97cff07f},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00001000},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x2f9fe0fe},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000800},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x5f3fc1fd},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000400},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xbe7f83fb},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000200},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x7cff07f7},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000100},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xf9fe0fee},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000080},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xf3fc1fdc},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000040},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xe7f83fb8},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000020},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xcff07f70},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000010},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0x9fe0fee1},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000008},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x3fc1fdc2},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000004},
+    {0x15, 2, 0, 1, 0x00000000},
+    {0xa7, 3, 0, 0, 0x7f83fb85},
+    {0xbf, 2, 1, 0, 0x00000000},
+    {0x57, 2, 0, 0, 0x00000002},
+    {0x15, 2, 0, 3, 0x00000000},
+    {0x18, 2, 0, 0, 0xff07f70a},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 2, 0, 0x00000000},
+    {0x57, 1, 0, 0, 0x00000001},
+    {0x15, 1, 0, 3, 0x00000000},
+    {0x18, 1, 0, 0, 0xfe0fee15},
+    {0x00, 0, 0, 0, 0x00000000},
+    {0xaf, 3, 1, 0, 0x00000000},
+    {0x61, 1, 7, 200, 0x00000000},
+    {0x9f, 3, 1, 0, 0x00000000},
+    {0x57, 3, 0, 0, 0x0000000f},
+    {0x65, 3, 0, 5, 0x00000007},
+    {0x65, 3, 0, 9, 0x00000003},
+    {0x65, 3, 0, 16, 0x00000001},
+    {0x15, 3, 0, 27, 0x00000000},
+    {0x07, 7, 0, 0, 0x0000008c},
+    {0x05, 0, 0, 40, 0x00000000},
+    {0x65, 3, 0, 8, 0x0000000b},
+    {0x65, 3, 0, 14, 0x00000009},
+    {0x15, 3, 0, 24, 0x00000008},
+    {0x07, 7, 0, 0, 0x000000ac},
+    {0x05, 0, 0, 35, 0x00000000},
+    {0x65, 3, 0, 13, 0x00000005},
+    {0x15, 3, 0, 22, 0x00000004},
+    {0x07, 7, 0, 0, 0x0000009c},
+    {0x05, 0, 0, 31, 0x00000000},
+    {0x65, 3, 0, 12, 0x0000000d},
+    {0x15, 3, 0, 20, 0x0000000c},
+    {0x07, 7, 0, 0, 0x000000bc},
+    {0x05, 0, 0, 27, 0x00000000},
+    {0x15, 3, 0, 19, 0x00000002},
+    {0x07, 7, 0, 0, 0x00000094},
+    {0x05, 0, 0, 24, 0x00000000},
+    {0x15, 3, 0, 18, 0x0000000a},
+    {0x07, 7, 0, 0, 0x000000b4},
+    {0x05, 0, 0, 21, 0x00000000},
+    {0x15, 3, 0, 17, 0x00000006},
+    {0x07, 7, 0, 0, 0x000000a4},
+    {0x05, 0, 0, 18, 0x00000000},
+    {0x15, 3, 0, 16, 0x0000000e},
+    {0x07, 7, 0, 0, 0x000000c4},
+    {0x05, 0, 0, 15, 0x00000000},
+    {0x07, 7, 0, 0, 0x00000088},
+    {0x05, 0, 0, 13, 0x00000000},
+    {0x07, 7, 0, 0, 0x000000a8},
+    {0x05, 0, 0, 11, 0x00000000},
+    {0x07, 7, 0, 0, 0x00000098},
+    {0x05, 0, 0, 9, 0x00000000},
+    {0x07, 7, 0, 0, 0x000000b8},
+    {0x05, 0, 0, 7, 0x00000000},
+    {0x07, 7, 0, 0, 0x00000090},
+    {0x05, 0, 0, 5, 0x00000000},
+    {0x07, 7, 0, 0, 0x000000b0},
+    {0x05, 0, 0, 3, 0x00000000},
+    {0x07, 7, 0, 0, 0x000000a0},
+    {0x05, 0, 0, 1, 0x00000000},
+    {0x07, 7, 0, 0, 0x000000c0},
+    {0x61, 1, 7, 0, 0x00000000},
+    {0x07, 1, 0, 0, 0x7cafe800},
+    {0x63, 6, 1, 52, 0x00000000},
+    {0xb7, 8, 0, 0, 0x00000001},
+    {0xbf, 0, 8, 0, 0x00000000},
+    {0x95, 0, 0, 0, 0x00000000},
 };